summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml17
-rw-r--r--conf/battle/battle.conf2
-rw-r--r--conf/battle/feature.conf2
-rw-r--r--db/const.txt6
-rw-r--r--db/re/item_db.conf543
-rw-r--r--db/re/item_delay.txt2
-rw-r--r--db/sc_config.txt2
-rw-r--r--db/skill_improvise_db.txt2
-rw-r--r--doc/script_commands.txt1079
-rw-r--r--npc/MOTD.txt22
-rw-r--r--npc/airports/airships.txt2
-rw-r--r--npc/airports/rachel.txt2
-rw-r--r--npc/battleground/kvm/kvm01.txt12
-rw-r--r--npc/battleground/kvm/kvm02.txt12
-rw-r--r--npc/battleground/kvm/kvm03.txt12
-rw-r--r--npc/battleground/kvm/kvm_item_pay.txt4
-rw-r--r--npc/battleground/tierra/tierra01.txt2
-rw-r--r--npc/battleground/tierra/tierra02.txt2
-rw-r--r--npc/cities/aldebaran.txt10
-rw-r--r--npc/cities/ayothaya.txt4
-rw-r--r--npc/cities/geffen.txt4
-rw-r--r--npc/cities/hugel.txt2
-rw-r--r--npc/cities/jawaii.txt2
-rw-r--r--npc/cities/lighthalzen.txt4
-rw-r--r--npc/cities/louyang.txt2
-rw-r--r--npc/cities/lutie.txt2
-rw-r--r--npc/cities/niflheim.txt4
-rw-r--r--npc/cities/rachel.txt2
-rw-r--r--npc/custom/battleground/bg_flavius_01.txt8
-rw-r--r--npc/custom/battleground/bg_flavius_02.txt8
-rw-r--r--npc/custom/battleground/bg_kvm01.txt8
-rw-r--r--npc/custom/battleground/bg_kvm02.txt8
-rw-r--r--npc/custom/battleground/bg_kvm03.txt8
-rw-r--r--npc/custom/battleground/bg_tierra_01.txt8
-rw-r--r--npc/custom/battleground/bg_tierra_02.txt8
-rw-r--r--npc/custom/bgqueue/flavius.txt4
-rw-r--r--npc/custom/card_remover.txt2
-rw-r--r--npc/custom/etc/airplane.txt136
-rw-r--r--npc/custom/etc/bank.txt2
-rw-r--r--npc/custom/etc/blackjack.txt2
-rw-r--r--npc/custom/etc/marriage.txt18
-rw-r--r--npc/custom/etc/penal_servitude.txt10
-rw-r--r--npc/custom/etc/quest_warper.txt2
-rw-r--r--npc/custom/events/cluckers.txt4
-rw-r--r--npc/custom/events/uneasy_cemetery.txt2
-rw-r--r--npc/custom/itembind.txt2
-rw-r--r--npc/custom/jobmaster.txt260
-rw-r--r--npc/custom/quests/bandit_beard.txt2
-rw-r--r--npc/custom/quests/dead_branch.txt2
-rw-r--r--npc/custom/quests/elvenear.txt20
-rw-r--r--npc/custom/quests/event_6_new_hats.txt4
-rw-r--r--npc/custom/quests/kahohorn.txt4
-rw-r--r--npc/custom/quests/kings_items.txt2
-rw-r--r--npc/custom/quests/may_hats.txt2
-rw-r--r--npc/custom/quests/quest_shop.txt4
-rw-r--r--npc/custom/quests/questboard.txt10
-rw-r--r--npc/custom/quests/tha_statues.txt2
-rw-r--r--npc/custom/quests/thq/THQS_TTShop.txt4
-rw-r--r--npc/custom/warper.txt2
-rw-r--r--npc/custom/woe_controller.txt2
-rw-r--r--npc/dev/test.txt2
-rw-r--r--npc/events/MemorialDay_2008.txt4
-rw-r--r--npc/events/StPatrick_2008.txt8
-rw-r--r--npc/events/christmas_2008.txt2
-rw-r--r--npc/events/event_skill_reset.txt6
-rw-r--r--npc/events/god_se_festival.txt2
-rw-r--r--npc/events/idul_fitri.txt4
-rw-r--r--npc/events/nguild/nguild_guardians.txt2
-rw-r--r--npc/events/nguild/nguild_treas.txt2
-rw-r--r--npc/events/nguild/nguild_warper.txt6
-rw-r--r--npc/events/twintowers.txt2
-rw-r--r--npc/events/valentinesday.txt2
-rw-r--r--npc/events/valentinesday_2012.txt4
-rw-r--r--npc/events/whiteday.txt2
-rw-r--r--npc/guild/agit_controller.txt2
-rw-r--r--npc/guild/agit_main.txt44
-rw-r--r--npc/guild/trs_rp.txt2
-rw-r--r--npc/guild2/agit_main_se.txt8
-rw-r--r--npc/guild2/agit_start_se.txt2
-rw-r--r--npc/instances/EndlessTower.txt62
-rw-r--r--npc/instances/OrcsMemory.txt4
-rw-r--r--npc/instances/SealedShrine.txt2
-rw-r--r--npc/jobs/2-1/assassin.txt6
-rw-r--r--npc/jobs/2-1/blacksmith.txt2
-rw-r--r--npc/jobs/2-1/knight.txt2
-rw-r--r--npc/jobs/2-1/priest.txt4
-rw-r--r--npc/jobs/2-2/alchemist.txt11
-rw-r--r--npc/jobs/2-2/bard.txt4
-rw-r--r--npc/jobs/2-2/crusader.txt12
-rw-r--r--npc/jobs/2-2/dancer.txt10
-rw-r--r--npc/jobs/2-2/monk.txt14
-rw-r--r--npc/jobs/2-2/rogue.txt6
-rw-r--r--npc/jobs/2-2/sage.txt12
-rw-r--r--npc/jobs/2-2a/Creator.txt111
-rw-r--r--npc/jobs/2-2e/SoulLinker.txt2
-rw-r--r--npc/kafras/functions_kafras.txt22
-rw-r--r--npc/kafras/kafras.txt4
-rw-r--r--npc/mapflag/skillduration.txt2
-rw-r--r--npc/mapflag/skillmodifier.txt2
-rw-r--r--npc/merchants/clothes_dyer.txt4
-rw-r--r--npc/merchants/coin_exchange.txt2
-rw-r--r--npc/merchants/dye_maker.txt4
-rw-r--r--npc/merchants/gemstone.txt2
-rw-r--r--npc/merchants/inn.txt6
-rw-r--r--npc/merchants/kunai_maker.txt2
-rw-r--r--npc/merchants/old_pharmacist.txt4
-rw-r--r--npc/merchants/refine.txt18
-rw-r--r--npc/merchants/renters.txt2
-rw-r--r--npc/merchants/shops.txt2
-rw-r--r--npc/merchants/wander_pet_food.txt2
-rw-r--r--npc/other/Global_Functions.txt2
-rw-r--r--npc/other/arena/arena_lvl60.txt4
-rw-r--r--npc/other/arena/arena_party.txt6
-rw-r--r--npc/other/bulletin_boards.txt8
-rw-r--r--npc/other/card_trader.txt2
-rw-r--r--npc/other/comodo_gambling.txt2
-rw-r--r--npc/other/divorce.txt4
-rw-r--r--npc/other/fortune.txt2
-rw-r--r--npc/other/hugel_bingo.txt2
-rw-r--r--npc/other/marriage.txt20
-rw-r--r--npc/other/mercenary_rent.txt2
-rw-r--r--npc/other/monster_museum.txt2
-rw-r--r--npc/other/monster_race.txt30
-rw-r--r--npc/other/turbo_track.txt18
-rw-r--r--npc/pre-re/guides/guides_alberta.txt2
-rw-r--r--npc/pre-re/guides/guides_moscovia.txt2
-rw-r--r--npc/pre-re/guides/guides_payon.txt2
-rw-r--r--npc/pre-re/jobs/1-1/merchant.txt4
-rw-r--r--npc/pre-re/jobs/novice/novice.txt6
-rw-r--r--npc/pre-re/kafras/kafras.txt2
-rw-r--r--npc/pre-re/mobs/fields/splendide.txt2
-rw-r--r--npc/pre-re/mobs/fields/veins.txt2
-rw-r--r--npc/pre-re/scripts_main.conf2
-rw-r--r--npc/pre-re/warps/cities/rachel.txt4
-rw-r--r--npc/quests/bard_quest.txt4
-rw-r--r--npc/quests/cooking_quest.txt2
-rw-r--r--npc/quests/eye_of_hellion.txt2
-rw-r--r--npc/quests/first_class/tu_acolyte.txt12
-rw-r--r--npc/quests/first_class/tu_archer.txt4
-rw-r--r--npc/quests/first_class/tu_magician01.txt2
-rw-r--r--npc/quests/first_class/tu_merchant.txt8
-rw-r--r--npc/quests/kiel_hyre_quest.txt114
-rw-r--r--npc/quests/lvl4_weapon_quest.txt2
-rw-r--r--npc/quests/newgears/2004_headgears.txt2
-rw-r--r--npc/quests/newgears/2005_headgears.txt14
-rw-r--r--npc/quests/newgears/2006_headgears.txt14
-rw-r--r--npc/quests/obb_quest.txt2
-rw-r--r--npc/quests/okolnir.txt18
-rw-r--r--npc/quests/quests_13_1.txt4
-rw-r--r--npc/quests/quests_13_2.txt2
-rw-r--r--npc/quests/quests_airship.txt2
-rw-r--r--npc/quests/quests_alberta.txt7
-rw-r--r--npc/quests/quests_aldebaran.txt6
-rw-r--r--npc/quests/quests_gonryun.txt2
-rw-r--r--npc/quests/quests_hugel.txt14
-rw-r--r--npc/quests/quests_juperos.txt6
-rw-r--r--npc/quests/quests_louyang.txt8
-rw-r--r--npc/quests/quests_lutie.txt4
-rw-r--r--npc/quests/quests_morocc.txt2
-rw-r--r--npc/quests/quests_moscovia.txt36
-rw-r--r--npc/quests/quests_nameless.txt12
-rw-r--r--npc/quests/quests_niflheim.txt2
-rw-r--r--npc/quests/quests_rachel.txt6
-rw-r--r--npc/quests/quests_umbala.txt12
-rw-r--r--npc/quests/quests_veins.txt2
-rw-r--r--npc/quests/quests_yuno.txt4
-rw-r--r--npc/quests/seals/brisingamen_seal.txt8
-rw-r--r--npc/quests/seals/god_weapon_creation.txt6
-rw-r--r--npc/quests/seals/mjolnir_seal.txt2
-rw-r--r--npc/quests/seals/seal_status.txt2
-rw-r--r--npc/quests/skills/alchemist_skills.txt2
-rw-r--r--npc/quests/skills/assassin_skills.txt6
-rw-r--r--npc/quests/skills/blacksmith_skills.txt2
-rw-r--r--npc/quests/skills/crusader_skills.txt2
-rw-r--r--npc/quests/skills/dancer_skills.txt2
-rw-r--r--npc/quests/skills/hunter_skills.txt2
-rw-r--r--npc/quests/skills/knight_skills.txt2
-rw-r--r--npc/quests/skills/monk_skills.txt2
-rw-r--r--npc/quests/skills/priest_skills.txt2
-rw-r--r--npc/quests/skills/rogue_skills.txt4
-rw-r--r--npc/quests/skills/sage_skills.txt2
-rw-r--r--npc/quests/skills/thief_skills.txt2
-rw-r--r--npc/quests/skills/wizard_skills.txt2
-rw-r--r--npc/quests/the_sign_quest.txt14
-rw-r--r--npc/re/cities/dicastes.txt81
-rw-r--r--npc/re/cities/malangdo.txt2
-rw-r--r--npc/re/guides/guides_dicastes.txt2
-rw-r--r--npc/re/instances/BangungotHospital.txt2
-rw-r--r--npc/re/instances/BuwayaCave.txt2
-rw-r--r--npc/re/instances/HazyForest.txt7
-rw-r--r--npc/re/instances/OldGlastHeim.txt8
-rw-r--r--npc/re/instances/WolfchevLaboratory.txt3296
-rw-r--r--npc/re/jobs/3-1/mechanic.txt2
-rw-r--r--npc/re/jobs/3-1/warlock.txt2
-rw-r--r--npc/re/jobs/3-2/genetic.txt2
-rw-r--r--npc/re/jobs/3-2/minstrel.txt2
-rw-r--r--npc/re/jobs/3-2/sorcerer.txt2
-rw-r--r--npc/re/jobs/3-2/wanderer.txt2
-rw-r--r--npc/re/jobs/novice/supernovice_ex.txt2
-rw-r--r--npc/re/kafras/kafras.txt4
-rw-r--r--npc/re/merchants/enchan_upg.txt2
-rw-r--r--npc/re/merchants/refine.txt2
-rw-r--r--npc/re/mobs/dungeons/alde_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/beach_dun.txt6
-rw-r--r--npc/re/mobs/dungeons/glastheim.txt2
-rw-r--r--npc/re/mobs/dungeons/kh_dun.txt4
-rw-r--r--npc/re/mobs/dungeons/lou_dun.txt4
-rw-r--r--npc/re/mobs/dungeons/prt_sew.txt2
-rw-r--r--npc/re/mobs/dungeons/ra_san.txt2
-rw-r--r--npc/re/mobs/dungeons/tha_t.txt2
-rw-r--r--npc/re/mobs/fields/comodo.txt2
-rw-r--r--npc/re/mobs/fields/mjolnir.txt6
-rw-r--r--npc/re/mobs/fields/morocc.txt20
-rw-r--r--npc/re/mobs/fields/payon.txt2
-rw-r--r--npc/re/mobs/fields/prontera.txt24
-rw-r--r--npc/re/mobs/fields/umbala.txt8
-rw-r--r--npc/re/mobs/fields/veins.txt2
-rw-r--r--npc/re/mobs/fields/yuno.txt4
-rw-r--r--npc/re/quests/cupet.txt4
-rw-r--r--npc/re/quests/eden/86-90.txt2
-rw-r--r--npc/re/quests/eden/91-99.txt2
-rw-r--r--npc/re/quests/eden/eden_iro.txt2
-rw-r--r--npc/re/quests/eden/eden_quests.txt2
-rw-r--r--npc/re/quests/quests_dicastes.txt88
-rw-r--r--npc/re/quests/quests_lighthalzen.txt594
-rw-r--r--npc/re/quests/quests_malangdo.txt2
-rw-r--r--npc/re/quests/quests_malaya.txt2
-rw-r--r--npc/re/quests/quests_mora.txt18
-rw-r--r--npc/re/scripts.conf2
-rw-r--r--npc/re/scripts_main.conf2
-rw-r--r--npc/re/warps/cities/dicastes.txt6
-rw-r--r--npc/re/warps/cities/rachel.txt4
-rw-r--r--npc/re/warps/other/jobquests.txt2
-rw-r--r--npc/re/warps/other/s_workshop.txt2
-rw-r--r--npc/scripts_custom.conf4
-rw-r--r--npc/scripts_guild.conf2
-rw-r--r--npc/warps/cities/moscovia.txt12
-rw-r--r--npc/warps/cities/umbala.txt4
-rw-r--r--npc/warps/dungeons/lhz_dun.txt2
-rw-r--r--sql-files/item_db_re.sql438
-rw-r--r--sql-files/main.sql3
-rw-r--r--sql-files/upgrades/2013-10-09--21-38.sql2
-rw-r--r--sql-files/upgrades/2013-10-10--16-36.sql2
-rw-r--r--sql-files/upgrades/2013-10-27--16-47.sql2
-rw-r--r--sql-files/upgrades/2013-10-30--19-53.sql2
-rw-r--r--sql-files/upgrades/2013-10-30--21-12.sql2
-rw-r--r--sql-files/upgrades/2013-10-31--07-49.sql2
-rw-r--r--sql-files/upgrades/2013-11-09--00-03.sql2
-rw-r--r--sql-files/upgrades/2013-11-15--19-57.sql2
-rw-r--r--sql-files/upgrades/2013-11-16--07-49.sql2
-rw-r--r--sql-files/upgrades/2014-01-04--16-47.sql2
-rw-r--r--sql-files/upgrades/2014-02-19--17-57.sql2
-rw-r--r--sql-files/upgrades/2014-05-17--00-06.sql3
-rw-r--r--sql-files/upgrades/index.txt3
-rw-r--r--sql-files/upgrades/rAthena-main-upgrade.sql7
-rw-r--r--src/char/char.c14
-rw-r--r--src/char/int_auction.c2
-rw-r--r--src/char/int_party.c6
-rw-r--r--src/char/int_party.h2
-rw-r--r--src/char/int_pet.c24
-rw-r--r--src/common/HPM.c4
-rw-r--r--src/common/atomic.h8
-rw-r--r--src/common/cbasetypes.h2
-rw-r--r--src/common/core.c9
-rw-r--r--src/common/db.c28
-rw-r--r--src/common/db.h40
-rw-r--r--src/common/ers.c34
-rw-r--r--src/common/ers.h12
-rw-r--r--src/common/malloc.c4
-rw-r--r--src/common/mmo.h2
-rw-r--r--src/common/mutex.c5
-rw-r--r--src/common/mutex.h34
-rw-r--r--src/common/nullpo.c2
-rw-r--r--src/common/random.c1
-rw-r--r--src/common/showmsg.c34
-rw-r--r--src/common/socket.c8
-rw-r--r--src/common/spinlock.h4
-rw-r--r--src/common/sql.c5
-rw-r--r--src/common/sql.h6
-rw-r--r--src/common/strlib.c12
-rw-r--r--src/common/thread.c49
-rw-r--r--src/common/thread.h38
-rw-r--r--src/common/timer.c6
-rw-r--r--src/common/timer.h4
-rw-r--r--src/common/utils.c4
-rw-r--r--src/common/winapi.h4
-rw-r--r--src/config/const.h2
-rw-r--r--src/login/login.c6
-rw-r--r--src/map/atcommand.c235
-rw-r--r--src/map/battle.c37
-rw-r--r--src/map/battle.h20
-rw-r--r--src/map/battleground.c2
-rw-r--r--src/map/chat.c6
-rw-r--r--src/map/chat.h4
-rw-r--r--src/map/chrif.c8
-rw-r--r--src/map/chrif.h2
-rw-r--r--src/map/clif.c32
-rw-r--r--src/map/duel.c4
-rw-r--r--src/map/duel.h2
-rw-r--r--src/map/elemental.c2
-rw-r--r--src/map/elemental.h2
-rw-r--r--src/map/guild.c6
-rw-r--r--src/map/intif.c6
-rw-r--r--src/map/intif.h4
-rw-r--r--src/map/itemdb.c17
-rw-r--r--src/map/map.c4
-rw-r--r--src/map/map.h12
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/mercenary.h2
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/npc.c4
-rw-r--r--src/map/npc_chat.c27
-rw-r--r--src/map/packets.h26
-rw-r--r--src/map/packets_struct.h2
-rw-r--r--src/map/party.c2
-rw-r--r--src/map/party.h2
-rw-r--r--src/map/path.c4
-rw-r--r--src/map/pc.c10
-rw-r--r--src/map/pc.h10
-rw-r--r--src/map/pc_groups.c2
-rw-r--r--src/map/pet.c42
-rw-r--r--src/map/script.c2
-rw-r--r--src/map/script.h2
-rw-r--r--src/map/skill.c83
-rw-r--r--src/map/skill.h4
-rw-r--r--src/map/sql/CMakeLists.txt2
-rw-r--r--src/map/status.c30
-rw-r--r--src/map/status.h1539
-rw-r--r--src/map/unit.c8
-rw-r--r--src/map/vending.c2
-rw-r--r--src/plugins/HPMHooking.c53
-rw-r--r--src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc8
-rw-r--r--src/plugins/HPMHooking/HPMHooking.HookingPoints.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Hooks.inc72
-rw-r--r--src/plugins/db2sql.c22
-rw-r--r--src/plugins/dbghelpplug.c23
-rw-r--r--src/plugins/sample.c10
-rw-r--r--src/test/test_spinlock.c15
-rwxr-xr-xtravis.sh117
339 files changed, 6845 insertions, 4154 deletions
diff --git a/.travis.yml b/.travis.yml
index 4de81e6a8..a7f6a789f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,14 +2,23 @@ language: c
compiler:
- clang
- gcc
+
+install:
+ - ./travis.sh getplugins || true
before_script:
- - uname -a
+ - uname -a
+ - ./travis.sh createdb ragnarok root
+ - ./travis.sh importdb ragnarok travis
+ - mysql -u root -e "SET PASSWORD FOR 'travis'@'localhost' = PASSWORD('travis');"
script:
- - ./configure --enable-debug && make sql -j3 && ./map-server --version
- - make clean
- - ./configure --disable-renewal --enable-debug && make sql -j3 && ./map-server --version
+ - ./travis.sh build $CONFIGURE_FLAGS
+ - ./travis.sh test ragnarok travis travis
+
+env:
+ - CONFIGURE_FLAGS="--enable-debug"
+ - CONFIGURE_FLAGS="--disable-renewal --enable-debug"
notifications:
email: false
diff --git a/conf/battle/battle.conf b/conf/battle/battle.conf
index 5b72f5ff9..29aa803a0 100644
--- a/conf/battle/battle.conf
+++ b/conf/battle/battle.conf
@@ -99,7 +99,7 @@ vit_penalty_num: 5
// eg: 10 + 50 def becomes 0 + (10*type + 50)
weapon_defense_type: 0
-//MDEF‚same as above....(MDEF*value)
+// MDEF, same as above....(MDEF*value)
magic_defense_type: 0
// Change attacker's direction to face opponent on every attack? (Note 3)
diff --git a/conf/battle/feature.conf b/conf/battle/feature.conf
index 37b05c657..161ea324d 100644
--- a/conf/battle/feature.conf
+++ b/conf/battle/feature.conf
@@ -26,4 +26,4 @@ feature.banking: on
// Auction (Note 1)
// 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 \ No newline at end of file
+feature.auction: off
diff --git a/db/const.txt b/db/const.txt
index 7136d9678..bcd92c06c 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -3298,3 +3298,9 @@ NST_ZENY 0
NST_CASH 1
NST_MARKET 2
NST_CUSTOM 3
+
+// strcharinfo
+PC_NAME 0
+PC_PARTY 1
+PC_GUILD 2
+PC_MAP 3
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 3322d2022..fba0a6932 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -4299,7 +4299,7 @@ item_db: (
Loc: 34
WeaponLv: 1
EquipLv: 4
- View: 48
+ View: 3
},
{
Id: 1117
@@ -4316,7 +4316,7 @@ item_db: (
Loc: 34
WeaponLv: 1
EquipLv: 4
- View: 48
+ View: 3
},
{
Id: 1118
@@ -4332,7 +4332,7 @@ item_db: (
Loc: 34
WeaponLv: 1
EquipLv: 4
- View: 48
+ View: 3
},
{
Id: 1119
@@ -4349,7 +4349,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 39
+ View: 2
},
{
Id: 1120
@@ -4366,7 +4366,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 39
+ View: 2
},
{
Id: 1121
@@ -4382,7 +4382,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 40
+ View: 2
},
{
Id: 1122
@@ -4416,7 +4416,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 41
+ View: 2
Script: <" bonus bInt,3; ">
},
{
@@ -4451,7 +4451,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 14
- View: 40
+ View: 2
},
{
Id: 1126
@@ -4468,7 +4468,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 42
+ View: 2
},
{
Id: 1127
@@ -4485,7 +4485,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 42
+ View: 2
},
{
Id: 1128
@@ -4502,7 +4502,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 41
+ View: 2
Script: <" bonus bInt,3; ">
},
{
@@ -4790,7 +4790,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 68
- View: 43
+ View: 2
Script: <" bonus bAddMonsterDropChainItem,ITMCHAIN_GEM; ">
},
{
@@ -4807,7 +4807,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 74
- View: 44
+ View: 2
Script: <" bonus bAddMonsterDropChainItem,ITMCHAIN_ORE; ">
},
{
@@ -4824,7 +4824,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 48
- View: 37
+ View: 2
Script: <"
bonus bAtkEle,Ele_Wind;
bonus3 bAddMonsterDropItem,544,RC_Fish,4000;
@@ -4988,7 +4988,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 49
+ View: 3
},
{
Id: 1155
@@ -5005,7 +5005,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 49
+ View: 3
},
{
Id: 1156
@@ -5088,7 +5088,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 50
+ View: 3
Script: <"
bonus bDef,5;
bonus bUnbreakableWeapon,0;
@@ -5128,7 +5128,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 50
+ View: 3
Script: <"
bonus bDef,5;
bonus bUnbreakableWeapon,0;
@@ -5519,7 +5519,6 @@ item_db: (
bonus bVariableCastrate,-20;
bonus bDelayrate,-20;
}
-
">
},
{
@@ -5601,7 +5600,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 80
- View: 51
+ View: 3
Script: <"
bonus3 bAutoSpell,WZ_METEOR,3,30;
bonus3 bAutoSpell,WZ_FROSTNOVA,5,50;
@@ -5660,7 +5659,6 @@ item_db: (
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;
}
-
">
},
{
@@ -5710,7 +5708,6 @@ item_db: (
if(readparam(bStr)>=95) {
bonus bBaseAtk,20;
}
-
">
},
{
@@ -5874,7 +5871,6 @@ item_db: (
if(BaseLevel>99) {
bonus bBaseAtk,50;
}
-
">
},
{
@@ -6003,7 +5999,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 1
- View: 31
+ View: 1
},
{
Id: 1208
@@ -6019,7 +6015,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 1
- View: 31
+ View: 1
},
{
Id: 1209
@@ -6034,7 +6030,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 1
- View: 31
+ View: 1
},
{
Id: 1210
@@ -6151,7 +6147,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 32
+ View: 1
},
{
Id: 1217
@@ -6168,7 +6164,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 32
+ View: 1
},
{
Id: 1218
@@ -6184,7 +6180,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 32
+ View: 1
},
{
Id: 1219
@@ -6201,7 +6197,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 33
+ View: 1
},
{
Id: 1220
@@ -6218,7 +6214,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 33
+ View: 1
},
{
Id: 1221
@@ -6234,7 +6230,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 33
+ View: 1
},
{
Id: 1222
@@ -6565,7 +6561,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 70
- View: 34
+ View: 1
Script: <" bonus2 bGetZenyNum,100,40; ">
},
{
@@ -6582,7 +6578,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 65
- View: 35
+ View: 1
Script: <"
bonus bAtkEle,Ele_Poison;
bonus2 bAddEff,Eff_Poison,3000;
@@ -6601,7 +6597,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 4
- View: 36
+ View: 1
Script: <" bonus bAllStats,1; ">
},
{
@@ -6652,7 +6648,7 @@ item_db: (
Loc: 2
WeaponLv: 1
Refine: false
- View: 31
+ View: 1
},
{
Id: 1244
@@ -7474,7 +7470,6 @@ item_db: (
else {
bonus3 bAutoSpell,AS_SONICBLOW,1,5;
}
-
">
},
{
@@ -7909,7 +7904,6 @@ item_db: (
bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50;
bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200;
}
-
">
},
{
@@ -7938,7 +7932,6 @@ item_db: (
if(readparam(bDex)>=90||readparam(bLuk)>=90) {
bonus2 bSkillAtk,MC_MAMMONITE,15;
}
-
">
},
{
@@ -8128,7 +8121,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 16
- View: 58
+ View: 7
},
{
Id: 1355
@@ -8145,7 +8138,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 16
- View: 58
+ View: 7
},
{
Id: 1356
@@ -8161,7 +8154,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 16
- View: 58
+ View: 7
},
{
Id: 1357
@@ -8178,7 +8171,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 30
- View: 59
+ View: 7
},
{
Id: 1358
@@ -8195,7 +8188,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 30
- View: 59
+ View: 7
},
{
Id: 1359
@@ -8211,7 +8204,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 30
- View: 59
+ View: 7
},
{
Id: 1360
@@ -8277,7 +8270,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 44
- View: 60
+ View: 7
Script: <"
bonus bStr,10;
bonus bSpeedRate,25;
@@ -8338,7 +8331,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 44
- View: 61
+ View: 7
Script: <"
bonus bAtkEle,Ele_Holy;
skill AL_HEAL,3;
@@ -8430,7 +8423,6 @@ item_db: (
bonus2 bAddEff,Eff_Stun,3000;
bonus bBreakArmorRate,500;
}
-
">
},
{
@@ -8457,7 +8449,6 @@ item_db: (
bonus2 bAddEff,Eff_Stun,3000;
bonus bBreakArmorRate,500;
}
-
">
},
{
@@ -8473,7 +8464,7 @@ item_db: (
Loc: 34
WeaponLv: 4
Refine: false
- View: 61
+ View: 7
Script: <"
bonus bAtkEle,Ele_Holy;
skill AL_HEAL,3;
@@ -8495,7 +8486,7 @@ item_db: (
Loc: 34
WeaponLv: 4
Refine: false
- View: 60
+ View: 7
Script: <"
bonus bStr,20;
bonus bSpeedRate,25;
@@ -8694,7 +8685,6 @@ item_db: (
bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200;
bonus4 bAutoSpellOnSkill,WS_CARTTERMINATION,NPC_CRITICALWOUND,2,200;
}
-
">
},
{
@@ -8799,7 +8789,6 @@ item_db: (
bonus bUseSPrate,100;
bonus bBreakArmorRate,500;
}
-
">
},
{
@@ -8824,7 +8813,6 @@ item_db: (
bonus bHit,10;
bonus bAspdRate,3;
}
-
">
},
{
@@ -9006,7 +8994,6 @@ item_db: (
if(getrefine()>=9) {
bonus2 bAddRace,RC_DemiHuman,60;
}
-
">
},
{
@@ -9213,7 +9200,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 52
+ View: 5
},
{
Id: 1411
@@ -9229,7 +9216,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 52
+ View: 5
},
{
Id: 1412
@@ -9548,7 +9535,6 @@ item_db: (
if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200;
else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,100;
}
-
">
},
{
@@ -9762,7 +9748,6 @@ item_db: (
if(getrefine()>=9) {
bonus2 bAddRace,RC_DemiHuman,30;
}
-
">
},
// 2-Handed Spears
@@ -9881,7 +9866,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 53
+ View: 5
},
{
Id: 1458
@@ -9898,7 +9883,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 53
+ View: 5
},
{
Id: 1459
@@ -9914,7 +9899,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 53
+ View: 5
},
{
Id: 1460
@@ -9931,7 +9916,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 54
+ View: 5
},
{
Id: 1461
@@ -9948,7 +9933,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 54
+ View: 5
},
{
Id: 1462
@@ -9964,7 +9949,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 54
+ View: 5
},
{
Id: 1463
@@ -9981,7 +9966,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 55
+ View: 5
},
{
Id: 1464
@@ -9998,7 +9983,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 55
+ View: 5
},
{
Id: 1465
@@ -10014,7 +9999,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 55
+ View: 5
},
{
Id: 1466
@@ -10030,7 +10015,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 48
- View: 56
+ View: 5
Script: <"
bonus bCritical,30;
bonus bHit,10;
@@ -10070,7 +10055,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 48
- View: 57
+ View: 5
Script: <"
bonus bAtkEle,Ele_Wind;
bonus2 bAddEff,Eff_Silence,200;
@@ -10156,7 +10141,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 73
- View: 96
+ View: 10
Script: <"
bonus bInt,5;
bonus bAgi,2;
@@ -10176,7 +10161,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 90
- View: 97
+ View: 10
Script: <"
bonus bInt,6;
bonus bDex,2;
@@ -10234,7 +10219,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 48
- View: 56
+ View: 5
Script: <"
bonus bCritical,30;
bonus bHit,10;
@@ -10351,7 +10336,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 48
- View: 57
+ View: 5
Script: <"
bonus bAtkEle,Ele_Wind;
bonus2 bAddEff,Eff_Silence,200;
@@ -10467,7 +10452,6 @@ item_db: (
if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200;
else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,200;
}
-
">
},
{
@@ -10535,7 +10519,6 @@ item_db: (
if(BaseLevel>99) {
bonus bBaseAtk,30;
}
-
">
},
{
@@ -10559,7 +10542,6 @@ item_db: (
if(readparam(bStr)>=120) {
bonus bBaseAtk,300;
}
-
">
OnUnequipScript: <" heal 0,-600; ">
},
@@ -10607,7 +10589,6 @@ item_db: (
if(getrefine()>=9) {
autobonus2 "{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }",100,2000,BF_WEAPON|BF_MAGIC,"{ specialeffect2 EF_REFLECTSHIELD; }";
}
-
">
},
{
@@ -10714,7 +10695,7 @@ item_db: (
Loc: 2
WeaponLv: 1
EquipLv: 2
- View: 62
+ View: 8
},
{
Id: 1505
@@ -10731,7 +10712,7 @@ item_db: (
Loc: 2
WeaponLv: 1
EquipLv: 2
- View: 62
+ View: 8
},
{
Id: 1506
@@ -10747,7 +10728,7 @@ item_db: (
Loc: 2
WeaponLv: 1
EquipLv: 2
- View: 62
+ View: 8
},
{
Id: 1507
@@ -10916,7 +10897,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 63
+ View: 8
},
{
Id: 1517
@@ -10933,7 +10914,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 63
+ View: 8
},
{
Id: 1518
@@ -10950,7 +10931,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 63
+ View: 8
},
{
Id: 1519
@@ -10967,7 +10948,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 14
- View: 64
+ View: 8
},
{
Id: 1520
@@ -10984,7 +10965,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 14
- View: 64
+ View: 8
},
{
Id: 1521
@@ -11001,7 +10982,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 14
- View: 64
+ View: 8
},
{
Id: 1522
@@ -11017,7 +10998,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 65
+ View: 8
Script: <" bonus2 bAddEff,Eff_Stun,1000; ">
},
{
@@ -11056,7 +11037,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 40
- View: 66
+ View: 8
Script: <"
bonus2 bAddRace,RC_Undead,10;
bonus bUnbreakableWeapon,0;
@@ -11158,7 +11139,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 78
- View: 67
+ View: 8
},
{
Id: 1530
@@ -11199,7 +11180,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 55
- View: 68
+ View: 8
Script: <"
bonus2 bAddEff,Eff_Blind,100;
bonus2 bAddEff,Eff_Stun,100;
@@ -11222,7 +11203,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 65
+ View: 8
Script: <" bonus2 bAddEff,Eff_Stun,1000; ">
},
{
@@ -11254,7 +11235,7 @@ item_db: (
Loc: 2
WeaponLv: 3
Refine: false
- View: 68
+ View: 8
Script: <"
bonus2 bAddEff,Eff_Blind,100;
bonus2 bAddEff,Eff_Stun,100;
@@ -11284,7 +11265,6 @@ item_db: (
if(readparam(bStr)>=44) {
bonus bBaseAtk,44;
}
-
">
},
{
@@ -11363,7 +11343,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 40
- View: 66
+ View: 8
Script: <"
bonus2 bAddRace,RC_Undead,10;
bonus bUnbreakableWeapon,0;
@@ -11484,7 +11464,6 @@ item_db: (
bonus3 bAddMonsterDropItem,12043,RC_Brute,500;
bonus3 bAddMonsterDropItem,12069,RC_Fish,500;
}
-
">
},
{
@@ -11502,7 +11481,7 @@ item_db: (
WeaponLv: 1
EquipLv: 2
Refine: false
- View: 62
+ View: 8
},
{
Id: 1546
@@ -11531,7 +11510,6 @@ item_db: (
bonus2 bAddEff,Eff_Stun,2000;
bonus bAspdRate,5;
}
-
">
},
{
@@ -11625,7 +11603,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 89
+ View: 15
Script: <" bonus bInt,2; ">
},
{
@@ -11659,7 +11637,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 90
+ View: 15
Script: <" bonus bAtkEle,Ele_Water; ">
},
{
@@ -11676,7 +11654,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 91
+ View: 15
Script: <" bonus bAtkEle,Ele_Earth; ">
},
{
@@ -11693,7 +11671,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 92
+ View: 15
Script: <" bonus bAtkEle,Ele_Fire; ">
},
{
@@ -11710,7 +11688,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 93
+ View: 15
Script: <" bonus bAtkEle,Ele_Wind; ">
},
{
@@ -11727,7 +11705,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 40
- View: 94
+ View: 15
Script: <"
bonus bAtkEle,Ele_Dark;
bonus2 bAddEle,Ele_Holy,5;
@@ -11752,7 +11730,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 40
- View: 95
+ View: 15
Script: <" bonus2 bAddDamageClass,1188,150; ">
},
{
@@ -11849,7 +11827,6 @@ item_db: (
Atk: 135
Matk: 140
Range: 1
- Slots: 2
Job: 0x00410100
Loc: 2
WeaponLv: 3
@@ -11957,7 +11934,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 90
+ View: 15
Script: <" bonus bAtkEle,Ele_Water; ">
},
{
@@ -11975,7 +11952,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 91
+ View: 15
Script: <" bonus bAtkEle,Ele_Earth; ">
},
{
@@ -11993,7 +11970,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 92
+ View: 15
Script: <" bonus bAtkEle,Ele_Fire; ">
},
{
@@ -12011,7 +11988,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 27
- View: 93
+ View: 15
Script: <" bonus bAtkEle,Ele_Wind; ">
},
{
@@ -12144,7 +12121,6 @@ item_db: (
bonus bVariableCastrate,-5;
bonus bDelayrate,-5;
}
-
">
},
{
@@ -12338,7 +12314,6 @@ item_db: (
bonus2 bSkillUseSP,AB_LAUDARAMUS,-60;
bonus2 bSkillUseSP,AB_LAUDAAGNUS,-60;
}
-
">
},
{
@@ -12600,7 +12575,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 69
+ View: 10
Script: <" bonus bInt,3; ">
},
{
@@ -12618,7 +12593,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 69
+ View: 10
Script: <" bonus bInt,3; ">
},
{
@@ -12635,7 +12610,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 69
+ View: 10
Script: <" bonus bInt,3; ">
},
{
@@ -12652,7 +12627,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 70
+ View: 10
Script: <"
bonus bStr,10;
bonus bSPDrainValue,-2;
@@ -12672,7 +12647,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 71
+ View: 10
Script: <" bonus bInt,3; ">
},
{
@@ -12689,7 +12664,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 72
+ View: 10
Script: <"
bonus bInt,4;
bonus bAtkEle,Ele_Undead;
@@ -12848,7 +12823,7 @@ item_db: (
Loc: 2
WeaponLv: 3
Refine: false
- View: 70
+ View: 10
Script: <"
bonus bStr,10;
bonus bInt,4;
@@ -12881,7 +12856,6 @@ item_db: (
bonus bMatkRate,3;
bonus bMaxSP,300;
}
-
">
},
{
@@ -13220,7 +13194,6 @@ item_db: (
bonus bVariableCastrate,-5;
bonus bDelayrate,-5;
}
-
">
},
{
@@ -13249,7 +13222,6 @@ item_db: (
if(getrefine() > 9) {
bonus bHealPower,10;
}
-
">
},
{
@@ -13293,7 +13265,6 @@ item_db: (
bonus bMaxHP,-200;
bonus bMaxSP,-100;
}
-
">
},
{
@@ -13344,7 +13315,6 @@ item_db: (
bonus bMatkRate,3;
bonus bMaxSP,300;
}
-
">
},
{
@@ -13417,7 +13387,6 @@ item_db: (
bonus bUseSPrate,-15;
bonus bInt,3;
}
-
">
},
{
@@ -13682,7 +13651,6 @@ item_db: (
if(getrefine()>5) {
bonus3 bSPVanishRate,10000,10,BF_NORMAL|BF_SKILL;
}
-
">
},
{
@@ -13712,7 +13680,6 @@ item_db: (
bonus2 bMagicAddRace,RC_Boss,.@rate;
bonus2 bMagicAddRace,RC_NonBoss,.@rate;
}
-
">
},
// Bows
@@ -13887,7 +13854,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 73
+ View: 11
},
{
Id: 1711
@@ -13920,7 +13887,7 @@ item_db: (
Loc: 34
WeaponLv: 2
EquipLv: 18
- View: 73
+ View: 11
},
{
Id: 1713
@@ -13937,7 +13904,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 74
+ View: 11
Script: <" bonus bDex,2; ">
},
{
@@ -13955,7 +13922,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 75
+ View: 11
},
{
Id: 1715
@@ -13972,7 +13939,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 74
+ View: 11
Script: <" bonus bDex,2; ">
},
{
@@ -13990,7 +13957,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 75
+ View: 11
},
{
Id: 1718
@@ -14006,7 +13973,7 @@ item_db: (
Loc: 34
WeaponLv: 3
EquipLv: 33
- View: 76
+ View: 11
},
{
Id: 1719
@@ -14037,7 +14004,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 48
- View: 77
+ View: 11
Script: <"
bonus bAtkEle,Ele_Holy;
bonus bInt,5;
@@ -14205,7 +14172,7 @@ item_db: (
Loc: 34
WeaponLv: 4
Refine: false
- View: 77
+ View: 11
Script: <"
bonus bAtkEle,Ele_Holy;
bonus bInt,5;
@@ -14990,7 +14957,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 1
- View: 78
+ View: 12
},
{
Id: 1802
@@ -15006,7 +14973,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 1
- View: 78
+ View: 12
},
{
Id: 1803
@@ -15023,7 +14990,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 79
+ View: 12
},
{
Id: 1804
@@ -15040,7 +15007,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 79
+ View: 12
},
{
Id: 1805
@@ -15057,7 +15024,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 80
+ View: 12
},
{
Id: 1806
@@ -15074,7 +15041,7 @@ item_db: (
Loc: 2
WeaponLv: 2
EquipLv: 12
- View: 80
+ View: 12
},
{
Id: 1807
@@ -15090,7 +15057,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 81
+ View: 12
},
{
Id: 1808
@@ -15107,7 +15074,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 81
+ View: 12
},
{
Id: 1809
@@ -15124,7 +15091,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 82
+ View: 12
Script: <" bonus bStr,2; ">
},
{
@@ -15142,7 +15109,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 82
+ View: 12
Script: <" bonus bStr,2; ">
},
{
@@ -15160,7 +15127,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 83
+ View: 12
},
{
Id: 1812
@@ -15177,7 +15144,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 24
- View: 83
+ View: 12
},
{
Id: 1813
@@ -15193,7 +15160,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 36
- View: 84
+ View: 12
Script: <"
bonus bAtkEle,Ele_Wind;
bonus2 bAddRace,RC_Undead,5;
@@ -15217,7 +15184,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 36
- View: 85
+ View: 12
Script: <" bonus bAspdRate,12; ">
},
{
@@ -15257,7 +15224,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 36
- View: 85
+ View: 12
Script: <" bonus bAspdRate,12; ">
},
{
@@ -15273,7 +15240,7 @@ item_db: (
Loc: 2
WeaponLv: 4
Refine: false
- View: 84
+ View: 12
Script: <"
bonus bAtkEle,Ele_Wind;
bonus2 bAddRace,RC_Undead,5;
@@ -15472,7 +15439,6 @@ item_db: (
bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50);
bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50);
}
-
">
},
{
@@ -15501,7 +15467,6 @@ item_db: (
bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100;
bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000;
}
-
">
},
{
@@ -15567,7 +15532,6 @@ item_db: (
if(getrefine()>6) {
bonus bUseSPrate,-1*(getrefine()-6);
}
-
">
},
{
@@ -15611,7 +15575,6 @@ item_db: (
bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,10000;
bonus2 bHPLossRate,500,3000;
}
-
">
},
{
@@ -16148,7 +16111,6 @@ item_db: (
else {
bonus3 bAddEffOnSkill,BA_MUSICALSTRIKE,Eff_Stun,1000;
}
-
">
},
{
@@ -16382,7 +16344,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 86
+ View: 14
},
{
Id: 1957
@@ -16399,7 +16361,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 86
+ View: 14
},
{
Id: 1958
@@ -16416,7 +16378,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 87
+ View: 14
Script: <" bonus bLuk,3; ">
},
{
@@ -16434,7 +16396,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 87
+ View: 14
Script: <" bonus bLuk,3; ">
},
{
@@ -16452,7 +16414,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 88
+ View: 14
},
{
Id: 1961
@@ -16469,7 +16431,7 @@ item_db: (
Loc: 2
WeaponLv: 3
EquipLv: 30
- View: 88
+ View: 14
},
{
Id: 1962
@@ -16823,7 +16785,6 @@ item_db: (
else {
bonus3 bAddEffOnSkill,DC_THROWARROW,Eff_Freeze,1000;
}
-
">
},
{
@@ -17054,7 +17015,6 @@ item_db: (
bonus5 bAutoSpellOnSkill,WZ_METEOR,MG_SAFETYWALL,10,200,1;
bonus5 bAutoSpellOnSkill,WZ_VERMILION,MG_SAFETYWALL,10,200,1;
}
-
">
},
{
@@ -17261,7 +17221,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 130
- View: 23
+ View: 10
Script: <"
bonus bAtkEle,Ele_Wind;
bonus bInt,5;
@@ -17284,7 +17244,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 130
- View: 23
+ View: 10
Script: <"
bonus bAtkEle,Ele_Water;
bonus bInt,5;
@@ -17308,7 +17268,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 130
- View: 23
+ View: 10
Script: <"
bonus bAtkEle,Ele_Fire;
bonus bInt,5;
@@ -17332,7 +17292,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 130
- View: 23
+ View: 10
Script: <"
bonus bAtkEle,Ele_Earth;
bonus bInt,5;
@@ -17354,7 +17314,7 @@ item_db: (
Job: 0x00818314
Loc: 34
WeaponLv: 3
- View: 23
+ View: 10
Script: <"
bonus bMatk,(getrefine()*10);
bonus bHealPower,getrefine();
@@ -17377,7 +17337,7 @@ item_db: (
Loc: 34
WeaponLv: 4
EquipLv: 95
- View: 23
+ View: 10
Script: <"
bonus bUnbreakableWeapon,0;
bonus2 bMagicAddRace,RC_DemiHuman,25;
@@ -17388,7 +17348,6 @@ item_db: (
if(getrefine()>8) {
bonus bVariableCastrate,-20;
}
-
">
},
{
@@ -18339,7 +18298,6 @@ item_db: (
else {
bonus2 bSkillAtk,LG_SHIELDPRESS,20;
}
-
">
},
{
@@ -18440,13 +18398,12 @@ item_db: (
Upper: 56
Loc: 32
EquipLv: 100
- View: 3
+ View: 4
Script: <"
bonus2 bSubSize,Size_Large,5;
if(getrefine()>=9) {
bonus2 bSubSize,Size_Large,5;
}
-
">
},
{
@@ -18470,7 +18427,6 @@ item_db: (
bonus bMatk,10;
bonus bMaxHP,800;
}
-
">
},
{
@@ -18576,7 +18532,7 @@ item_db: (
Slots: 1
Upper: 63
Loc: 32
- View: 4
+ View: 1
Script: <" if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,((getrefine()>12)?12:getrefine())-5; ">
},
{
@@ -18737,7 +18693,6 @@ item_db: (
Upper: 63
Loc: 32
Refine: false
- View: 2
Script: <"
bonus bUnbreakableShield,0;
bonus bAllStats,50;
@@ -23065,7 +23020,6 @@ item_db: (
if(getrefine()>=14) {
bonus bSpeedRate,25;
}
-
">
},
{
@@ -23084,7 +23038,6 @@ item_db: (
if(getrefine()>=12) {
bonus bSpeedRate,25;
}
-
">
},
{
@@ -24366,7 +24319,6 @@ item_db: (
bonus bCritAtkRate,5;
}
}
-
">
},
{
@@ -24615,6 +24567,7 @@ item_db: (
Slots: 1
Upper: 63
Loc: 4
+ EquipLv: 1
Script: <"
bonus bHealPower2,getrefine();
bonus bAddItemHealRate,getrefine();
@@ -24929,7 +24882,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bCritical,10;
}
-
">
},
{
@@ -26951,7 +26903,6 @@ item_db: (
bonus bMaxHP,400;
bonus bMaxSP,200;
}
-
">
},
{
@@ -27586,7 +27537,6 @@ item_db: (
if(JobLevel<30) {
bonus bAllStats,6-(JobLevel/5);
}
-
">
},
{
@@ -27642,7 +27592,6 @@ item_db: (
bonus2 bAddDefClass,1761,50;
bonus2 bAddDefClass,1762,50;
}
-
">
},
{
@@ -29023,7 +28972,6 @@ item_db: (
bonus bMaxHP,200;
bonus bMaxSP,100;
}
-
">
},
{
@@ -29124,7 +29072,6 @@ item_db: (
if(readparam(bStr)>=120) {
bonus bBaseAtk,30;
}
-
">
},
{
@@ -31558,7 +31505,6 @@ item_db: (
bonus bDef,2;
bonus bMdef,5;
}
-
">
},
{
@@ -31695,7 +31641,6 @@ item_db: (
bonus bMaxHPrate,10;
bonus bMaxSPrate,10;
}
-
">
},
{
@@ -31998,7 +31943,6 @@ item_db: (
bonus bInt,1;
bonus bMdef,1;
}
-
">
},
{
@@ -32644,7 +32588,6 @@ item_db: (
bonus bDef,2;
bonus bMdef,3;
}
-
">
},
{
@@ -32661,7 +32604,6 @@ item_db: (
bonus bHPrecovRate,100;
bonus bSPrecovRate,100;
}
-
">
},
{
@@ -32937,7 +32879,6 @@ item_db: (
else {
heal -999,0;
}
-
">
},
{
@@ -33522,7 +33463,6 @@ item_db: (
bonus2 bCriticalAddRace,RC_Undead,9;
bonus2 bCriticalAddRace,RC_Demon,9;
}
-
">
},
{
@@ -33989,7 +33929,6 @@ item_db: (
else {
bonus bFlee,10;
}
-
">
},
{
@@ -34037,7 +33976,6 @@ item_db: (
bonus2 bResEff,Eff_Stone,5000;
bonus2 bResEff,Eff_Sleep,5000;
}
-
">
},
{
@@ -34181,7 +34119,6 @@ item_db: (
if(getrefine()>=9) {
bonus bMatkRate,2;
}
-
">
},
{
@@ -34299,7 +34236,6 @@ item_db: (
bonus2 bSubEle,Ele_Neutral,10;
bonus bFlee,10;
}
-
">
},
{
@@ -34346,7 +34282,6 @@ item_db: (
bonus bMaxHPrate,4;
bonus bMaxSPrate,4;
}
-
">
},
{
@@ -34365,7 +34300,6 @@ item_db: (
else {
bonus bMaxSP,40;
}
-
">
},
{
@@ -34644,7 +34578,6 @@ item_db: (
bonus bInt,2;
bonus bMaxSPrate,5;
}
-
">
},
{
@@ -34955,7 +34888,6 @@ item_db: (
bonus2 bAddRace,RC_NonBoss,10;
bonus2 bAddRace,RC_Boss,10;
}
-
">
},
{
@@ -34972,7 +34904,6 @@ item_db: (
bonus bCritical,5;
bonus2 bSkillAtk,62,25;
}
-
">
},
{
@@ -34989,7 +34920,6 @@ item_db: (
bonus bCritical,5;
bonus2 bSkillAtk,AC_SHOWER,50;
}
-
">
},
{
@@ -35133,7 +35063,6 @@ item_db: (
bonus2 bSkillAtk,MG_SOULSTRIKE,20;
bonus2 bSkillAtk,HW_NAPALMVULCAN,20;
}
-
">
},
{
@@ -35168,7 +35097,6 @@ item_db: (
bonus bInt,1;
bonus bIgnoreMdefRate,2;
}
-
">
},
{
@@ -35440,7 +35368,6 @@ item_db: (
if(getrefine()>=14) {
bonus bMaxHPrate,3;
}
-
">
},
{
@@ -35459,7 +35386,6 @@ item_db: (
if(getrefine()>=14) {
bonus bCritical,10;
}
-
">
},
{
@@ -35490,7 +35416,6 @@ item_db: (
bonus bAspd,1;
}
}
-
">
},
{
@@ -35511,7 +35436,6 @@ item_db: (
bonus bAspd,1;
}
}
-
">
},
{
@@ -35527,7 +35451,6 @@ item_db: (
if(BaseClass==Job_Merchant) {
bonus2 bSkillAtk,MC_CARTREVOLUTION,50;
}
-
">
},
{
@@ -35915,7 +35838,6 @@ item_db: (
else {
heal -999,0;
}
-
">
},
{
@@ -35955,7 +35877,6 @@ item_db: (
bonus bBreakWeaponRate,500;
bonus bBreakArmorRate,400;
}
-
">
},
{
@@ -36009,7 +35930,6 @@ item_db: (
if(BaseClass==Job_Archer) {
bonus bDex,getrefine()/3;
}
-
">
},
{
@@ -36048,7 +35968,6 @@ item_db: (
if(getrefine()>=9) {
bonus2 bSubRace,RC_Insect,5;
}
-
">
},
{
@@ -36084,7 +36003,6 @@ item_db: (
if(BaseClass==Job_Acolyte) {
bonus bHealPower,getrefine()/2;
}
-
">
},
{
@@ -36100,7 +36018,6 @@ item_db: (
if(BaseClass==Job_Thief) {
bonus bCritAtkRate,getrefine()/2;
}
-
">
},
{
@@ -36149,7 +36066,6 @@ item_db: (
if(BaseClass==Job_Mage) {
bonus bInt,getrefine()/3;
}
-
">
},
{
@@ -36232,7 +36148,6 @@ item_db: (
if(BaseClass==Job_Swordman) {
bonus bStr,getrefine()/3;
}
-
">
},
{
@@ -36317,7 +36232,6 @@ item_db: (
if(BaseClass==Job_Merchant) {
bonus bLuk,getrefine()/3;
}
-
">
},
{
@@ -36412,7 +36326,6 @@ item_db: (
bonus bHealPower,15;
bonus bUseSPrate,30;
}
-
">
},
{
@@ -36467,7 +36380,6 @@ item_db: (
bonus bVariableCastrate,150;
bonus bSPrecovRate,-150;
}
-
">
OnUnequipScript: <" heal 0,((getrefine()>14)?-2000:-3000); ">
},
@@ -36508,7 +36420,6 @@ item_db: (
bonus2 bResEff,Eff_Blind,5000;
bonus2 bResEff,Eff_Curse,5000;
}
-
">
},
{
@@ -36550,7 +36461,6 @@ item_db: (
bonus bHit,5;
bonus3 bAutoSpell,HT_PHANTASMIC,1,100;
}
-
">
},
{
@@ -36652,7 +36562,6 @@ item_db: (
if(getrefine()>=9) {
bonus2 bMagicAtkEle,Ele_Wind,5;
}
-
">
},
{
@@ -38288,7 +38197,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -38311,7 +38219,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -38333,7 +38240,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -38355,7 +38261,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -38377,7 +38282,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -38399,7 +38303,6 @@ item_db: (
bonus bAspd,1;
bonus bFixedCastrate,-7;
}
-
">
},
{
@@ -40629,7 +40532,6 @@ item_db: (
Buy: 0
Weight: 200
Def: 5
- Slots: 1
Upper: 63
Loc: 256
View: 216
@@ -40963,7 +40865,6 @@ item_db: (
bonus bLuk,2;
bonus bCritical,5;
}
-
">
},
{
@@ -41029,7 +40930,6 @@ item_db: (
bonus bAgi,1;
bonus bHPrecovRate,3;
}
-
">
},
{
@@ -41050,7 +40950,6 @@ item_db: (
bonus bInt,1;
bonus bSPrecovRate,3;
}
-
">
},
{
@@ -41088,7 +40987,6 @@ item_db: (
bonus bLuk,1;
bonus bFlee2,2;
}
-
">
},
{
@@ -41110,7 +41008,6 @@ item_db: (
bonus bBaseAtk,2*getrefine();
bonus3 bAddEff,Eff_Stun,1000,ATF_SHORT;
}
-
">
},
{
@@ -41342,6 +41239,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41356,6 +41254,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41370,6 +41269,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41384,6 +41284,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41398,6 +41299,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41412,6 +41314,7 @@ item_db: (
Buy: 800
Weight: 100
Def: 1
+ Slots: 1
Upper: 63
Gender: 0
Loc: 256
@@ -41637,7 +41540,6 @@ item_db: (
bonus bMatkRate,1;
bonus bHealPower,1;
}
-
">
},
{
@@ -42346,7 +42248,6 @@ item_db: (
if(getrefine()>=6) {
bonus bCritical,getrefine()-5;
}
-
">
},
{
@@ -45320,7 +45221,6 @@ item_db: (
bonus bMdef,getrefine()-5;
bonus bMaxSP,(getrefine()-5)*10;
}
-
">
},
{
@@ -45685,7 +45585,6 @@ item_db: (
bonus bBaseAtk,getrefine()-4;
bonus bMatkRate,getrefine()-4;
}
-
">
},
{
@@ -46242,7 +46141,6 @@ item_db: (
Buy: 20
Weight: 800
Def: 6
- Slots: 1
Upper: 63
Loc: 256
View: 486
@@ -46411,7 +46309,6 @@ item_db: (
Buy: 0
Weight: 100
Def: 6
- Slots: 1
Upper: 63
Loc: 256
EquipLv: 10
@@ -46502,7 +46399,6 @@ item_db: (
Buy: 0
Weight: 100
Def: 4
- Slots: 1
Upper: 63
Loc: 256
View: 501
@@ -46519,7 +46415,6 @@ item_db: (
Buy: 0
Weight: 100
Def: 4
- Slots: 1
Upper: 63
Loc: 256
View: 502
@@ -46618,7 +46513,6 @@ item_db: (
bonus bDef,1;
bonus bBaseAtk,15;
}
-
">
},
{
@@ -46641,7 +46535,6 @@ item_db: (
bonus bDef,1;
bonus bBaseAtk,15;
}
-
">
},
{
@@ -46664,7 +46557,6 @@ item_db: (
bonus bDef,1;
bonus bMatkRate,2;
}
-
">
},
{
@@ -46687,7 +46579,6 @@ item_db: (
bonus bDef,1;
bonus bMatkRate,2;
}
-
">
},
{
@@ -47198,7 +47089,6 @@ item_db: (
bonus bDef,1;
bonus bVit,1;
}
-
">
},
{
@@ -47221,7 +47111,6 @@ item_db: (
bonus bDef,1;
bonus bVit,1;
}
-
">
},
{
@@ -47280,7 +47169,6 @@ item_db: (
bonus bDex,1;
bonus bMatkRate,1;
}
-
">
},
{
@@ -47304,7 +47192,6 @@ item_db: (
bonus bDex,1;
bonus bMatkRate,1;
}
-
">
},
{
@@ -47606,7 +47493,6 @@ item_db: (
Buy: 20
Weight: 1000
Def: 4
- Slots: 1
Upper: 63
Loc: 768
View: 549
@@ -47636,7 +47522,6 @@ item_db: (
bonus bMatkRate,8;
bonus2 bSubEle,Ele_Wind,5;
}
-
">
},
{
@@ -47661,7 +47546,6 @@ item_db: (
bonus bFlee,10;
bonus2 bSubEle,Ele_Wind,5;
}
-
">
},
{
@@ -47810,7 +47694,6 @@ item_db: (
bonus bCritical,10;
bonus bAspdRate,8;
}
-
">
},
{
@@ -47856,7 +47739,6 @@ item_db: (
bonus bHealPower,3;
bonus bMatkRate,2;
}
-
">
},
{
@@ -47879,7 +47761,6 @@ item_db: (
bonus bBaseAtk,15;
bonus bFlee,10;
}
-
">
},
{
@@ -47967,7 +47848,6 @@ item_db: (
bonus bFlee,10;
bonus3 bAutoSpell,TK_SEVENWIND,4,50;
}
-
">
},
{
@@ -47989,7 +47869,6 @@ item_db: (
bonus bAspdRate,3;
autobonus "{ bonus bSplashRange,1; }",10,10000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }";
}
-
">
},
{
@@ -48049,7 +47928,6 @@ item_db: (
bonus bMaxHP,120;
bonus bMaxSP,60;
}
-
">
},
{
@@ -48079,7 +47957,6 @@ item_db: (
bonus2 bSubEle,Ele_Dark,5;
bonus2 bSubEle,Ele_Ghost,5;
}
-
">
},
{
@@ -48165,7 +48042,6 @@ item_db: (
bonus2 bSubEle,Ele_Earth,5;
autobonus "{ bonus bDex,20; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }";
}
-
">
},
{
@@ -48298,7 +48174,6 @@ item_db: (
Buy: 500
Weight: 1200
Def: 4
- Slots: 1
Upper: 63
Loc: 256
EquipLv: 3
@@ -49394,7 +49269,6 @@ item_db: (
Buy: 20
Weight: 300
Def: 3
- Slots: 1
Upper: 63
Loc: 256
View: 606
@@ -49550,7 +49424,6 @@ item_db: (
Buy: 20
Weight: 300
Def: 1
- Slots: 1
Upper: 63
Loc: 256
EquipLv: 75
@@ -49577,7 +49450,6 @@ item_db: (
bonus2 bAddRace,RC_Boss,2;
bonus bMatkRate,2;
}
-
">
},
{
@@ -49588,7 +49460,6 @@ item_db: (
Buy: 20
Weight: 10
Def: 1
- Slots: 1
Upper: 63
Loc: 256
View: 542
@@ -49640,7 +49511,6 @@ item_db: (
Type: 5
Buy: 0
Def: 1
- Slots: 1
Job: 0xFFFFFFFE
Upper: 63
Loc: 256
@@ -50307,7 +50177,6 @@ item_db: (
else {
bonus5 bAutoSpellWhenHit,BA_FROSTJOKER,1,20,BF_WEAPON|BF_MAGIC,0;
}
-
">
},
{
@@ -50435,7 +50304,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bMatk,5;
}
-
">
},
{
@@ -50460,7 +50328,6 @@ item_db: (
if(readparam(bInt)>=120) {
bonus bMatk,10;
}
-
">
},
{
@@ -50485,7 +50352,6 @@ item_db: (
bonus bLongAtkRate,4;
bonus bAspd,1;
}
-
">
},
{
@@ -50510,7 +50376,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bCritical,3;
}
-
">
},
{
@@ -50535,7 +50400,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bFlee,3;
}
-
">
},
{
@@ -50582,7 +50446,6 @@ item_db: (
bonus bBaseAtk,5;
bonus bAspd,1;
}
-
">
},
{
@@ -50607,7 +50470,6 @@ item_db: (
bonus bMatkRate,10;
bonus bVariableCastrate,-2;
}
-
">
},
{
@@ -50632,7 +50494,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bHit,3;
}
-
">
},
{
@@ -50656,7 +50517,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bFlee2,5;
}
-
">
},
{
@@ -50681,7 +50541,6 @@ item_db: (
bonus bMatkRate,10;
bonus bFlee,3;
}
-
">
},
{
@@ -50706,7 +50565,6 @@ item_db: (
bonus bMatkRate,10;
bonus bDef,5;
}
-
">
},
{
@@ -50767,7 +50625,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bCritical,3;
}
-
">
},
{
@@ -50778,7 +50635,6 @@ item_db: (
Buy: 20
Weight: 800
Def: 3
- Slots: 1
Upper: 63
Loc: 256
View: 638
@@ -50936,7 +50792,7 @@ item_db: (
Slots: 1
Upper: 63
Loc: 256
- View: 649
+ View: 349
Script: <" autobonus "{ sc_start SC_PROPERTYWIND,180000,1; }",3,180000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; ">
},
{
@@ -50950,7 +50806,7 @@ item_db: (
Slots: 1
Upper: 63
Loc: 256
- View: 650
+ View: 109
Script: <"
bonus bDex,1;
bonus bMdef,1;
@@ -51058,7 +50914,6 @@ item_db: (
Buy: 20
Weight: 100
Def: 3
- Slots: 1
Upper: 63
Loc: 256
View: 656
@@ -51081,7 +50936,6 @@ item_db: (
Buy: 20
Weight: 100
Def: 3
- Slots: 1
Upper: 63
Loc: 256
View: 657
@@ -51143,7 +50997,6 @@ item_db: (
Type: 5
Buy: 20
Weight: 200
- Slots: 1
Upper: 63
Loc: 256
View: 662
@@ -51160,7 +51013,6 @@ item_db: (
Type: 5
Buy: 20
Weight: 200
- Slots: 1
Upper: 63
Loc: 256
View: 663
@@ -51177,7 +51029,6 @@ item_db: (
Type: 5
Buy: 20
Weight: 200
- Slots: 1
Upper: 63
Loc: 256
View: 664
@@ -51344,6 +51195,7 @@ item_db: (
Name: "Bright Red Dress Hat"
Type: 5
Buy: 20
+ Slots: 1
Upper: 63
Loc: 256
View: 670
@@ -51449,7 +51301,6 @@ item_db: (
else {
bonus3 bAutoSpellWhenHit,AL_HEAL,5,20;
}
-
">
},
{
@@ -51792,7 +51643,6 @@ item_db: (
Buy: 20
Weight: 300
Def: 6
- Slots: 1
Upper: 63
Loc: 256
EquipLv: 30
@@ -67411,7 +67261,6 @@ item_db: (
set MDiceCone,gettime(5);
percentheal 50,50;
}
-
">
},
{
@@ -68263,7 +68112,6 @@ item_db: (
sc_start SC_INC_AGI,240000,10;
heal -15,0;
}
-
">
},
{
@@ -68280,7 +68128,6 @@ item_db: (
sc_start SC_ASPERSIO,180000,5;
delitem 523,1;
}
-
">
},
{
@@ -68323,7 +68170,6 @@ item_db: (
skilleffect BS_ADRENALINE,0;
sc_start SC_ADRENALINE,150000,5;
}
-
">
},
{
@@ -68764,7 +68610,6 @@ item_db: (
if(strcharinfo(3)=="job3_rang02") {
monster "this",-1,-1,"--ja--",1904,1,"";
}
-
">
},
{
@@ -70059,7 +69904,6 @@ item_db: (
if(strcharinfo(3)=="job3_arch02") {
mercenary_create 2037,1800000;
}
-
">
},
{
@@ -70074,7 +69918,6 @@ item_db: (
if(strcharinfo(3)=="job3_arch02") {
mercenary_create 2038,1800000;
}
-
">
},
{
@@ -70098,7 +69941,6 @@ item_db: (
if(strcharinfo(3)=="job3_war02") {
itemskill WL_FROSTMISTY,5;
}
-
">
},
{
@@ -70113,7 +69955,6 @@ item_db: (
if(strcharinfo(3)=="job3_war02") {
itemskill WL_CRIMSONROCK,5;
}
-
">
},
{
@@ -70128,7 +69969,6 @@ item_db: (
if(strcharinfo(3)=="job3_war02") {
itemskill WL_CHAINLIGHTNING,5;
}
-
">
},
{
@@ -70143,7 +69983,6 @@ item_db: (
if(strcharinfo(3)=="job3_war02") {
itemskill WL_EARTHSTRAIN,5;
}
-
">
},
{
@@ -70158,7 +69997,6 @@ item_db: (
if(strcharinfo(3)=="job3_rune02") {
itemskill RK_CRUSHSTRIKE,1;
}
-
">
},
{
@@ -70173,7 +70011,6 @@ item_db: (
if(strcharinfo(3)=="job3_rune02") {
itemskill RK_STORMBLAST,1;
}
-
">
},
{
@@ -70188,7 +70025,6 @@ item_db: (
if(strcharinfo(3)=="job3_rune02") {
itemskill RK_MILLENNIUMSHIELD,1;
}
-
">
},
{
@@ -74011,7 +73847,6 @@ item_db: (
setfalcon 1;
}
}
-
">
},
{
@@ -75164,7 +74999,7 @@ item_db: (
Weight: 600
Atk: 120
Range: 1
- Slots: 2
+ Slots: 1
Job: 0x00000001
Upper: 47
Loc: 2
@@ -76021,7 +75856,7 @@ item_db: (
Upper: 63
Loc: 2
WeaponLv: 3
- View: 38
+ View: 1
},
{
Id: 13050
@@ -76217,7 +76052,6 @@ item_db: (
bonus2 bSkillAtk,"SC_FATALMENACE",(getrefine()-5)*2;
bonus bMatk,(getrefine()-5)*3;
}
-
">
},
{
@@ -76352,7 +76186,6 @@ item_db: (
bonus bBaseAtk,10;
bonus bMatk,10;
}
-
">
},
{
@@ -76610,7 +76443,6 @@ item_db: (
bonus2 bMagicAddRace,RC_Boss,.@rate;
bonus2 bMagicAddRace,RC_NonBoss,.@rate;
}
-
">
},
// Revolvers
@@ -76834,7 +76666,6 @@ item_db: (
bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000;
bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2;
}
-
">
},
{
@@ -77563,7 +77394,6 @@ item_db: (
bonus2 bVariableCastrate,GS_TRACKING,25;
bonus2 bSkillAtk,GS_TRACKING,getrefine() * 3;
}
-
">
},
{
@@ -77593,7 +77423,6 @@ item_db: (
bonus2 bAddRace,RC_Boss,getrefine();
bonus2 bAddRace,RC_NonBoss,getrefine();
}
-
">
},
{
@@ -77624,7 +77453,6 @@ item_db: (
bonus2 bSkillAtk,GS_SPREADATTACK,getrefine() * 2;
bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000;
}
-
">
},
{
@@ -77655,7 +77483,6 @@ item_db: (
bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000;
autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }";
}
-
">
},
// Novice Guns
@@ -79002,7 +78829,6 @@ item_db: (
bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1;
bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200;
}
-
">
},
{
@@ -79179,7 +79005,6 @@ item_db: (
if(BaseLevel>=70) {
bonus bBaseAtk,5*((BaseLevel-60)/10);
}
-
">
},
// More 1-Handed Swords
@@ -79444,7 +79269,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 75
- View: 45
+ View: 2
Script: <"
bonus bAtkEle,Ele_Water;
skill MG_FROSTDIVER,5;
@@ -79466,7 +79291,7 @@ item_db: (
Loc: 2
WeaponLv: 4
EquipLv: 75
- View: 46
+ View: 2
Script: <"
bonus bAtkEle,Ele_Fire;
skill WZ_METEOR,3;
@@ -79545,7 +79370,6 @@ item_db: (
bonus bAspdRate,5;
bonus4 bAutoSpellOnSkill,SM_BASH,NPC_CRITICALWOUND,2,200;
}
-
">
},
{
@@ -90389,7 +90213,6 @@ item_db: (
if(readparam(bInt)>=120) {
bonus bInt,1;
}
-
">
},
{
@@ -90411,7 +90234,6 @@ item_db: (
if(readparam(bInt)>=120) {
bonus bInt,1;
}
-
">
},
{
@@ -90433,7 +90255,6 @@ item_db: (
if(readparam(bInt)>=120) {
bonus bInt,1;
}
-
">
},
{
@@ -90455,7 +90276,6 @@ item_db: (
if(readparam(bInt)>=120) {
bonus bInt,1;
}
-
">
},
{
@@ -90793,7 +90613,6 @@ item_db: (
if(getrefine()>8) {
bonus bMaxHPrate,25;
}
-
">
},
{
@@ -90819,7 +90638,6 @@ item_db: (
if(getrefine()>8) {
bonus bMaxHPrate,15;
}
-
">
},
{
@@ -90846,7 +90664,6 @@ item_db: (
bonus bMaxHP,1000;
bonus bMaxSP,100;
}
-
">
},
{
@@ -91276,7 +91093,6 @@ item_db: (
bonus2 bSkillAtk,GN_CRAZYWEED,20;
bonus2 bSkillAtk,GN_DEMONIC_FIRE,20;
}
-
">
},
{
@@ -94833,7 +94649,6 @@ item_db: (
if(BaseLevel>99) {
bonus bLongAtkRate,10;
}
-
">
},
{
@@ -94858,7 +94673,6 @@ item_db: (
if(BaseLevel>99) {
bonus bLongAtkRate,10;
}
-
">
},
{
@@ -94904,7 +94718,6 @@ item_db: (
if(readparam(bAgi)>=120) {
bonus bAspd,1;
}
-
">
},
{
@@ -95714,7 +95527,6 @@ item_db: (
if(getrefine() >= 7) {
bonus bMatkRate,3;
}
-
">
},
{
@@ -95752,7 +95564,6 @@ item_db: (
if(getrefine() >= 7) {
bonus bCritAtkRate,5;
}
-
">
},
{
@@ -96177,7 +95988,6 @@ item_db: (
bonus bDex,3;
bonus bLongAtkRate,10;
}
-
">
},
{
@@ -96228,7 +96038,6 @@ item_db: (
bonus bHit,((getrefine()-4)/2)*3;
bonus bMaxHPrate,((getrefine()-4)/2)*3;
}
-
">
},
{
@@ -96254,7 +96063,6 @@ item_db: (
bonus2 bSubRace,RC_NonBoss,5;
}
}
-
">
},
{
@@ -96349,7 +96157,6 @@ item_db: (
if(getrefine() >= 7) {
bonus bHealPower,1;
}
-
">
},
{
@@ -96623,7 +96430,6 @@ item_db: (
bonus bAspdRate,2;
bonus bCritical,2;
}
-
">
},
{
@@ -96675,7 +96481,6 @@ item_db: (
bonus2 bAddRace,RC_DemiHuman,7;
bonus2 bSubRace,RC_DemiHuman,7;
}
-
">
},
{
@@ -96699,7 +96504,6 @@ item_db: (
bonus2 bMagicAddRace,RC_DemiHuman,7;
bonus2 bMagicAddRace,RC_DemiHuman,7;
}
-
">
},
{
@@ -97261,6 +97065,7 @@ item_db: (
Buy: 20
Weight: 400
Def: 3
+ Slots: 1
Job: 0xFFFFFFFE
Upper: 63
Loc: 256
@@ -97275,6 +97080,7 @@ item_db: (
Buy: 20
Weight: 200
Def: 2
+ Slots: 1
Job: 0xFFFFFFFE
Upper: 63
Loc: 256
@@ -97289,6 +97095,7 @@ item_db: (
Buy: 20
Weight: 200
Def: 2
+ Slots: 1
Job: 0xFFFFFFFE
Upper: 63
Loc: 256
@@ -98578,7 +98385,6 @@ item_db: (
Name: "Valkyrie Helm"
Type: 5
Buy: 1000
- Slots: 1
Loc: 256
View: 225
},
@@ -100044,7 +99850,6 @@ item_db: (
Name: "Costume: Sphinx Hat"
Type: 5
Buy: 0
- Slots: 1
Upper: 63
Loc: 5120
Refine: false
@@ -100734,7 +100539,6 @@ item_db: (
Name: "Costume Crescent Helm"
Type: 5
Buy: 1000
- Slots: 1
Loc: 3072
View: 213
},
@@ -100744,7 +100548,6 @@ item_db: (
Name: "Costume Kabuki Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 7168
View: 214
},
@@ -100754,7 +100557,6 @@ item_db: (
Name: "Costume Ayothaya Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 334
},
@@ -100764,7 +100566,6 @@ item_db: (
Name: "Costume Raven Cap"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 524
},
@@ -100774,7 +100575,6 @@ item_db: (
Name: "Costume Baby Dragon Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 525
},
@@ -100784,7 +100584,6 @@ item_db: (
Name: "Costume Kwati Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 527
},
@@ -100794,7 +100593,6 @@ item_db: (
Name: "Costume Tucan Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 528
},
@@ -100804,7 +100602,6 @@ item_db: (
Name: "Costume Jaguar Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 7168
View: 530
},
@@ -100814,7 +100611,6 @@ item_db: (
Name: "Costume Dragon Arhat Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 6144
View: 545
},
@@ -100824,7 +100620,6 @@ item_db: (
Name: "Costume Tiger Arhat Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 6144
View: 546
},
@@ -100834,7 +100629,6 @@ item_db: (
Name: "Costume Dynasty Decoration"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 583
},
@@ -100844,7 +100638,6 @@ item_db: (
Name: "Costume Samurai Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 4096
View: 644
},
@@ -100854,7 +100647,6 @@ item_db: (
Name: "Costume Hatah Black"
Type: 5
Buy: 1000
- Slots: 1
Loc: 7168
View: 676
},
@@ -100864,7 +100656,6 @@ item_db: (
Name: "Costume Ancient Horn"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 757
},
@@ -100874,7 +100665,6 @@ item_db: (
Name: "Costume Sprout Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 758
},
@@ -100884,7 +100674,6 @@ item_db: (
Name: "Costume Mercury Helm"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 759
},
@@ -100894,7 +100683,6 @@ item_db: (
Name: "Costume White Musang Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 770
},
@@ -100904,7 +100692,6 @@ item_db: (
Name: "Costume Black Musang Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 771
},
@@ -100934,7 +100721,6 @@ item_db: (
Name: "Costume Ascension Black Dragon"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 863
},
@@ -100964,7 +100750,6 @@ item_db: (
Name: "Costume Red Wind Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 613
},
@@ -101069,7 +100854,6 @@ item_db: (
Name: "Costume Wandering Wolf Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 490
},
@@ -101079,7 +100863,6 @@ item_db: (
Name: "Costume Imp Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 589
},
@@ -101153,7 +100936,6 @@ item_db: (
Name: "Costume Refined Bunny Band"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 15
},
@@ -101182,7 +100964,6 @@ item_db: (
Name: "Costume Crown"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 45
},
@@ -101192,7 +100973,6 @@ item_db: (
Name: "Costume Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 16
},
@@ -101202,7 +100982,6 @@ item_db: (
Name: "Costume Flower Band"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 5
},
@@ -101212,7 +100991,6 @@ item_db: (
Name: "Costume Flu Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 8
},
@@ -101222,7 +101000,6 @@ item_db: (
Name: "Costume Mini Propeller"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 46
},
@@ -101232,7 +101009,6 @@ item_db: (
Name: "Costume Clown Nose"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 49
},
@@ -101242,7 +101018,6 @@ item_db: (
Name: "Costume Nurse Cap"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 64
},
@@ -101252,7 +101027,6 @@ item_db: (
Name: "Costume Sakkat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 67
},
@@ -101304,7 +101078,6 @@ item_db: (
Name: "Costume Santa Doll Headband"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 964
},
@@ -101314,7 +101087,6 @@ item_db: (
Name: "Costume Fresh Roses"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 963
},
@@ -101324,7 +101096,6 @@ item_db: (
Name: "Costumes Red Bonnet"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 190
},
@@ -101334,7 +101105,6 @@ item_db: (
Name: "Costume Twin Pompom By JB"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 390
},
@@ -101344,7 +101114,6 @@ item_db: (
Name: "Costume Red Dress Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 670
},
@@ -101364,7 +101133,6 @@ item_db: (
Name: "Costume Withe Snake Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 413
},
@@ -101396,7 +101164,6 @@ item_db: (
Name: "Costume Evolved Evil Wing"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 39
},
@@ -101406,7 +101173,6 @@ item_db: (
Name: "Costume Goblin Leader Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 174
},
@@ -101426,7 +101192,6 @@ item_db: (
Name: "Costume Binoculars"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 83
},
@@ -101436,7 +101201,6 @@ item_db: (
Name: "Costume Fin Helm"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 100
},
@@ -101446,7 +101210,6 @@ item_db: (
Name: "Costume Gas Mask"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 91
},
@@ -101465,7 +101228,6 @@ item_db: (
Name: "Costume Renown Detective's Cap"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 189
},
@@ -101475,7 +101237,6 @@ item_db: (
Name: "Costume Sleeping Cat Hat"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 838
},
@@ -101485,7 +101246,6 @@ item_db: (
Name: "Costume Small Golden Wings"
Type: 5
Buy: 1000
- Slots: 1
Loc: 1024
View: 724
},
@@ -101495,7 +101255,6 @@ item_db: (
Name: "Costume Monster Card"
Type: 5
Buy: 1000
- Slots: 1
Loc: 4096
View: 526
},
@@ -101505,7 +101264,6 @@ item_db: (
Name: "Costume Wing Angels Ears"
Type: 5
Buy: 1000
- Slots: 1
Loc: 2048
View: 158
},
@@ -101675,7 +101433,6 @@ item_db: (
if(getrefine()>=9) {
autobonus2 "{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }",200,1000,BF_WEAPON,"{ specialeffect2 EF_REFLECTSHIELD; }";
}
-
">
},
{
diff --git a/db/re/item_delay.txt b/db/re/item_delay.txt
index 8905edb11..137032ab7 100644
--- a/db/re/item_delay.txt
+++ b/db/re/item_delay.txt
@@ -41,4 +41,4 @@
12661, 10000 // Transformation Scroll(Marduk)
12662, 10000 // Transformation Scroll(Banshee)
12663, 10000 // Transformation Scroll(Poring)
-12664, 10000 // Transformation Scroll(Golem) \ No newline at end of file
+12664, 10000 // Transformation Scroll(Golem)
diff --git a/db/sc_config.txt b/db/sc_config.txt
index 0358350eb..af8be8b87 100644
--- a/db/sc_config.txt
+++ b/db/sc_config.txt
@@ -428,4 +428,4 @@ SC_STRANGELIGHTS, 207
SC_DECORATION_OF_MUSIC, 207
//Cant Clear
-SC_ALL_RIDING, 128 \ No newline at end of file
+SC_ALL_RIDING, 128
diff --git a/db/skill_improvise_db.txt b/db/skill_improvise_db.txt
index f4fe8f487..91ca8b131 100644
--- a/db/skill_improvise_db.txt
+++ b/db/skill_improvise_db.txt
@@ -25,4 +25,4 @@
84,6000 // Jupitel Thunder
85,4000 // Lord of Vermilion
86,6000 // Water Ball
-89,4000 // Storm Gust \ No newline at end of file
+89,4000 // Storm Gust
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 31574d0a2..45311592a 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -478,15 +478,15 @@ nothing - A permanent variable attached to the character, the default
.variables which are accessible from inside the function,
however 'getvariableofnpc' does NOT work on function objects.
".@" - A scope variable.
- They are unique to the instance and scope. Each instance has
- its own scope that ends when the script ends. Calling a
- function with callsub/callfunc starts a new scope, returning
- from the function ends it. When a scope ends, it's variables
- are converted to values ('return .@var;' returns a value, not a
- reference).
+ They are unique to the character, script and scope. Each script
+ execution has its own scope that ends when the script ends.
+ Calling a function with callsub/callfunc starts a new scope,
+ returning from the function ends it. When a scope ends, its
+ variables are converted to values ('return .@var;' returns a
+ value, not a reference).
"'" - An instance variable.
These are used with the instancing system, and are unique to
- each party's instance.
+ each instance.
"#" - A permanent local account variable.
"##" - A permanent global account variable stored by the login server.
The only difference you will note from normal # variables is
@@ -512,6 +512,8 @@ $@name$ - temporary global string variable
.name$ - NPC string variable
.@name - scope integer variable
.@name$ - scope string variable
+ 'name - instance integer variable
+ 'name$ - instance string variable
#name - permanent local account integer variable
#name$ - permanent local account string variable
##name - permanent global account integer variable
@@ -579,23 +581,24 @@ Variables can be accessed and assigned values directly without the use of
the built-in 'set' function. This means that variables can be accessed and
modified much like other programming languages.
- @x = 100;
- @x = @y = 100;
+ .@x = 100;
+ .@x = .@y = 100;
Support for modifying variable values using 'set' is still supported (and
required to exist for this method to work) so previous scripts will
-continue working.
+continue working. Its usage, though, is deprecated, and it should never be
+used in new scripts unless there are special reasons to do so.
When assigning values, all operator methods are supported which exist in
the below 'Operators' section. For instance:
- @x += 100;
- @x -= 100;
- @x *= 2;
- @x /= 2;
- @x %= 5;
- @x >>= 2;
- @x <<= 2;
+ .@x += 100;
+ .@x -= 100;
+ .@x *= 2;
+ .@x /= 2;
+ .@x %= 5;
+ .@x >>= 2;
+ .@x <<= 2;
Will all work. For more information on available operators, see the
Operators section described below. All operators listed there may be
@@ -605,22 +608,22 @@ action as required.
Increment and decrement operators are also provided, for your convenience.
Pre-increment and pre-decrement operators:
- ++@x; // same as @x = @x + 1
- --@x; // same as @x = @x - 1
+ ++.@x; // same as .@x = .@x + 1
+ --.@x; // same as .@x = .@x - 1
Post-increment and post-decrement operators:
- @x++; // similar to @x = @x + 1
- @x--; // similar to @x = @x - 1
+ .@x++; // similar to .@x = .@x + 1
+ .@x--; // similar to .@x = .@x - 1
The difference between pre- and post- increment/decrement operators is that,
when used in an expression, the pre- ones will be executed before evaluating
the expression, while the post- ones will be executed after. For example:
- @x = 1;
- @y = ++@x; // After this line is executed, both @y and @x will be 2
- @x = 1;
- @y = @x++; // After this line is executed, @y will be 1, @x will be 2
+ .@x = 1;
+ .@y = ++.@x; // After this line is executed, both .@y and .@x will be 2
+ .@x = 1;
+ .@y = .@x++; // After this line is executed, .@y will be 1, .@x will be 2
Note: The pre-increment/pre-decrement operators are, by design, faster (or at
least not slower) than their respective post- equivalent.
@@ -634,8 +637,10 @@ Note:
Strings
-------
-To include symbol '"' in a string you should use prefix '\"'.
+Strings are enclosed in "double quotes". To include the literal double
+quote symbol (") in a string you need to escape it with a blackslash:
+ .@string$ = "This string contains some \"double quote\" symbols";
Arrays
------
@@ -646,69 +651,36 @@ array with an 'array index', a number of a variable in that array:
<variable name>[<array index>]
+All variable types can be used as arrays.
+
Variables stored in this way, inside an array, are also called 'array
elements'. Arrays are specifically useful for storing a set of similar
-data (like several item IDs for example) and then looping through it. You
+data (like several item IDs for example) and then looping through it. You
can address any array variable as if it was a normal variable:
- set @arrayofnumbers[0],1;
+ .@arrayofnumbers[0] = 1;
-You can also do sneaky things like using a variable (or an expression, or
-even a value from an another array) to get at an array value:
+You can use a variable (or an expression, or even a value from an another
+array) as array index:
- set @x,100;
- set @arrayofnumbers[@x],10;
+ .@x = 100;
+ .@arrayofnumbers[.@x] = 10;
-This will make @arrayofnumbers[100] equal to 10.
+This will make .@arrayofnumbers[100] equal to 10.
-Notice that index numbering always starts with 0. Arrays can hold over
-2 billion variables.
+Index numbering always starts with 0 and arrays can hold over 2 billion
+variables. As such, the (guaranteed) allowed values for indices are in the
+range 0 ~ 2147483647.
-And array indexes probably can't be negative. Nobody tested what happens
-when you try to get a negatively numbered variable from an array, but it's
-not going to be pretty. :)
+If the array index is omitted, it defaults to zero. Writing
+.@arrayofnumbers is perfectly equivalent to writing .@arrayofnumbers[0].
Arrays can naturally store strings:
-@menulines$[0] is the 0th element of the @menulines$ array of strings.
+.@menulines$[0] is the 0th element of the .@menulines$ array of strings.
Notice the '$', normally denoting a string variable, before the square
brackets that denotes an array index.
-Resume of the allowed variable and array scopes
------- -- --- ------- -------- --- ----- ------
-
-+==========+======+=======+
-|VarType | Norm | Array |
-+==========+======+=======+
-|$Str$ | OK! | OK! |
-+----------+------+-------+
-|$@Str$ | OK! | OK! |
-+----------+------+-------+
-|@Str$ | OK! | OK! |
-+----------+------+-------+
-|#Str$ | OK! | FAIL! |
-+----------+------+-------+
-|Str$ | OK! | FAIL! |
-+----------+------+-------+
-|$Int | OK! | OK! |
-+----------+------+-------+
-|$@Int | OK! | OK! |
-+----------+------+-------+
-|@Int | OK! | OK! |
-+----------+------+-------+
-|#Int | OK! | FAIL! |
-+----------+------+-------+
-|Int | OK! | FAIL! |
-+----------+------+-------+
-|.Str$ | OK! | OK! |
-+----------+------+-------+
-|.Int | OK! | OK! |
-+----------+------+-------+
-|.@Str$ | OK! | OK! |
-+----------+------+-------+
-|.@Int | OK! | OK! |
-+----------+------+-------+
-
Variable References
-------------------
@@ -760,7 +732,7 @@ Examples:
1==1 is True.
1<2 is True while 1>2 is False.
- @x>2 is True if @x is equal to 3. But it isn't true if @x is 2.
+ .@x>2 is True if .@x is equal to 3. But it isn't true if .@x is 2.
Only '==', '!=', '~=' and '~!' have been tested for comparing strings. Since
there's no way to code a seriously complex data structure in this language,
@@ -785,10 +757,10 @@ Logical bitwise operators work only on numbers, and they are the following:
In the other hand, Right shift moves the binary 1(s) of a number n
positions to the right, which is the same as dividing by 2, n times.
Example:
- set b,2;
- set a, b << 3;
+ b = 2;
+ a = b << 3;
mes a;
- set a, a >> 2;
+ a = a >> 2;
mes a;
The first mes command would display 16, which is the same as:
2 x (2 x 2 x 2) = 16.
@@ -823,12 +795,12 @@ Logical bitwise operators work only on numbers, and they are the following:
arguments, so in the example 1010 & 0010, only the 2^1 bit is
active (1) in both. Resulting in the bit 0010, which is 2.
- Basic example of creating and using a bit-mask:
- set @options,2|4|16; // (note: this is the same as 2+4+16, or 22)
- if (@options & 1) mes "Option 1 is activated";
- if (@options & 2) mes "Option 2 is activated";
- if (@options & 4) mes "Option 3 is activated";
- if (@options & 8) mes "Option 4 is activated";
- if (@options & 16) mes "Options 5 is activated";
+ .@options = 2|4|16; // (note: this is the same as 2+4+16, or 22)
+ if (.@options & 1) mes "Option 1 is activated";
+ if (.@options & 2) mes "Option 2 is activated";
+ if (.@options & 4) mes "Option 3 is activated";
+ if (.@options & 8) mes "Option 4 is activated";
+ if (.@options & 16) mes "Option 5 is activated";
This would return the messages about option 2, 3 and 5 being shown
(since we've set the 2,4 and 16 bit to 1).
^ - Xor.
@@ -840,21 +812,19 @@ Logical bitwise operators work only on numbers, and they are the following:
Example:
- First let's set the quests that are currently in progress:
- set inProgress,1|8|16; // quest 1,8 and 16 are in progress
+ inProgress = 1|8|16; // quest 1,8 and 16 are in progress
- After playing for a bit, the player starts another quest:
if( inProgress&2 == 0 ){
- // this will set the bit for quest 2 (inProgress has that bit
- // set to 0)
- set inProgress,inProgress^2;
+ // this will set the bit for quest 2 (inProgress has that bit set to 0)
+ inProgress = inProgress^2;
mes "Quest 2: find a newbie and be helpful to him for an hour.";
close;
}
- After spending some time reading info on Xor's, the player finally
completes quest 1:
- if( inProgress&1 && isComplete ){
- // this will unset the bit for quest 1 (inProgress has that
- // bit set to 1)
- set inProgress,inProgress^1;
+ if( inProgress&1 && isComplete ) {
+ // this will unset the bit for quest 1 (inProgress has that bit set to 1)
+ inProgress = inProgress^1;
mes "Quest 1 complete!! You unlocked the secrets of the Xor dynasty, use them wisely.";
close;
}
@@ -867,7 +837,7 @@ operator, and are the following:
it will become negative and vice versa.
Example:
- set .@myvar,10;
+ .@myvar = 10;
mes "Negative 10 is "+(-.@myvar);
! - Logical Not.
@@ -875,8 +845,7 @@ operator, and are the following:
and false will become true.
Example:
- if(!callfunc("F_dosomething"))
- {
+ if(!callfunc("F_dosomething")) {
mes "Doing something failed.";
close;
}
@@ -888,8 +857,8 @@ operator, and are the following:
Example:
- Ensure, that quest 2 is disabled, while keeping all other active, if
they are.
- set inProgress,inProgress&(~2);
- // same as set inProgress,inProgress&0xfffffffd
+ inProgress = inProgress&(~2);
+ // same as set inProgress,inProgress&0xfffffffd
Ternary operators take three expressions (numbers, strings or boolean),
and are the following:
@@ -1171,7 +1140,7 @@ From here on, we will have the commands sorted as followed:
-- 5.1: Time-Related Commands
-- 5.2: Guild-Related Commands
6 - Other Commands
-7 - Instance Commands
+7 - Instance-Related Commands
8 - Quest Log Commands
9 - Battleground Commands
10 - Mercenary Commands
@@ -1296,28 +1265,25 @@ Don't expect things to run smoothly if you don't make your scripts 'end'.
This command will stop the execution for this particular script.
It is required for any script not using 'mes'.
- if (BaseLevel<=10) goto L_Lvl10;
- if (BaseLevel<=20) goto L_Lvl20;
- if (BaseLevel<=30) goto L_Lvl30;
- if (BaseLevel<=40) goto L_Lvl40;
- if (BaseLevel<=50) goto L_Lvl50;
- if (BaseLevel<=60) goto L_Lvl60;
- if (BaseLevel<=70) goto L_Lvl70;
- L_Lvl10:
+ if (BaseLevel <= 10) {
npctalk "Look at that you are still a n00b";
end;
- L_Lvl20:
+ }
+ if (BaseLevel <= 20) {
npctalk "Look at that you are getting better, but still a n00b";
end;
- L_Lvl30:
+ }
+ if (BaseLevel <= 30) {
npctalk "Look at that you are getting there, you are almost 2nd profession now right???";
end;
- L_Lvl40:
+ }
+ if (BaseLevel <= 40) {
npctalk "Look at that you are almost 2nd profession";
end;
+ }
-Without the use if 'end' it would travel through the labels until the end
-of the script. If you were lvl 10 or less, you would see all the speech
+Without the use of 'end' it would travel through the ifs until the end
+of the script. If you were lvl 10 or less, you would see all the speech
lines, the use of 'end' stops this, and ends the script.
---------------------------------------
@@ -1330,19 +1296,9 @@ in. This isn't the only way to set a variable directly: you can set them
much like any other programming language as stated before (refer to the
'Assigning variables' section).
-This is the most basic script command and is used a lot whenever you try
-to do anything more advanced than just printing text into a message box.
-
- set @x,100;
-
-will make @x equal 100.
-
- set @x,1+5/8+9;
-
-will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers
-are integer in this language) and make @x equal to it.
-
-Returns the variable reference.
+This command is deprecated and it shouldn't be used in new scripts, except
+some special cases (mostly, set getvariableofnpc). Use direct value
+assignment instead.
---------------------------------------
@@ -1374,8 +1330,8 @@ This can also be used to set an array dynamically:
Examples:
- set getd("$varRefence"), 1;
- set @i, getd("$" + "pikachu");
+ mes "The value of $varReference is: " + getd("$varRefence");
+ set .@i, getd("$" + "pikachu");
---------------------------------------
@@ -1392,10 +1348,10 @@ Examples:
//This will set the .v variable to the value of the TargetNPC's .var
//variable.
- set .v,getvariableofnpc(.var,"TargetNPC");
+ .v = getvariableofnpc(.var,"TargetNPC");
//This will set the .var variable of TargetNPC to 1.
- set getvariableofnpc(.var,"TargetNPC"),1;
+ set getvariableofnpc(.var,"TargetNPC"), 1;
Note: even though function objects can have .variables, getvariableofnpc
will not work on them.
@@ -1426,6 +1382,10 @@ Depending on what the player picks from the menu, the script execution
will continue from the corresponding label. It's string-label pairs, not
label-string.
+This command is deprecated and it should not be used in new scripts, as it
+is likely to be removed at a later time. Please consider using select() or
+prompt() instead.
+
Options can be grouped together, separated by the character ':'.
menu "A:B",L_Wrong,"C",L_Right;
@@ -1474,47 +1434,46 @@ populate it with the strings that should go into the menu at this
execution, making sure not to leave any gaps. Normally, you do it with a
loop and an extra counter, like this:
- setarray @possiblemenuitems$[0],<list of potential menu items>;
- set @j,0; // That's the menu lines counter.
+ setarray .@possiblemenuitems$[0],<list of potential menu items>;
+ .@j = 0; // That's the menu lines counter.
// We loop through the list of possible menu items.
- // @i is our loop counter.
- for( set @i,0; @i<getarraysize(@possiblemenuitems$) ; set @i,@i+1 )
- {
+ // .@i is our loop counter.
+ for (.@i = 0; .@i < getarraysize(.@possiblemenuitems$); ++.@i) {
// That 'condition' is whatever condition that determines whether
- // a menu item number @i actually goes into the menu or not.
+ // a menu item number .@i actually goes into the menu or not.
if (<condition>)
{
// We record the option into the list of options actually
- // available.
+ // available.
- set @menulist$[@j],@possiblemenuitems$[@i];
+ set .@menulist$[.@j],.@possiblemenuitems$[.@i];
// We just copied the string, we do need it's number for later
// though, so we record it as well.
- set @menureference[@j],@i;
+ set .@menureference[.@j],.@i;
// Since we've just added a menu item into the list, we
- // increment the menu lines counter.
+ // increment the menu lines counter.
- set @j,@j+1;
+ ++.@j;
}
// We go on to the next possible menu item.
}
-This will create you an array @menulist$ which contains the text of all
+This will create you an array .@menulist$ which contains the text of all
items that should actually go into the menu based on your condition, and
-an array @menureference, which contains their numbers in the list of
+an array .@menureference, which contains their numbers in the list of
possible menu items. Remember, arrays start with 0. There's less of them
than the possible menu items you've defined, but the menu command can
handle the empty lines - only if they are last in the list, and if it's
made this way, they are. Now comes a dirty trick:
// X is whatever the most menu items you expect to handle.
- menu @menulist$[0],-,@menulist$[1],-,....@menulist$[<X>],-;
+ menu .@menulist$[0],-,.@menulist$[1],-,...,.@menulist$[<X>],-;
This calls up a menu of all your items. Since you didn't copy some of the
possible menu items into the list, it's end is empty and so no menu items
@@ -1530,19 +1489,19 @@ starting with 1 for the first option. You know now which option the user
picked and which number in your real list of possible menu items it
translated to:
- mes "You selected "+@possiblemenuitems$[@menureference[@menu-1]]+"!";
+ mes "You selected "+.@possiblemenuitems$[.@menureference[@menu-1]]+"!";
@menu is the number of option the user picked.
@menu-1 is the array index for the list of actually used menu items that
we made.
-@menureference[@menu-1] is the number of the item in the array of possible
+.@menureference[@menu-1] is the number of the item in the array of possible
menu items that we've saved just for this purpose.
-And @possiblemenuitems$[@menureference[@menu-1]] is the string that we
+And .@possiblemenuitems$[.@menureference[@menu-1]] is the string that we
used to display the menu line the user picked. (Yes, it's a handful, but
it works.)
-You can set up a bunch of 'if (@menureference[@menu-1]==X) goto Y'
+You can set up a bunch of 'if (.@menureference[@menu-1]==X) goto Y'
statements to route your execution based on the line selected and still
generate a different menu every time, which is handy when you want to, for
example, make users select items in any specific order before proceeding,
@@ -1555,7 +1514,7 @@ doesn't use @menu, probably since that wasn't documented anywhere.
See also 'select', which is probably better in this particular case.
Instead of menu, you could use 'select' like this:
- set @dummy,select(@menulist$[0],@menulist$[1],....@menulist$[<X>]);
+ .@dummy = select(.@menulist$[0],.@menulist$[1],...,.@menulist$[<X>]);
For the purposes of the technique described above these two statements are
perfectly equivalent.
@@ -1565,13 +1524,13 @@ perfectly equivalent.
*select("<option>"{,"<option>",...})
*prompt("<option>"{,"<option>",...})
-This function is a handy replacement for 'menu' for some specific cases
-where you don't want a complex label structure - like, for example, asking
-simple yes-no questions. It will return the number of menu option picked,
-starting with 1. Like 'menu', it will also set the variable @menu to
+This function is a handy replacement for 'menu' that doesn't use a complex
+label structure. It will return the number of menu option picked,
+starting with 1. Like 'menu', it will also set the variable @menu to
contain the option the user picked.
- if (select("Yes:No")==1) mes "You said yes, I know.";
+ if (select("Yes:No") == 1)
+ mes "You said yes, I know.";
And like 'menu', the selected option is consistent with grouped options
and empty options.
@@ -1592,16 +1551,13 @@ many uses, one example would be a guessing game, also making use of the
mes "Try and guess the number I am thinking of.";
mes "The number will be between 1 and 10.";
next;
- set @number, rand(1,10);
- input @guess;
- if(@guess==@number)
- {
+ .@number = rand(1,10);
+ input .@guess;
+ if (.@guess == .@number) {
mes "[Woman]";
mes "Well done that was the number I was thinking of";
close;
- }
- else
- {
+ } else {
mes "[Woman]";
mes "Sorry, that wasn't the number I was thinking of.";
close;
@@ -1614,15 +1570,12 @@ allowed.
mes "[Woman]";
mes "Please say HELLO";
next;
- input @var$;
- if(@var$=="HELLO")
- {
+ input .@var$;
+ if (.@var$ == "HELLO") {
mes "[Woman]";
mes "Well done you typed it correctly";
close;
- }
- else
- {
+ } else {
mes "[Woman]";
mes "Sorry you got it wrong";
close;
@@ -1658,8 +1611,9 @@ back to the place that called it.
close;
}
function%TAB%script%TAB%funcNPC%TAB%{
- set @win, rand(2);
- if(@win==0) return;
+ .@win = rand(2);
+ if (.@win == 0)
+ return;
mes "Sorry you lost";
end;
}
@@ -1676,8 +1630,8 @@ make the script generally cleaner:
mes "[Man]"
mes "Gimme a number!";
next;
- input @number;
- if (callfunc("OddFunc",@number)) mes "It's Odd!";
+ input .@number;
+ if (callfunc("OddFunc",.@number)) mes "It's Odd!";
close;
}
function%TAB%script%TAB%OddFunc%TAB%{
@@ -1724,10 +1678,10 @@ label is not callable in this manner from another script.
Example 1: callsub for checking (if checks pass, return to script)
callsub S_CheckFull, "guild_vs2",50;
switch( rand(4) ) {
- case 0: warp "guild_vs2",9,50; end;
- case 1: warp "guild_vs2",49,90; end;
- case 2: warp "guild_vs2",90,50; end;
- case 3: warp "guild_vs2",49,9; end;
+ case 0: warp "guild_vs2",9,50; end;
+ case 1: warp "guild_vs2",49,90; end;
+ case 2: warp "guild_vs2",90,50; end;
+ case 3: warp "guild_vs2",49,9; end;
}
...
@@ -1743,11 +1697,11 @@ Example 2: callsub used repeatedly, with different arguments
// notice how the Zeny check/delete is reused, instead of copy-pasting for
// every warp.
switch(select("Abyss Lake:Amatsu Dungeon:Anthell:Ayothaya Dungeon:Beacon Island, Pharos") {
- case 1: callsub S_DunWarp,"hu_fild05",192,207;
- case 2: callsub S_DunWarp,"ama_in02",119,181;
- case 3: callsub S_DunWarp,"moc_fild20",164,145;
- case 4: callsub S_DunWarp,"ayo_fild02",279,150;
- case 5: callsub S_DunWarp,"cmd_fild07",132,125;
+ case 1: callsub S_DunWarp,"hu_fild05",192,207;
+ case 2: callsub S_DunWarp,"ama_in02",119,181;
+ case 3: callsub S_DunWarp,"moc_fild20",164,145;
+ case 4: callsub S_DunWarp,"ayo_fild02",279,150;
+ case 5: callsub S_DunWarp,"cmd_fild07",132,125;
// etc
}
@@ -1758,7 +1712,7 @@ S_DunWarp:
// getarg(1) = x
// getarg(2) = y
if (Zeny >= 100) {
- set Zeny, Zeny-100;
+ Zeny -= 100;
warp getarg(0),getarg(1),getarg(2);
} else {
mes "Dungeon warp costs 100 Zeny.";
@@ -1795,8 +1749,8 @@ number 0. If no such argument was given, a zero is returned.
...
function%TAB%script%TAB%funcNPC%TAB%{
- set @win, rand(getarg(0));
- if(@win==0) return;
+ .@win = rand(getarg(0));
+ if(.@win==0) return;
mes "Sorry you lost";
"woman1" NPC object calls the funcNPC. The argument it gives in this call
@@ -1830,7 +1784,7 @@ Example:
callfunc "funcNPC",5,4,3;
...
function%TAB%script%TAB%funcNPC%TAB%{
- set .@count, getargcount(); // 3
+ .@count = getargcount(); // 3
...
}
@@ -1847,7 +1801,7 @@ Using this command outside of functions or scripts referenced by callsub
will result in error and termination of the script.
callfunc "<your function>";// when nothing is returned
- set <variable>,callfunc("<your function>");
+ <variable> = callfunc("<your function>");
// when a value is being returned
---------------------------------------
@@ -1892,7 +1846,7 @@ prontera,154,189,4 script Item Seller 767,{
mes "Would you like to buy a phracon for 50z?";
next;
if(select("Yes","No, thanks") == 1) {
- set Zeny, Zeny-50;
+ Zeny -= 50;
getitem 1010,1;
mes "Thank you!";
}
@@ -1935,8 +1889,8 @@ Example:
}
- script test -1,{
- set .@try, is_function("try"); // 1
- set .@not, is_function("not"); // 0
+ .@try = is_function("try"); // 1
+ .@not = is_function("not"); // 0
}
---------------------------------------
@@ -1969,100 +1923,65 @@ More examples of using the 'if' command in the real world:
Example 1:
- set @var1,1;
- input @var2;
- if(@var1==@var2) goto L_Same;
- mes "Sorry that is wrong";
- close;
- L_Same:
+ .@var1 = 1;
+ input .@var2;
+ if (.@var1 == .@var2)
close;
+ mes "Sorry that is wrong";
+ close;
Example 2:
- set @var1,1;
- input @var2;
- if(@var1!=@var2) mes "Sorry that is wrong";
+ .@var1 = 1;
+ input .@var2;
+ if (.@var1 != .@var2)
+ mes "Sorry that is wrong";
close;
(Notice examples 1 and 2 have the same effect.)
Example 3:
- set @var1,@var1+1;
+ ++.@var1;
mes "[Forgetfull Man]";
- if (@var==1) mes "This is the first time you have talked to me";
- if (@var==2) mes "This is the second time you have talked to me";
- if (@var==3) mes "This is the third time you have talked to me";
- if (@var==4) mes "This is the forth time you have talked to me, but I think I am getting amnesia, I have forgotten about you";
- if (@var==4) set @var,0;
+ if (.@var == 1) mes "This is the first time you have talked to me";
+ if (.@var == 2) mes "This is the second time you have talked to me";
+ if (.@var == 3) mes "This is the third time you have talked to me";
+ if (.@var == 4) mes "This is the forth time you have talked to me, but I think I am getting amnesia, I have forgotten about you";
+ if (.@var == 4) .@var = 0;
close;
Example 4:
- mes "[Quest Person]";
- if(countitem(512)>=1) goto L_GiveApple;
- // The number 512 was found from item_db, it is the item number
- // for the Apple.
- mes "Can you please bring me an apple?";
- close;
- L_GiveApple:
+ mes "[Quest Person]";
+ // The (AegisName) constant Apple comes from item_db, it is the item number 512.
+ if (countitem(Apple) >= 1) {
mes "Oh an apple, I didn't want it, I just wanted to see one";
close;
+ }
+ mes "Can you please bring me an apple?";
+ close;
-Example 5:
-
- mes "[Person Checker]";
- if($name$!=null) goto L_Check;
- mes "Please tell me someones name";
- next;
- input $name$;
- set $name2$,strcharinfo(0);
- mes "[Person Checker]";
- mes "Thank you";
- L_Check:
- if($name$==strcharinfo(0) ) goto L_SameName;
- mes "[Person Checker]";
- mes "You are not the person that " +$name2$+ " mentioned";
- L_End:
- set $name$,null;
- set $name2$,null;
- close;
- L_SameName:
- mes "[Person Checker]";
- mes "You are the person that " +$name2$+ " just mentioned";
- mes "nice to meet you";
- goto L_End;
-
-See 'strcharinfo' for explanation of what this function does.
-
-Example 6: Using complex conditions.
+Example 5: Using complex conditions.
- mes "[Multi Checker]";
- if( (@queststarted==1) && (countitem(512)>=5) ) goto L_MultiCheck;
- // Only if the quest has been started AND You have 5 apples will it goto "L_MultiCheck"
- mes "Please get me 5 apples";
- set @queststarted,1;
- close;
- L_MultiCheck:
+ mes "[Multi Checker]";
+ if ((queststarted == 1) && (countitem(Apple) >= 5)) {
+ // Executed only if the quest has been started AND You have 5 apples
mes "[Multi Checker]";
mes "Well done you have started the quest of got me 5 apples";
- mes "Thank you";
- set @queststarted,0;
- delitem 512,5;
+ mes "Thank you";
+ queststarted = 0;
+ delitem Apple, 5;
close;
+ }
+ mes "Please get me 5 apples";
+ queststarted = 1;
+ close;
-With the Advanced scripting engine, we got nested if's. That is:
-
-if (<condition>)
- dothis;
-else
- dothat;
-
If the condition doesn't meet, it'll do the action following the else.
We can also group several actions depending on a condition, this way:
-if (<condition)
-{
+if (<condition) {
dothis1;
dothis2;
dothis3;
@@ -2073,6 +1992,30 @@ if (<condition)
dothat4;
}
+Example 6:
+
+ mes "[Person Checker]";
+ if ($name$ == "") {
+ mes "Please tell me someone's name";
+ next;
+ input $name$;
+ $name2$ = strcharinfo(0);
+ mes "[Person Checker]";
+ mes "Thank you";
+ close;
+ }
+ if ($name$ == strcharinfo(0)) {
+ mes "You are the person that " +$name2$+ " just mentioned";
+ mes "nice to meet you";
+ } else {
+ mes "You are not the person that " +$name2$+ " mentioned";
+ }
+ $name$ = "";
+ $name2$ = "";
+ close;
+
+See 'strcharinfo' for explanation of what this function does.
+
Remember that if you plan to do several actions upon the condition being
false, and you forget to use the curly braces (the { } ), the second
action will be executed regardless the output of the condition, unless of
@@ -2085,8 +2028,7 @@ about limits as to how many nested if you can have, there is no spoon ;).
...
if (<condition 1>)
dothis;
-else if (<condition 2>)
-{
+else if (<condition 2>) {
dotheother;
do that;
end;
@@ -2100,8 +2042,9 @@ else if (<condition 2>)
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'. While 'if' is more generally
-useful, for some cases this could be an optimization.
+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
@@ -2134,10 +2077,10 @@ Example 2: multiple statements
}
Example 3: counter-controlled loop
- set .@i, 1;
+ .@i = 1;
while (.@i <= 5) {
mes "This line will print 5 times.";
- set .@i, .@i +1;
+ ++.@i;
}
Example 4: sentinel-controlled loop
@@ -2164,12 +2107,12 @@ usually involves incrementing a variable). Then the condition is
reevaluated and the cycle continues.
Example 1:
- for( set .@i, 1; .@i <= 5; set .@i, .@i +1 )
+ for (.@i = 0; .@i < 5; ++.@i)
mes "This line will print 5 times.";
Example 2:
mes "This will print the numbers 1 - 5.";
- for( set .@i, 1; .@i <= 5; set .@i, .@i +1 )
+ for (.@i = 1; .@i <= 5; ++.@i)
mes .@i;
---------------------------------------
@@ -2185,15 +2128,14 @@ statement following the 'do...while' loop expression.
Example 1: sentinel-controlled loop
mes "This menu will keep appearing until you pick Cancel";
do {
- set .@menu, select("One:Two:Three:Cancel");
- } while (.@menu != 4);
+ .@choice = select("One:Two:Three:Cancel");
+ } while (.@choice != 4);
Example 2: counter-controlled loop
mes "This will countdown from 10 to 1.";
- set .@i, 10;
+ .@i = 10;
do {
- mes .@i;
- set .@i, .@i - 1;
+ mes .@i--;
} while (.@i > 0);
---------------------------------------
@@ -2202,13 +2144,19 @@ Example 2: counter-controlled loop
Toggling this to enabled (1) allows the script instance to bypass the
infinite loop protection, allowing your script to loop as much as it may
-need. Disabling (0) will warn you if an infinite loop is detected.
+need. Disabling (0) may warn you if an infinite loop is detected if your
+script is looping too many times.
+
+Please note, once again, that this isn't a solution to all problems, and by
+disabling this protection your Hercules server may become laggy or
+unresponsive if the script it is used in is performing lenghty loop
+operations.
Example:
freeloop(1); // enable script to loop freely
//Be aware with what you do here.
- for ( set .@i,0; .@i<.@bigloop; set .@i, .@i+1 ) {
+ for (.@i = 0; .@i < .@bigloop; ++.@i) {
dothis;
// will sleep the script for 1ms when detect an infinity loop to
// let Hercules do what it need to do (socket, timer, process,
@@ -2217,7 +2165,7 @@ Example:
freeloop(0); // disable
- for ( set .@i,0; .@i<.@bigloop; set .@i, .@i+1 ) {
+ for (.@i = 0; .@i < .@bigloop; ++.@i) {
dothis;
// throw an infinity loop error
}
@@ -2229,19 +2177,19 @@ Example:
This command will allow you to quickly fill up an array in one go. Check
the Kafra scripts in the distribution to see this used a lot.
- setarray @array[0], 100, 200, 300, 400, 500, 600;
+ setarray .@array[0], 100, 200, 300, 400, 500, 600;
-First value is the index of the first element of the array to alter. For
-example:
+The index of the first element of the array to alter can be omitted if
+zero. For example:
- setarray @array[0],200,200,200;
- setarray @array[1],300,150;
+ setarray .@array, 200, 200, 200;
+ setarray .@array[1], 300, 150;
will produce:
- @array[0]=200
- @array[1]=300
- @array[2]=150
+ .@array[0] = 200
+ .@array[1] = 300
+ .@array[2] = 150
---------------------------------------
@@ -2250,13 +2198,15 @@ will produce:
This command will change many array values at the same time to the same
value.
- setarray @array[0], 100, 200, 300, 400, 500, 600;
+ setarray .@array, 100, 200, 300, 400, 500, 600;
// This will make all 6 values 0
- cleararray @array[0],0,6;
+ cleararray .@array[0], 0, 6;
// This will make array element 0 change to 245
- cleararray @array[0],245,1;
+ cleararray .@array[0], 245, 1;
+ // This is equivalent to the above
+ cleararray .@array, 245, 1;
// This will make elements 1 and 2 change to 345
- cleararray @array[1],345,2;
+ cleararray .@array[1], 345, 2;
See 'setarray'.
@@ -2267,28 +2217,28 @@ See 'setarray'.
This command lets you quickly shuffle a lot of data between arrays, which
is in some cases invaluable.
- setarray @array[0], 100, 200, 300, 400, 500, 600;
- // So we have made @array[]
- copyarray @array2[0],@array[2],2;
+ setarray .@array, 100, 200, 300, 400, 500, 600;
+ // So we have made .@array[]
+ copyarray .@array2[0],.@array[2],2;
- // Now, @array2[0] will be equal to @array[2] (300) and
- // @array2[1] will be equal to @array[3].
+ // Now, .@array2[0] will be equal to .@array[2] (300) and
+ // .@array2[1] will be equal to .@array[3].
So using the examples above:
- @array[0] = 100
- @array[1] = 200
- @array[2] = 300
- @array[3] = 400
- @array[4] = 500
- @array[5] = 600
+ .@array[0] = 100
+ .@array[1] = 200
+ .@array[2] = 300
+ .@array[3] = 400
+ .@array[4] = 500
+ .@array[5] = 600
New Array:
- @array2[0] = 300
- @array2[1] = 400
- @array2[2] = 0
- @array2[3] = 0
+ .@array2[0] = 300
+ .@array2[1] = 400
+ .@array2[2] = 0
+ .@array2[3] = 0
-Notice that @array[4] and @array[5] won't be copied to the second array,
+Notice that .@array[4] and .@array[5] won't be copied to the second array,
and it will return a 0.
---------------------------------------
@@ -2300,11 +2250,23 @@ an array, shifting all the elements beyond this towards the beginning.
// This will delete array element 0, and move all the other array
// elements up one place.
- deletearray @array[0],1
+ deletearray .@array[0],1
// This would delete array elements numbered 1, 2 and 3, leave element 0
// in its place, and move the other elements ups, so there are no gaps.
- deletearray @array[1],3
+ deletearray .@array[1],3
+
+If the amount of items to delete is not specified, all elements of the
+array starting from the specified one to the end, are deleted. If no
+starting element is specified either, the the entire array will be
+deleted.
+
+ // This would delete all elements of the array starting from 2, leaving
+ // element 0 and 1
+ deletearray .@array[2];
+
+ // This would delete all elements of the array
+ deletearray .@array;
---------------------------------------
//=====================================
@@ -2349,21 +2311,28 @@ Whatever it returns is determined by type.
*getarraysize(<array name>)
-This function returns the number of values that are contained inside the
-specified array. Notice that zeros and empty strings at the end of this
-array are not counted towards this number.
+This function returns highest index of the array that is filled.
+Notice that zeros and empty strings at the end of this array are not
+counted towards this number.
For example:
- setarray @array[0], 100, 200, 300, 400, 500, 600;
- set @arraysize,getarraysize(@array);
+ setarray .@array, 100, 200, 300, 400, 500, 600;
+ .@arraysize = getarraysize(.@array);
+
+This will make .@arraysize == 6. But if you try this:
-This will make @arraysize == 6. But if you try this:
+ setarray .@array, 100, 200, 300, 400, 500, 600, 0;
+ .@arraysize = getarraysize(.@array);
- setarray @array[0], 100, 200, 300, 400, 500, 600, 0;
- set @arraysize,getarraysize(@array);
+.@arraysize will still equal 6, even though you've set 7 values.
-@arraysize will still equal 6, even though you've set 7 values.
+If you do this:
+
+ .@array[1000] = 1;
+ .@arraysize = getarraysize(.@array);
+
+.@arraysize will be 1000, even though only one element has been set.
---------------------------------------
@@ -2554,11 +2523,11 @@ Example 1: list party member names
// this script (sleep, sleep2, next, close2, input, menu, select, or
// prompt), another player could click this NPC, trigger
// 'getpartymember', and overwrite the $@partymember***** variables.
- set .@count, $@partymembercount;
+ .@count = $@partymembercount;
copyarray .@name$[0], $@partymembername$[0], $@partymembercount;
// list the party member names
- for (set .@i,0; .@i < .@count; set .@i, .@i+1) {
+ for (.@i = 0; .@i < .@count; ++.@i) {
mes (.@i +1) + ". ^0000FF" + .@name$[.@i] + "^000000";
}
close;
@@ -2566,28 +2535,28 @@ Example 1: list party member names
Example 2: check party count (with a 'next' pause), before warping to event
- set .register_num, 5; // How many party members are required?
+ .register_num = 5; // How many party members are required?
// get the charID and accountID of character's party members
getpartymember getcharid(1), 1;
getpartymember getcharid(1), 2;
- if ( $@partymembercount != .register_num ) {
+ if ($@partymembercount != .register_num) {
mes "Please form a party of "+ .register_num +" to continue";
close;
}
// loop through both and use 'isloggedin' to count online party members
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 )
- if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) )
- set .@count_online, .@count_online +1 ;
+ for (.@i = 0; .@i < $@partymembercount; ++.@i)
+ if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i]))
+ .@count_online++;
// We search accountID & charID because a single party can have
// multiple characters from the same account. Without searching
// through the charID, if a player has 2 characters from the same
// account inside the party but only 1 char online, it would count
// their online char twice.
- if ( .@count_online != .register_num ) {
+ if (.@count_online != .register_num) {
mes "All your party members must be online to continue";
close;
}
@@ -2595,7 +2564,7 @@ Example 2: check party count (with a 'next' pause), before warping to event
// copy the array to prevent players cheating the system
copyarray .@partymembercid, $@partymembercid, .register_num;
- mes "Are you ready ?";
+ mes "Are you ready?";
next; // careful here
select "Yes";
@@ -2605,12 +2574,12 @@ Example 2: check party count (with a 'next' pause), before warping to event
// with the original values.
getpartymember getcharid(1), 1;
- if ( $@partymembercount != .register_num ) {
+ if ($@partymembercount != .register_num) {
mes "You've made changes to your party !";
close;
}
- for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
- if ( .@partymembercid[.@i] != $@partymembercid[.@i] ) {
+ for (.@i = 0; .@i < $@partymembercount; ++.@i) {
+ if (.@partymembercid[.@i] != $@partymembercid[.@i]) {
mes "You've made changes to your party !";
close;
}
@@ -2732,32 +2701,30 @@ for either slot.
Can be used to check if you have something equipped, or if you haven't got
something equipped:
- if(getequipid(EQI_HEAD_TOP)==2234) goto L_WearingTiara;
- mes "Come back when you have a Tiara on";
- close;
- L_WearingTiara:
+ if(getequipid(EQI_HEAD_TOP) == Tiara) {
mes "What a lovely Tiara you have on";
close;
+ }
+ mes "Come back when you have a Tiara on";
+ close;
You can also use it to make sure people don't pass a point before removing
an item totally from them. Let's say you don't want people to wear Legion
Plate armor, but also don't want them to equip if after the check, you
would do this:
- if ((getequipid(EQI_ARMOR) == 2341) || (getequipid(EQI_ARMOR) == 2342) goto L_EquipedLegionPlate;
- // the || is used as an or argument, there is 2341 and 2342 'cause there
- // are two different legion plate armors; one with a slot and one without.
- if ((countitem(2341) > 0) || (countitem(2432) > 0) goto L_InventoryLegionPlate;
- mes "I will lets you pass";
- close2;
- warp "place",50,50;
- end;
- L_EquipedLegionPlate:
+ if (getequipid(EQI_ARMOR) == Full_Plate_Armor || getequipid(EQI_ARMOR) == Full_Plate_Armor_) {
mes "You are wearing some Legion Plate Armor, please drop that in your stash before continuing";
close;
- L_InventoryLegionPlate:
+ }
+ if (countitem(Full_Plate_Armor) > 0 || countitem(Full_Plate_Armor_) > 0) {
mes "You have some Legion Plate Armor in your inventory, please drop that in your stash before continuing";
close;
+ }
+ mes "I will lets you pass";
+ close2;
+ warp "place",50,50;
+ end;
---------------------------------------
@@ -2770,10 +2737,10 @@ Does the same thing as getitemname(getequipid()). Useful for an NPC to
state what your are wearing, or maybe saving as a string variable.
See 'getequipid' for a full list of valid equipment slots.
- if( getequipname(EQI_HEAD_TOP) != "" )
- mes "So you are wearing a "+getequipname(EQI_HEAD_TOP)+" on your head";
+ if( getequipname(EQI_HEAD_TOP) != "" )
+ mes "So you are wearing a "+getequipname(EQI_HEAD_TOP)+" on your head";
else
- mes "You are not wearing a head gear";
+ mes "You are not wearing a head gear";
---------------------------------------
@@ -2794,11 +2761,10 @@ first one found, 2 will return the second one, etc. Will return 0 if no
such item is found.
// Let's see if they have anything broken:
- if (getbrokenid(1)==0) goto Skip;
- // They do, so let's print the name of the first broken item:
- mes "Oh, I see you have a broken "+getitemname(getbrokenid(1))+" here!";
- Skip:
+ if (getbrokenid(1)==0)
mes "You don't have anything broken, quit bothering me.";
+ else // They do, so let's print the name of the first broken item:
+ mes "Oh, I see you have a broken "+getitemname(getbrokenid(1))+" here!";
---------------------------------------
@@ -2808,14 +2774,14 @@ This functions will return 1 if there is an equipment placed on the
specified equipment slot and 0 otherwise. For a list of equipment slots
see 'getequipid'. Function originally used by the refining NPCs:
- if (getequipisequiped(EQI_HEAD_TOP)) goto L_equipped;
- mes "[Refiner]";
- mes "Do you want me to refine your dumb head?";
- close;
- L_equipped:
+ if (getequipisequiped(EQI_HEAD_TOP)) {
mes "[Refiner]";
mes "That's a fine hat you are wearing there...";
close;
+ }
+ mes "[Refiner]";
+ mes "Do you want me to refine your dumb head?";
+ close;
---------------------------------------
@@ -2825,14 +2791,14 @@ Will return 1 if the item equipped on the invoking character in the
specified equipment slot is refinable, and 0 if it isn't. For a list of
equipment slots see 'getequipid'.
- if (getequipisenableref(EQI_HEAD_TOP)) goto L_Refine;
- mes "[Refiner]";
- mes "I can't refine this hat!...";
- close;
- L_Refine:
+ if (getequipisenableref(EQI_HEAD_TOP)) {
mes "[Refiner]";
mes "Ok I can refine this";
close;
+ }
+ mes "[Refiner]";
+ mes "I can't refine this hat!...";
+ close;
---------------------------------------
@@ -2844,11 +2810,11 @@ equipment slot. For a list of equipment slots see 'getequipid'.
Can be used to check if you have reached a maximum refine value, default
for this is +10:
- if(getequiprefinerycnt(EQI_HEAD_TOP) < 10) goto L_Refine_HeadGear;
- mes "Sorry, it's not possible to refine hats better than +10";
- close;
- L_Refine_HeadGear:
+ if(getequiprefinerycnt(EQI_HEAD_TOP) < 10)
mes "I will now upgrade your "+getequipname(EQI_HEAD_TOP);
+ else
+ mes "Sorry, it's not possible to refine hats better than +10";
+ close;
---------------------------------------
@@ -2906,8 +2872,9 @@ the random change of a refine succeeding or failing and then going through
with it (which is what the official NPC refinery scripts use it for).
// This will find a random number from 0 - 99 and if that is equal to or
-// more than the value recovered by this command it will go to L_Fail
- if (getequippercentrefinery(EQI_HAND_L)<=rand(100)) goto L_Fail;
+// more than the value recovered by this command it will show a message
+ if (getequippercentrefinery(EQI_HAND_L) <= rand(100))
+ mes "Aww";
---------------------------------------
@@ -3019,8 +2986,8 @@ if there is no such item.
Example:
-//@slots now has the amount of slots of the item with ID 1205.
- set @slots, getItemSlots(1205);
+//.@slots now has the amount of slots of the item with ID 1205.
+ .@slots = getitemslots(1205);
---------------------------------------
@@ -3096,11 +3063,11 @@ What a mess. Example, a working and tested one now:
prontera,164,299,3%TAB%script%TAB%Nyah%TAB%730,{
mes "My name is Nyah.";
mes "I will now search for Meh all across the world!";
- if (getmapxy(@mapname$,@mapx,@mapy,1,"Meh")!=0) goto Notfound;
- mes "And I found him on map "+@mapname$+" at X:"+@mapx+" Y:"+@mapy+" !";
- close;
- Notfound:
- mes "I can't seem to find Meh anywhere!";
+ if (getmapxy(.@mapname$,.@mapx,.@mapy,1,"Meh")!=0) {
+ mes "I can't seem to find Meh anywhere!";
+ close;
+ }
+ mes "And I found him on map "+.@mapname$+" at X:"+.@mapx+" Y:"+.@mapy+" !";
close;
}
@@ -3119,7 +3086,7 @@ This allows you to make NPC's only accessible for certain GM levels, or
behave specially when talked to by GMs.
if (getgmlevel()) mes "What is your command, your godhood?";
- if (getgmlevel()) goto Wherever;
+ if (getgmlevel() < 99) end;
---------------------------------------
@@ -3241,11 +3208,11 @@ This function returns a guild's name given an ID number. If there is no
such guild, "null" will be returned;
// Would print whatever guild 10007 name is.
- mes "The guild "+GetGuildName(10007)+" are all nice people.";
+ mes "The guild "+getguildname(10007)+" are all nice people.";
// This will do the same as above:
- set @var,10007;
- mes "We have some friends in "+GetGuildName(@var)+", you know.";
+ .@var = 10007;
+ mes "We have some friends in "+getguildname(.@var)+", you know.";
This is used all over the WoE controlling scripts. You could also use it
for a guild-based event.
@@ -3265,18 +3232,17 @@ guild.
Maybe you want to make a room only guild masters can enter:
- set @GID,getcharid(2);
- if(@GID==0) goto L_NoGuild;
- if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster;
- mes "Sorry you don't own the guild you are in";
- close;
- L_NoGuild:
+ .@GID = getcharid(2);
+ if (.@GID == 0) {
mes "Sorry you are not in a guild";
close;
- L_GuildMaster:
- mes "Welcome guild master of "+GetGuildName(@GID);
+ }
+ if (strcharinfo(0) == getguildmaster(.@GID)) {
+ mes "Welcome guild master of "+GetGuildName(.@GID);
close;
-
+ }
+ mes "Sorry you don't own the guild you are in";
+ close;
---------------------------------------
@@ -3365,7 +3331,7 @@ Returns the amount of characters from the specified guild on the given map.
Example:
-mes "You have "+getMapGuildUsers("prontera",getcharid(2))+" guild members in Prontera.";
+mes "You have "+getmapguildusers("prontera",getcharid(2))+" guild members in Prontera.";
---------------------------------------
//=====================================
@@ -3386,25 +3352,26 @@ enough.
Example 1:
- if (getskilllv(152)) goto L_HasSkillThrowStone;
- mes "You don't have Throw Stone";
- close;
- L_HasSkillThrowStone:
+ if (getskilllv(TF_THROWSTONE)) {
+ // TF_THROWSTONE is defined in skill_db.txt and its value is 152
mes "You have got the skill Throw Stone";
close;
+ }
+ mes "You don't have Throw Stone";
+ close;
Example 2:
- if (getskilllv(28) >= 5) goto L_HasSkillHeallvl5orMore;
- if (getskilllv(28) == 10) goto L_HasSkillHealMaxed;
- mes "You heal skill is below lvl 5";
+ if (getskilllv(AL_HEAL) == 10) {
+ mes "Your heal lvl has been maxed";
close;
- L_HasSkillHeallvl6orMore:
+ }
+ if (getskilllv(AL_HEAL) >= 5) {
mes "Your heal lvl is 5 or more";
close;
- L_HasSkillHealMaxed:
- mes "Your heal lvl has been maxed";
- close;
+ }
+ mes "You heal skill is below lvl 5";
+ close;
---------------------------------------
@@ -3455,7 +3422,7 @@ PET_HUNGRY
PET_INTIMATE
Example:
- set @i, petstat(PET_CLASS);
+ .@i = petstat(PET_CLASS);
---------------------------------------
@@ -3565,12 +3532,12 @@ Example:
// variables, since we don't know when 'getmobdrops' will get
// called again for another mob, overwriting your global temporary
// variables.
- set .@count, $@MobDrop_count;
+ .@count = $@MobDrop_count;
copyarray .@item[0],$@MobDrop_item[0],.@count;
copyarray .@rate[0],$@MobDrop_rate[0],.@count;
mes getmonsterinfo(.@mob_id,MOB_NAME) + " - " + .@count + " drops found:";
- for( set .@i,0; .@i < .@count; set .@i,.@i +1 ) {
+ for (.@i = 0; .@i < .@count; ++.@i) {
mes .@item[.@i] + " (" + getitemname(.@item[.@i]) + ") " + .@rate[.@i]/100 + ((.@rate[.@i]%100 < 10) ? ".0":".") + .@rate[.@i]%100 + "%";
}
} else {
@@ -3590,13 +3557,13 @@ of skill points not used).
Example:
-//This will set the temp character variable @skillPoints to the amount of
+//This will set the temp character variable @skill_points to the amount of
//skill points, and then tell the player the value.
- set @skillPoints, skillPointCount();
- mes "You have "+@skillPoints+" skill points in total!";
+ @skill_points = skillpointcount();
+ mes "You have "+@skill_points+" skill points in total!";
//Self-explanatory... :P
- if (skillPointCount() > 20)
+ if (skillpointcount() > 20)
mes "Wow, you have more then 20 Skill Points in total!";
This command does not count skills which are set as flag 3 (permamently
@@ -3610,7 +3577,9 @@ invoking character, in percent, modified by the their current defense
against said status. The 'base rate' is the base chance of the status
effect being inflicted, in percent.
- if (rand(100) > getscrate(Eff_Blind, 50)) goto BlindHimNow;
+ if (rand(100) > getscrate(Eff_Blind, 50)) {
+ // do something
+ }
You can see the full list of available effect types you can possibly
inflict in 'db/const.txt' under 'Eff_'.
@@ -3705,25 +3674,25 @@ set and 0 if the option is not set.
Option numbers valid for the first (option) version of this command are:
-0x1 - Sight in effect.
-0x2 - Hide in effect.
-0x4 - Cloaking in effect.
-0x8 - Cart number 1 present.
-0x10 - Falcon present.
-0x20 - Peco Peco present.
-0x40 - GM Perfect Hide in effect.
-0x80 - Cart number 2 present.
-0x100 - Cart number 3 present.
-0x200 - Cart number 4 present.
-0x400 - Cart number 5 present.
-0x800 - Orc head present.
-0x1000 - The character is wearing a wedding sprite.
-0x2000 - Ruwach is in effect.
-0x4000 - Chasewalk in effect.
-0x8000 - Flying or Xmas suit.
-0x10000 - Sighttrasher.
-0x100000 - Warg present.
-0x200000 - The character is riding a warg.
+0x000001 - Sight in effect.
+0x000002 - Hide in effect.
+0x000004 - Cloaking in effect.
+0x000008 - Cart number 1 present.
+0x000010 - Falcon present.
+0x000020 - Peco Peco present.
+0x000040 - GM Perfect Hide in effect.
+0x000080 - Cart number 2 present.
+0x000100 - Cart number 3 present.
+0x000200 - Cart number 4 present.
+0x000400 - Cart number 5 present.
+0x000800 - Orc head present.
+0x001000 - The character is wearing a wedding sprite.
+0x002000 - Ruwach is in effect.
+0x004000 - Chasewalk in effect.
+0x008000 - Flying or Xmas suit.
+0x010000 - Sighttrasher.
+0x100000 - Warg present.
+0x200000 - The character is riding a warg.
Option numbers valid for the second version (opt1) of this command are:
@@ -3735,10 +3704,10 @@ Option numbers valid for the second version (opt1) of this command are:
Option numbers valid for the third version (opt2) of this command are:
-0x1 - Poisoned.
-0x2 - Cursed.
-0x4 - Silenced.
-0x8 - Signum Crucis (plays a howl-like sound effect, but otherwise no
+0x01 - Poisoned.
+0x02 - Cursed.
+0x04 - Silenced.
+0x08 - Signum Crucis (plays a howl-like sound effect, but otherwise no
visible effects are displayed)
0x10 - Blinded.
0x80 - Deadly poisoned.
@@ -4113,12 +4082,12 @@ map.
Example:
-mes "[Party Warper]";
-mes "Here you go!";
-close2;
-set @id,getcharid(1);
-warpparty "prontera",150,100,@id;
-close;
+ mes "[Party Warper]";
+ mes "Here you go!";
+ close2;
+ .@id = getcharid(1);
+ warpparty "prontera",150,100,.@id;
+ close;
---------------------------------------
@@ -4289,12 +4258,12 @@ constants which make it easy to convert among classes. The command will
return -1 if you pass it a job number which doesn't have an eA job-number
equivalent.
- set @eac, eaclass();
- if ((@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
+ .@eac = eaclass();
+ if ((.@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
mes "Your base job is Swordman.";
- if (@eac&EAJL_UPPER)
+ if (.@eac&EAJL_UPPER)
mes "You are a rebirth job.";
- if ((@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
+ if ((.@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
mes "You must be a Swordman, Baby Swordman or High Swordman.";
For more information on the eA Job System, see the docs/ea_job_system.txt
@@ -4311,16 +4280,16 @@ male will be used by default). The command will return -1 if there is no
valid class to represent the specified job (for example, if you try to get
the baby version of a Taekwon class).
- set @eac, eaclass();
+ .@eac = eaclass();
//Check if class is already rebirth
- if (@eac&EAJL_UPPER) {
+ if (.@eac&EAJL_UPPER) {
mes "You look strong.";
close;
}
- set @eac, roclass(@eac|EAJL_UPPER);
+ .@eac = roclass(.@eac|EAJL_UPPER);
//Check if class has a rebirth version
- if (@eac != -1) {
- mes "Bet you can't wait to become a "+jobname(@eac)+"!";
+ if (.@eac != -1) {
+ mes "Bet you can't wait to become a "+jobname(.@eac)+"!";
close;
}
@@ -4333,7 +4302,21 @@ of a specified job class. Nothing but appearance will change.
Examples:
-2338,Wedding_Dress,Wedding Dress,5,43000,,500,,0,,0,119529470,7,0,16,,0,1,0,{ bonus bMdef,15; changebase 22; }
+ /* This example is an item script in the item db */
+ {
+ Id: 2338
+ AegisName: "Wedding_Dress"
+ Name: "Wedding Dress"
+ Type: 5
+ Buy: 43000
+ Weight: 500
+ Job: 0xFFFFFFFE
+ Loc: 16
+ Script: <"
+ bonus bMdef,15;
+ changebase Job_Wedding;
+ ">
+ },
changebase Job_Novice; // Changes player to Novice sprite.
@@ -4386,16 +4369,15 @@ won't work.
getexp 10000,5000;
-You can also use the "set" command with the constants defined in
-'db/const.txt':
+You can also assign directly to the constants defined in 'db/const.txt':
// These 2 combined has the same effect as the above command
- set BaseExp,BaseExp+10000;
- set JobExp,JobExp+5000;
+ BaseExp += 10000;
+ JobExp += 5000;
You can also reduce the amount of experience points:
- set BaseExp,BaseExp-10000;
+ BaseExp -= 10000;
Note that 'getexp' is now subject to the 'quest_exp_rate' config option,
which adjusts the gained value. If you want to bypass this, use the 'set'
@@ -4416,26 +4398,26 @@ the look value).
// This will change your hair(6), so that it uses palette 8, what ever
// your palette 8 is, your hair will use that color.
- setlook 6,8;
+ setlook VAR_HEADPALETTE, 8;
// This will change your clothes(7), so they are using palette 1,
// whatever your palette 1 is, your clothes will then use that set of
// colors.
- setlook 7,1;
+ setlook VAR_BODYPALETTE,1;
Here are the possible look types:
- 0 - Base sprite
- 1 - Hairstyle
- 2 - Weapon
- 3 - Head bottom
- 4 - Head top
- 5 - Head mid
- 6 - Hair color
- 7 - Clothes color
- 8 - Shield
- 9 - Shoes
+0 - Base sprite
+1 - VAR_HEAD - Hairstyle
+2 - VAR_WEAPON - Weapon
+3 - VAR_HEAD_TOP - Head top
+4 - VAR_HEAD_MID - Head mid
+5 - VAR_HEAD_BOTTOM - Head bottom
+6 - VAR_HEADPALETTE - Hair color
+7 - VAR_BODYPALETTE - Clothes color
+8 - VAR_SHIELD - Shield
+9 - VAR_SHOES - Shoes
Whatever 'shoes' means is anyone's guess, ask Gravity - the client does
nothing with this value. It still wants it from the server though, so it
@@ -4574,28 +4556,28 @@ like this. Careful, minor magic ahead.
// item. Only an existing character's name may be there.
// Let's assume our character is 'Adam' and find his ID.
- set @charid,getcharid(0,"Adam");
+ .@charid = getcharid(0,"Adam");
// Now we split the character ID number into two portions with a
// binary shift operation. If you don't understand what this does,
// just copy it.
- set @card3, @charid & 65535;
- set @card4, @charid >> 16;
+ .@card3 = .@charid & 65535;
+ .@card4 = .@charid >> 16;
- // If you're inscribing non-equipment, @card1 must be 254.
+ // If you're inscribing non-equipment, .@card1 must be 254.
// Arrows are also not equipment. :)
- set @card1,254;
+ .@card1 = 254;
// For named equipment, card2 means the Star Crumbs and elemental
// crystals used to make this equipment. For everything else, it's 0.
- set @card2,0;
+ .@card2 = 0;
// Now, let's give the character who invoked the script some
// Adam's Apples:
- getitem2 512,1,1,0,0,@card1,@card2,@card3,@card4;
+ getitem2 512,1,1,0,0,.@card1,.@card2,.@card3,.@card4;
This wasn't tested with all possible items, so I can't give any promises,
experiment first before relying on it.
@@ -4606,22 +4588,22 @@ To create equipment, continue this example it like this:
// values so we'll just set up card1 and card2 with data
// for an Ice Stiletto.
- // If you're inscribing equipment, @card1 must be 255.
- set @card1,255;
+ // If you're inscribing equipment, .@card1 must be 255.
+ .@card1 = 255;
// That's the number of star crumbs in a weapon.
- set @sc,2;
+ .@sc = 2;
// That's the number of elemental property of the weapon.
- set @ele,1;
+ .@ele = 1;
// And that's the wacky formula that makes them into
// a single number.
- set @card2,@ele+((@sc*5)<<8);
+ .@card2 = .@ele+((.@sc*5)<<8);
// That will make us an Adam's +2 VVS Ice Stiletto:
- getitem2 1216,1,1,2,0,@card1,@card2,@card3,@card4;
+ getitem2 1216,1,1,2,0,.@card1,.@card2,.@card3,.@card4;
Experiment with the number of star crumbs - I'm not certain just how much
will work most and what it depends on. The valid element numbers are:
@@ -4674,7 +4656,7 @@ Example:
mes "You currently have "+countbound()+" bounded items.";
next;
mes "The list of bounded items include:";
- for(set .@i,0; .@i<getarraysize(@bound_items); set .@i,.@i+1)
+ for (.@i = 0; .@i < getarraysize(@bound_items); ++.@i)
mes getitemname(@bound_items[.@i]);
close;
@@ -4755,12 +4737,12 @@ matches the given one. It returns the number of items found. For
performance reasons, the results array is limited to 10 items.
mes "What item are you looking for?";
- input @name$;
- set @qty, searchitem(@matches[0],@name$);
- mes "I found "+@qty+" items:";
- for (set @i, 0; @i < @qty; set @i, @i+1)
+ input .@name$;
+ .@qty = searchitem(.@matches[0],.@name$);
+ mes "I found "+.@qty+" items:";
+ for (.@i = 0; .@i < .@qty; ++.@i)
//Display name (eg: "Apple[0]")
- mes getitemname(@matches[@i])+"["+getitemslots(@matches[@i])+"]";
+ mes getitemname(.@matches[.@i])+"["+getitemslots(.@matches[.@i])+"]";
---------------------------------------
@@ -4857,7 +4839,16 @@ will try to use the item id from the item it is being used from (if called from
It runs a item package and grants the items accordingly to the attached player.
Example:
- 12281,Tresure_Box_WoE,Event Treasure Box,2,20,,150,,,,,0xFFFFFFFF,7,2,,,,,,{ packageitem(); },{},{}
+
+/* This example is an item script from the item db */
+ {
+ Id: 12477
+ AegisName: "Gift_Bundle"
+ Name: "Gift Bundle"
+ Type: 2
+ Buy: 0
+ Script: <" packageitem(); ">
+ },
---------------------------------------
@@ -5037,11 +5028,6 @@ of the invoking character. The item will be destroyed. This will also
display a 'refine failure' effect on the character and put appropriate
messages into their chat window.
-The official scripts seems to use the 'failedrefitem' command as a
-function instead: 'failedrefitem(<number>)' but it returns nothing on the
-stack. This is since jAthena, so probably nobody knows for sure why is it
-so.
-
---------------------------------------
*downrefitem <equipment slot>{,<downgrade_count>};
@@ -5336,7 +5322,7 @@ 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_DefEle,60000,Ele_Fire,20,Ele_Water,-15;
+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
@@ -5346,9 +5332,9 @@ 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.
Note: to use SC_NOCHAT you should alter Manner
- set Manner, -5; // Will mute a user for 5 minutes
- set Manner, 0; // Will unmute a user
- set Manner, 5; // Will unmute a user and prevent the next use of 'Manner'
+ Manner = -5; // Will mute a user for 5 minutes
+ Manner = 0; // Will unmute a user
+ Manner = 5; // Will unmute a user and prevent the next use of 'Manner'
---------------------------------------
@@ -5654,10 +5640,10 @@ Examples:
// This will make Aaron follow Bullah, when both of these characters are
// online.
- PCFollow getCharID(3,"Aaron"),getCharID(3,"Bullah");
+ pcfollow getcharid(3,"Aaron"),getcharid(3,"Bullah");
// Makes Aaron stop following whoever he is following.
- PCStopFollow getCharID(3,"Aaron");
+ pcstopfollow getcharid(3,"Aaron");
---------------------------------------
@@ -5734,7 +5720,7 @@ controlling each of the spawned mobs with the unit* commands shown below.
For example:
// We'll make a poring which will automatically attack invoking player:
- set .@mobGID, monster "Prontera",150,150,"Poring",1002,1;
+ .@mobGID = monster "Prontera",150,150,"Poring",PORING,1; // PORING is defined in the mob db and its value is 1002
unitattack .@mobGID, getcharid(3); // Attacker GID, attacked GID
The way you can get the GID of more than only one monster is looping
@@ -5742,8 +5728,8 @@ through all the summons to get their individual GIDs and do whatever you
want with them. For example:
// We want to summon .mobnumber porings which will give us a kiss
- for (set .@i, 0; .@i < .mobnumber; set .@i, .@i + 1){
- set .@mobGID, monster "map",.x,.y,"Kisser Poring",1002,1;
+ for (.@i = 0; .@i < .mobnumber; ++.@i) {
+ .@mobGID = monster "map",.x,.y,"Kisser Poring",PORING,1;
unitemote .@mobGID, e_kis;
}
@@ -5756,27 +5742,26 @@ by x1/y1-x2/y2.
Simple monster killing script:
<NPC object definition. Let's assume you called him NPCNAME.>
- mes "[Summon Man]";
- mes "Want to start the kill?";
- next;
- menu "Yes",L_Yes,"No",-;
mes "[Summon Man]";
- mes "Come back later";
- close;
- L_Yes:
- monster "prontera",0,0,"Quest Poring",1002,10,"NPCNAME::OnPoringKilled";
+ mes "Want to start the kill?";
+ next;
+ if (select("Yes:No") != 1) {
+ mes "[Summon Man]";
+ mes "Come back later";
+ close;
+ }
+ monster "prontera",0,0,"Quest Poring",PORING,10,"NPCNAME::OnPoringKilled";
// By using 0,0 it will spawn them in a random place.
mes "[Summon Man]";
mes "Now go and kill all the Poring I summoned";
// He summoned ten.
close;
OnPoringKilled:
- set $PoringKilled,$PoringKilled+1;
- if ($PoringKilled==10) goto L_AllDead;
- end;
- L_AllDead:
- announce "Summon Man: Well done all the poring are dead",3;
- set $PoringKilled,0;
+ ++$poring_killed;
+ if ($poring_killed == 10) {
+ announce "Summon Man: Well done all the poring are dead",bc_self;
+ $poring_killed = 0;
+ }
end;
For more examples see just about any official 2-1 or 2-2 job quest script.
@@ -6108,20 +6093,20 @@ talking.
place,100,100,1%TAB%script%TAB%NPC%TAB%53,{
mes "Hey NPC2 copy what I do";
close2;
- set .@emote, rand(1,30);
+ @emote = rand(1,30);
donpcevent "NPC2::OnEmote";
OnEmote:
- emotion .@emote;
+ emotion @emote;
end;
}
place,102,100,1%TAB%script%TAB%NPC2%TAB%53,{
mes "Hey NPC copy what I do";
close2;
- set .@emote, rand(1,30);
+ @emote = rand(1,30);
donpcevent "NPC::OnEmote";
OnEmote:
- emotion .@emote;
+ emotion @emote;
end;
}
@@ -6748,11 +6733,11 @@ used in Lupus' variable rates script.
Examples:
// Will set the base experience rate to 20x (2000%)
- setBattleFlag "base_exp_rate",2000;
+ setbattleflag "base_exp_rate",2000;
// Will return the value of the base experience rate (when used after the
// above example, it would print 2000).
- mes getBattleFlag("base_exp_rate");
+ mes getbattleflag("base_exp_rate");
---------------------------------------
@@ -6859,7 +6844,7 @@ which returns a guild id:
// This will change the emblem on the flag to that of the guild that owns
// "guildcastle"
- flagemblem GetCastleData("guildcastle",1);
+ flagemblem getcastledata("guildcastle",1);
---------------------------------------
@@ -6926,9 +6911,9 @@ by defining a job-sprite based sprite id in 'db/mob_avail.txt' with this.
*movenpc "<NPC name>",<x>,<y>{,<dir>};
-This command looks like the NPCWalkToxy function,but is a little different.
+This command looks like the npcwalktoxy function,but is a little different.
-While NPCWalkToXY just makes the NPC 'walk' to the coordinates given
+While npcwalktoxy just makes the NPC 'walk' to the coordinates given
(which sometimes gives problems if the path isn't a straight line without
objects), this command just moves the NPC. It basically warps out and in
on the current and given spot. Direction can be used to change the NPC's
@@ -6938,7 +6923,7 @@ Example:
// This will move Bugga from to the coordinates 100,20 (if those
// coordinates are legit).
- moveNPC "Bugga",100,20;
+ movenpc "Bugga",100,20;
---------------------------------------
//=====================================
@@ -7140,7 +7125,7 @@ You can add your own effects this way, naturally.
*playbgmall "<BGM filename>"{,"<map name>"{,<x0>,<y0>,<x1>,<y1>}};
These two commands will play a Background Music to either the invoking
-character only ('playBGM') or multiple characters ('playBGMall').
+character only ('playbgm') or multiple characters ('playbgmall').
BGM filename is the filename in /BGM/ folder. It has to be in .mp3
extension, but it's not required to specify the extension in the script.
@@ -7169,8 +7154,8 @@ that character belonged to an account which had GM level 99.
// This will ask the invoker for a character name and then use the
// '@nuke' GM command on them, killing them mercilessly.
- input @player$;
- atcommand "@nuke "+@player$;
+ input .@player$;
+ atcommand "@nuke "+.@player$;
This command has a lot of good uses, I am sure you can have some fun with
this one.
@@ -7249,7 +7234,7 @@ This is the replacement of the older commands, these use the same values
for GID as the other unit* commands (See 'GID').
Skill ID is the ID of the skill, skill level is the level of the skill.
-For the position, the x and y are given in the unitSkillUsePos.
+For the position, the x and y are given in the unitskillusepos.
---------------------------------------
@@ -7384,7 +7369,7 @@ instead if they want it so much.
Returns the result of the calculation.
Example:
-set @i, pow(2,3); // @i will be 8
+ .@i = pow(2,3); // .@i will be 8
---------------------------------------
@@ -7393,7 +7378,7 @@ set @i, pow(2,3); // @i will be 8
Returns square-root of number.
Example:
-set @i, sqrt(25); // @i will be 5
+ .@i = sqrt(25); // .@i will be 5
---------------------------------------
@@ -7402,7 +7387,7 @@ set @i, sqrt(25); // @i will be 5
Returns distance between 2 points.
Example:
-set @i, distance(100,200,101,202);
+ .@i = distance(100,200,101,202);
---------------------------------------
@@ -7427,13 +7412,13 @@ Note that 'query_sql' runs on the main database while 'query_logsql' runs
on the log database.
Example:
-set @nb, query_sql("select name,fame from `char` ORDER BY fame DESC LIMIT 5", @name$, @fame);
-mes "Hall Of Fame: TOP5";
-mes "1."+@name$[0]+"("+@fame[0]+")"; // Will return a person with the biggest fame value.
-mes "2."+@name$[1]+"("+@fame[1]+")";
-mes "3."+@name$[2]+"("+@fame[2]+")";
-mes "4."+@name$[3]+"("+@fame[3]+")";
-mes "5."+@name$[4]+"("+@fame[4]+")";
+ .@nb = query_sql("select name,fame from `char` ORDER BY fame DESC LIMIT 5", .@name$, .@fame);
+ mes "Hall Of Fame: TOP5";
+ mes "1."+.@name$[0]+"("+.@fame[0]+")"; // Will return a person with the biggest fame value.
+ mes "2."+.@name$[1]+"("+.@fame[1]+")";
+ mes "3."+.@name$[2]+"("+.@fame[2]+")";
+ mes "4."+.@name$[3]+"("+.@fame[3]+")";
+ mes "5."+.@name$[4]+"("+.@fame[4]+")";
---------------------------------------
@@ -7443,8 +7428,8 @@ Converts the value to a string and escapes special characters so that it's
safe to use in query_sql(). Returns the escaped form of the given value.
Example:
- set .@str$, "John's Laptop";
- set .@esc_str$, escape_sql(.@name$); // Escaped string: John\'s Laptop
+ .@str$ = "John's Laptop";
+ .@esc_str$ = escape_sql(.@name$); // Escaped string: John\'s Laptop
---------------------------------------
@@ -7464,7 +7449,7 @@ Valid types are:
Example:
-setiteminfo 7049,6,9990; // Stone now weighs 999.0
+setiteminfo Stone, 6, 9990; // Stone now weighs 999.0
---------------------------------------
@@ -7481,8 +7466,8 @@ Type can optionally be used indicates which script to set (default is 0):
Example:
-setitemscript 2637,"{ if(isequipped(2236)==0)end; if(getskilllv(26)){skill 40,1;}else{skill 26,1+isequipped(2636);} }";
-setitemscript 2637,"";
+setitemscript Silver_Ring_, "{ if(isequipped(2236)==0)end; if(getskilllv(26)){skill 40,1;}else{skill 26,1+isequipped(2636);} }";
+setitemscript Silver_Ring_, "";
---------------------------------------
@@ -8000,23 +7985,19 @@ ID this command returns.
Example:
// Store the Party ID of the invoking character.
- set .@party_id, getcharid(1);
+ .@party_id = getcharid(1);
// Attempt to create an instance using that party ID.
- set .@id, instance_create("Endless Tower", .@party_id);
+ .@id = instance_create("Endless Tower", .@party_id);
if (.@id == -1) { // Invalid type - not used anymore
...
- }
- else if (.@id == -2) { // Invalid Party ID
+ } else if (.@id == -2) { // Invalid Party ID
...
- }
- else if (.@id == -3) { // No free instances (MAX_INSTANCE exceeded)
+ } else if (.@id == -3) { // No free instances (MAX_INSTANCE exceeded)
...
- }
- else if (.@id == -4) { // Already exists
+ } else if (.@id == -4) { // Already exists
...
- }
- else (.@id < 0) { // Unspecified error while queuing instance.
+ } else (.@id < 0) { // Unspecified error while queuing instance.
...
}
@@ -8354,7 +8335,7 @@ is used.
Example:
// Battle Group will be referred to as $@KvM01BG_id1, and when they
// die, respawn at bat_c01,52,129.
- 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;
----------------------------------------
@@ -8366,7 +8347,7 @@ map. The <Battle Group ID> can be retrieved using getcharid(4).
Example:
bg_team_setxy getcharid(4),56,212;
- mapannounce "bat_a01", "Group [1] has taken the work shop, and will now respawn there.",bc_map,"0xFFCE00";
+ mapannounce "bat_a01", "Group [1] has taken the work shop, and will now respawn there.",bc_map,0xFFCE00;
end;
----------------------------------------
@@ -8394,12 +8375,12 @@ Battle group is considered friendly.
Example:
// It can be used in two different ways.
- bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Depot",1910,"Feed Depot#1::OnMyMobDead";
+ bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Depot",OBJ_B,"Feed Depot#1::OnMyMobDead";
end;
// Alternatively, you can set an ID for the monster using "set".
// This becomes useful when used with the command below.
- set $@Guardian_3, bg_monster($@TierraBG1_id2,"bat_a01",268,204,"Guardian",1949,"NPCNAME::OnMyMobDead");
+ $@Guardian_3 = bg_monster($@TierraBG1_id2,"bat_a01",268,204,"Guardian",B_S_GUARDIAN,"NPCNAME::OnMyMobDead");
end;
----------------------------------------
@@ -8414,14 +8395,14 @@ Example:
end;
OnEnable:
- mapannounce "A guardian has been summoned for Battle Group 2!",bc_map,"0xFFCE00";
- set $@Guardian, bg_monster($@BG_2,"bat_a01",268,204,"Guardian",1949,"NPCNAME::OnMyMobDead");
+ mapannounce "A guardian has been summoned for Battle Group 2!",bc_map,0xFFCE00;
+ set $@Guardian, bg_monster($@BG_2,"bat_a01",268,204,"Guardian",B_S_GUARDIAN,"NPCNAME::OnMyMobDead");
initnpctimer;
end;
OnTimer1000:
stopnpctimer;
- mapannounce "Erm, sorry about that! This monster was meant for Battle Group 1.",bc_map,"0xFFCE00";
+ mapannounce "Erm, sorry about that! This monster was meant for Battle Group 1.",bc_map,0xFFCE00;
bg_monster_set_team $@Guardian, $@BG_1;
end;
@@ -8632,7 +8613,7 @@ obtains the next member in the iterator's queue, returns the next member's
id or 0 when it doesnt exist.
Example:
- for( set .@elem,qiget(.@queue_iterator_id); qicheck(.@queue_iterator_id); set .@elem,qiget(.@queue_iterator_id) ) {
+ for (.@elem = qiget(.@queue_iterator_id); qicheck(.@queue_iterator_id); .@elem = qiget(.@queue_iterator_id)) {
//Do something
}
diff --git a/npc/MOTD.txt b/npc/MOTD.txt
index 5e00f85b7..ceb3f4cda 100644
--- a/npc/MOTD.txt
+++ b/npc/MOTD.txt
@@ -1,15 +1,15 @@
-//====================================================
-//= _ _ _
-//= | | | | | |
-//= | |_| | ___ _ __ ___ _ _| | ___ ___
-//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
-//= | | | | __/ | | (__| |_| | | __/\__ \
-//= \_| |_/\___|_| \___|\__,_|_|\___||___/
-//=
-//= http://hercules.ws/board/
+//======= Hercules Script ===========================
+//= _ _ _ =
+//= | | | | | | =
+//= | |_| | ___ _ __ ___ _ _| | ___ ___ =
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| =
+//= | | | | __/ | | (__| |_| | | __/\__ \ =
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/ =
+//= =
+//= http://hercules.ws/board/ =
//====================================================
// run when any character logs in, attached to them.
- script HerculesMOTD -1,{
-message strcharinfo(0),"Welcome to Hercules! Enjoy! Please report any bugs you find.";
-end;
+ message strcharinfo(0),"Welcome to Hercules! Enjoy! Please report any bugs you find.";
+ end;
}
diff --git a/npc/airports/airships.txt b/npc/airports/airships.txt
index a4048cd5f..389e3c1ac 100644
--- a/npc/airports/airships.txt
+++ b/npc/airports/airships.txt
@@ -654,7 +654,7 @@ airplane_01,243,73,0 script #AirshipWarp-3 WARPNPC,1,1,{
OnTouch:
switch ($@airplanelocation2) {
case 0: warp "ra_fild12",292,204; end;
- case 1:
+ case 1:
if(checkre(0))
warp "izlude",200,73;
else
diff --git a/npc/airports/rachel.txt b/npc/airports/rachel.txt
index 65ea35425..42a2a7e95 100644
--- a/npc/airports/rachel.txt
+++ b/npc/airports/rachel.txt
@@ -31,4 +31,4 @@ OnTouch:
}
mes "Thank you, please come again.";
close;
-} \ No newline at end of file
+}
diff --git a/npc/battleground/kvm/kvm01.txt b/npc/battleground/kvm/kvm01.txt
index f70b3b3fa..b4888be88 100644
--- a/npc/battleground/kvm/kvm01.txt
+++ b/npc/battleground/kvm/kvm01.txt
@@ -52,11 +52,11 @@ bat_room,169,211,0 warp #kvm802 2,2,bat_room,154,150
- script KVM01::CellEffect -1,{
end;
-OnKvM01One:
+OnKvM01One:
specialeffect EF_CHANGECOLD;
end;
-OnKvM01Two:
+OnKvM01Two:
specialeffect EF_CHANGEPOISON;
end;
}
@@ -380,9 +380,7 @@ bat_c01,51,130,5 script KVM Officer#KVM01A 4_M_KY_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
- }
- else
- { //
+ } else {
set kvm_point,kvm_point + 1;
mes "[KVM Officer]";
mes "I am so sorry.";
@@ -409,9 +407,7 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 4_M_CRU_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
- }
- else
- { //
+ } else {
set kvm_point,kvm_point + 1;
mes "[KVM Officer]";
mes "I am so sorry.";
diff --git a/npc/battleground/kvm/kvm02.txt b/npc/battleground/kvm/kvm02.txt
index d2a5c38c2..06f3a2dcf 100644
--- a/npc/battleground/kvm/kvm02.txt
+++ b/npc/battleground/kvm/kvm02.txt
@@ -54,11 +54,11 @@ bat_room,197,211,0 warp #kvm602 2,2,bat_room,154,150
- script KVM02::CellEffect2 -1,{
end;
-OnKvM02One:
+OnKvM02One:
specialeffect EF_CHANGECOLD;
end;
-OnKvM02Two:
+OnKvM02Two:
specialeffect EF_CHANGEPOISON;
end;
}
@@ -382,9 +382,7 @@ bat_c02,51,130,5 script KVM Officer#KVM02A 4_M_KY_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 1";
close2;
- }
- else
- { //
+ } else {
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
@@ -410,9 +408,7 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 4_M_CRU_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 1";
close2;
- }
- else
- { //
+ } else {
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
diff --git a/npc/battleground/kvm/kvm03.txt b/npc/battleground/kvm/kvm03.txt
index c821a7db3..ea7dc3d47 100644
--- a/npc/battleground/kvm/kvm03.txt
+++ b/npc/battleground/kvm/kvm03.txt
@@ -53,11 +53,11 @@ bat_room,225,211,0 warp #kvm702 2,2,bat_room,154,150
- script KVM03::CellEffect3 -1,{
end;
-OnKvM03One:
+OnKvM03One:
specialeffect EF_CHANGECOLD;
end;
-OnKvM03Two:
+OnKvM03Two:
specialeffect EF_CHANGEPOISON;
end;
}
@@ -381,9 +381,7 @@ bat_c03,51,130,5 script KVM Officer#KVM03A 4_M_KY_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
- }
- else
- { //
+ } else {
set kvm_point,kvm_point + 1;
mes "[KVM Officer]";
mes "I am so sorry.";
@@ -410,9 +408,7 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 4_M_CRU_HEAD,{
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
- }
- else
- { //
+ } else {
set kvm_point,kvm_point + 1;
mes "[KVM Officer]";
mes "I am so sorry.";
diff --git a/npc/battleground/kvm/kvm_item_pay.txt b/npc/battleground/kvm/kvm_item_pay.txt
index 92d3032e5..fa14455d6 100644
--- a/npc/battleground/kvm/kvm_item_pay.txt
+++ b/npc/battleground/kvm/kvm_item_pay.txt
@@ -7,7 +7,7 @@
//===== Description: =========================================
//= [Official Conversion]
//= Kreiger Von Midgard Battleground Point redemption NPC
-//= * NOTE *
+//= * NOTE *
//= KvM Does NOT use items, but a character variable to
//= keep track of points. This NPC when talked to will
//= convert already-given tokens and convert them to points.
@@ -77,7 +77,7 @@ bat_room,151,144,3 script KVM Logistic Officer#a 4_M_JOB_KNIGHT2,{
mes "Please select a sub-category.";
next;
switch(select("Dagger:One-handed Sword:Two-handed Sword:One-handed Spear:Two-handed Spear")) {
- case 1: callsub PurchaseItem,13042,0,1; //Krieger_Dagger1
+ case 1: callsub PurchaseItem,13042,0,1; //Krieger_Dagger1
case 2:
mes "[Logistics]";
mes "You have selected the 'One-handed Sword' category.";
diff --git a/npc/battleground/tierra/tierra01.txt b/npc/battleground/tierra/tierra01.txt
index 5daa6429f..10e2bfc85 100644
--- a/npc/battleground/tierra/tierra01.txt
+++ b/npc/battleground/tierra/tierra01.txt
@@ -613,7 +613,7 @@ OnTouch:
bat_a01,194,265,0 script barri_warp_down#bat_a01a -1,7,0,{
OnTouch:
- if (getcharid(4) == $@TierraBG1_id1)
+ if (getcharid(4) == $@TierraBG1_id1)
warp "bat_a01",194,270;
end;
}
diff --git a/npc/battleground/tierra/tierra02.txt b/npc/battleground/tierra/tierra02.txt
index 05c6eaa0d..0e7cc773d 100644
--- a/npc/battleground/tierra/tierra02.txt
+++ b/npc/battleground/tierra/tierra02.txt
@@ -612,7 +612,7 @@ OnTouch:
bat_a02,194,265,0 script barri_warp_down#bat_a02a -1,7,0,{
OnTouch:
- if (getcharid(4) == $@TierraBG2_id1)
+ if (getcharid(4) == $@TierraBG2_id1)
warp "bat_a02",194,270;
end;
}
diff --git a/npc/cities/aldebaran.txt b/npc/cities/aldebaran.txt
index 1bc78f0fd..33acb60c2 100644
--- a/npc/cities/aldebaran.txt
+++ b/npc/cities/aldebaran.txt
@@ -11,7 +11,7 @@
//= 1.1 Added RS125 NPC. Added another Kafra Reserve points agent.
//= The 2nd reserve points agent is not complete yet.
//= 1.2 Lottery input number fix [Lupus], 1.2a - label typo fixed
-//= 1.3 Gatekeeper's bug fixed (wrong check and wrong item ID
+//= 1.3 Gatekeeper's bug fixed (wrong check and wrong item ID
//= for underground), fixed some typos [Lupus]
//= 1.4 Fixed Typos & Spellcheck [massdriller]
//= 1.5 Finally added the Special Reserve 2 Lotto 8))
@@ -1250,7 +1250,7 @@ aldeba_in,88,161,3 script Kafra#05 4_F_KAFRA3,{
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;
+ 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;
@@ -1379,12 +1379,12 @@ sF_Spin:
//============================================================
c_tower3,10,249,4 script Gatekeeper#ct 4_M_02,{
//Key_Of_Clock_Tower
- callfunc "F_ClockTowerGate","4th",7026,"c_tower4",185,44;
+ callfunc "F_ClockTowerGate","4th",7026,"c_tower4",185,44;
}
alde_dun03,264,16,4 script Gatekeeper#ct1 4W_F_01,{
//Underground_Key
- callfunc "F_ClockTowerGate","B4th",7027,"alde_dun04",79,267;
+ callfunc "F_ClockTowerGate","B4th",7027,"alde_dun04",79,267;
}
function script F_ClockTowerGate {
@@ -1463,7 +1463,7 @@ function script F_ClockTowerGate {
mes "Please,You may enter.";
mes "May God bless you ..";
close2;
- delitem getarg(1),1;
+ delitem getarg(1),1;
warp getarg(2),getarg(3),getarg(4);
end;
}
diff --git a/npc/cities/ayothaya.txt b/npc/cities/ayothaya.txt
index 86b1f3e94..a4e214582 100644
--- a/npc/cities/ayothaya.txt
+++ b/npc/cities/ayothaya.txt
@@ -301,8 +301,8 @@ ayothaya,241,264,5 script Young Man#5ayothaya2 4_M_THAIONGBAK,{
//============================================================
//= 0.1 Added a Sailor NPC to get back to Alberta [ZoDIaC]
//= 0.2 fixed coords, dialogues
-//= 0.3 Fixed Warp name, ayotaya doesn't exist, even though iRO
-//= decided to call it Ayotaya, it really is Ayothaya, like
+//= 0.3 Fixed Warp name, ayotaya doesn't exist, even though iRO
+//= decided to call it Ayotaya, it really is Ayothaya, like
//= that Yuno/Juno thing
//= 0.4 Added the official warp npc for Ayothaya. [MasterOfMuppets]
//= 1.0 Added most of the official npcs. The following quests were added: [MasterOfMuppets]
diff --git a/npc/cities/geffen.txt b/npc/cities/geffen.txt
index e19384997..16702126f 100644
--- a/npc/cities/geffen.txt
+++ b/npc/cities/geffen.txt
@@ -77,7 +77,7 @@ geffen_in,164,109,0 script Wizard Stanza 1_M_WIZARD,{
}
else if (Class == Job_Novice)
mes "Although you may not be able to use magic or any other kind of powerful skills for now, this knowledge may be helpful in the future, young Novice...";
- else
+ else
mes "Although you are not formally trained in the use of magic, you use skills which draw upon otherworldly energies, whether you know it or not...";
next;
mes "[Stanza]";
@@ -1351,7 +1351,7 @@ geffen_in,109,72,2 script Monster Scholar 4_F_01,{
mes "[Estheres]";
if (BaseLevel > 40)
mes "You look strong enough for that kind of challenge. But if you see anyone more reckless cross the Western bridge, you might want to give them a warning.";
- else
+ else
mes "Um, but if you're planning to go there, you better not go alone. I really recommend that you be well prepared if you're gonna fight those kinds of monsters.";
break;
case 2:
diff --git a/npc/cities/hugel.txt b/npc/cities/hugel.txt
index 3302d640c..aae031ebd 100644
--- a/npc/cities/hugel.txt
+++ b/npc/cities/hugel.txt
@@ -148,7 +148,7 @@ hu_in01,23,311,4 script Party Supplies Shop 4_M_HUMAN_01,{
next;
switch (select("Buy:Cancel")) {
case 1:
- if (Zeny < 500) {
+ if (Zeny < 500) {
mes "[Shopkeeper]";
mes "I am sorry, but you don't have";
mes "enough money~";
diff --git a/npc/cities/jawaii.txt b/npc/cities/jawaii.txt
index 1b3e5b12a..1069cf01c 100644
--- a/npc/cities/jawaii.txt
+++ b/npc/cities/jawaii.txt
@@ -414,7 +414,7 @@ jawaii,214,168,5 script Honeymoon Helper#Jawaii 1_F_LIBRARYGIRL,{
mes "[Helper]";
if (Zeny > 49999) {
Zeny -= 50000;
- getitem 681,1; //Memory_Of_Wedding
+ getitem 681,1; //Memory_Of_Wedding
mes "Thank you very much~!";
mes "Please remember, you";
mes "should use this with your";
diff --git a/npc/cities/lighthalzen.txt b/npc/cities/lighthalzen.txt
index e6824f048..6768da33c 100644
--- a/npc/cities/lighthalzen.txt
+++ b/npc/cities/lighthalzen.txt
@@ -2170,7 +2170,7 @@ lhz_in02,147,222,3 script Officer Guo#06::off_guo 4_M_03,{
lhz_in02,142,222,6 duplicate(off_guo) Suspect#6 4_M_LGTPOOR
-// New -----------------------------------------------------------------------
+// New -----------------------------------------------------------------------
lhz_in01,14,28,3 script Banquet Staff 4_M_MANAGER,{
mes "[Banquet Staff]";
@@ -3205,7 +3205,7 @@ lhz_in01,157,54,0,0 monster Red Mushroom 1085,1,120000,100000,0
//= 1.5 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf]
//= 1.6 Massive NPC clean up, includes corrected dialogs and [L0ne_W0lf]
//= added missing dialogs, fixed indentation, corrected some NPC
-//= facing positions, NPC names are more unique now. Removed
+//= facing positions, NPC names are more unique now. Removed
//= whitespace (empty lines after header and before end curly)
//= reduced usage of the command "goto", grammatical corrections.
//= Added additional missing NPCs.
diff --git a/npc/cities/louyang.txt b/npc/cities/louyang.txt
index 0b6bbb77c..b0aa53dbc 100644
--- a/npc/cities/louyang.txt
+++ b/npc/cities/louyang.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Louyang City NPCs
+//= Louyang City NPCs
//===== By: ==================================================
//= Vidar (1.0)
//= Mass Zero (1.1)
diff --git a/npc/cities/lutie.txt b/npc/cities/lutie.txt
index 49070d7d1..def5e03ab 100644
--- a/npc/cities/lutie.txt
+++ b/npc/cities/lutie.txt
@@ -10,7 +10,7 @@
//= 1.1 Edited some text and updated/enabled some triggers
//= for the quest.[kobra_k88]
//= 1.2 Fixed exploit. Checked for Bard Job Quest compatibility [Lupus]
-//= 1.3 Fixed typos [Nexon]
+//= 1.3 Fixed typos [Nexon]
//= 1.4 Fixed exploit [Lupus]
//= 1.5 Fixed a bug that could reset Lutie quest state [Lupus]
//= 1.6 Heavy optimization to all the NPCs [DZeroX]
diff --git a/npc/cities/niflheim.txt b/npc/cities/niflheim.txt
index 0ee31c1da..4e6ba1f97 100644
--- a/npc/cities/niflheim.txt
+++ b/npc/cities/niflheim.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Niflheim Script
+//= Niflheim Script
//===== By: ==================================================
//= Fyrien, Dizzy, PKGINGO
//= Official NPCs translated and re-edited by Celest
@@ -15,7 +15,7 @@
//= fixed zeny/item, exploit in Sairin, some optimizations [Lupus]
//= 1.06 some typos in some variables fixed (thx 2 Dr.Evil) [Lupus]
//= 1.07 Fixed typos [Nexon]
-//= 1.08 Commented "Traveler" out as it is not official & we have correct Bungee quest in.
+//= 1.08 Commented "Traveler" out as it is not official & we have correct Bungee quest in.
//= Also removed TODO, as they are already done. [Vicious_Pucca]
//= 1.1 Replaced nif_q_done with MISC_QUEST & 32. nif_t -> @nif_t [Lupus]
//= 1.2 Removed Duplicates [Silent]
diff --git a/npc/cities/rachel.txt b/npc/cities/rachel.txt
index edbdaa1eb..b4beb95af 100644
--- a/npc/cities/rachel.txt
+++ b/npc/cities/rachel.txt
@@ -9,7 +9,7 @@
//= [Partial Official Conversion]
//= Arunafeltz NPCs
//===== Additional Comments: =================================
-//= 0.5 Text translated from Korean > English, incomplete,
+//= 0.5 Text translated from Korean > English, incomplete,
//= possibly missing some NPCs and missing all quests.
//= 0.6 Removed Inn Keeper (it's in inn.txt), name duplicates [Lupus]
//= 0.7 Total update of most if not all NPCs. [L0ne_W0lf]
diff --git a/npc/custom/battleground/bg_flavius_01.txt b/npc/custom/battleground/bg_flavius_01.txt
index 5a78a7002..fd0cf9112 100644
--- a/npc/custom/battleground/bg_flavius_01.txt
+++ b/npc/custom/battleground/bg_flavius_01.txt
@@ -279,9 +279,7 @@ bat_b01,390,13,5 script Guillaume Vintenar#fl1 4_M_KY_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
@@ -310,9 +308,7 @@ bat_b01,10,293,5 script Croix Vintenar#fl1 4_M_CRU_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
diff --git a/npc/custom/battleground/bg_flavius_02.txt b/npc/custom/battleground/bg_flavius_02.txt
index 1a66d39c5..f7b7756f4 100644
--- a/npc/custom/battleground/bg_flavius_02.txt
+++ b/npc/custom/battleground/bg_flavius_02.txt
@@ -279,9 +279,7 @@ bat_b02,390,13,5 script Guillaume Vintenar#fl2 4_M_KY_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
@@ -310,9 +308,7 @@ bat_b02,10,293,5 script Croix Vintenar#fl2 4_M_CRU_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
diff --git a/npc/custom/battleground/bg_kvm01.txt b/npc/custom/battleground/bg_kvm01.txt
index cfa2f01d7..aa12759b9 100644
--- a/npc/custom/battleground/bg_kvm01.txt
+++ b/npc/custom/battleground/bg_kvm01.txt
@@ -319,9 +319,7 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_kvm02.txt b/npc/custom/battleground/bg_kvm02.txt
index f759e2b9a..f2f5f7ca1 100644
--- a/npc/custom/battleground/bg_kvm02.txt
+++ b/npc/custom/battleground/bg_kvm02.txt
@@ -319,9 +319,7 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_kvm03.txt b/npc/custom/battleground/bg_kvm03.txt
index dde4d8147..f38e81bd1 100644
--- a/npc/custom/battleground/bg_kvm03.txt
+++ b/npc/custom/battleground/bg_kvm03.txt
@@ -319,9 +319,7 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 0;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 0;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_tierra_01.txt b/npc/custom/battleground/bg_tierra_01.txt
index 819fa9158..671c2d929 100644
--- a/npc/custom/battleground/bg_tierra_01.txt
+++ b/npc/custom/battleground/bg_tierra_01.txt
@@ -328,9 +328,7 @@ bat_a01,45,19,3 script Croix Vintenar#tv1 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
@@ -359,9 +357,7 @@ bat_a01,53,377,3 script Guillaume Vintenar#tv1 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
diff --git a/npc/custom/battleground/bg_tierra_02.txt b/npc/custom/battleground/bg_tierra_02.txt
index 25796c4bc..c6cebf581 100644
--- a/npc/custom/battleground/bg_tierra_02.txt
+++ b/npc/custom/battleground/bg_tierra_02.txt
@@ -328,9 +328,7 @@ bat_a02,45,19,3 script Croix Vintenar#tv2 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
@@ -359,9 +357,7 @@ bat_a02,53,377,3 script Guillaume Vintenar#tv2 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt
index 0e336ccb4..36e02e86d 100644
--- a/npc/custom/bgqueue/flavius.txt
+++ b/npc/custom/bgqueue/flavius.txt
@@ -86,7 +86,7 @@ OnPlayerListReady:
}
// Add the groups to the queues! :D
- for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1){
+ for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1){
if (queuesize($@Croix_QueueBG1) <= queuesize($@Guill_QueueBG1)){ // Catch'em all and add to the queue!
for (set .@j, 0; .@j < getarraysize(.@bg_member); set .@j, .@j + 1) {
if ( (.@bg_groups[.@i] == .@bg_member_group[.@j]) && (.@bg_types[.@i] == .@bg_member_type[.@j]) ) {
@@ -177,7 +177,7 @@ OnCroixQuit:
end;
OnGuillaumeQuit:
- queueremove($@Guill_QueueBG1,getcharid(3));
+ queueremove($@Guill_QueueBG1,getcharid(3));
callsub L_OnPlayerQuit;
end;
diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt
index e1a74936b..e3aa2bb5b 100644
--- a/npc/custom/card_remover.txt
+++ b/npc/custom/card_remover.txt
@@ -50,7 +50,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 1_F_ORIENT_04,{
}
set .@cardcount,getequipcardcnt(.@part);
- if (!checkweight(1202,(.@cardcount+1))) {
+ if (!checkweight(1202,(.@cardcount+1))) {
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt
index a5796fccd..fc79584fe 100644
--- a/npc/custom/etc/airplane.txt
+++ b/npc/custom/etc/airplane.txt
@@ -21,101 +21,101 @@ OnInit:
deletearray $locationsx[0],500;
deletearray $locationsy[0],500;
deletearray $alreadygoneto[0],500;
- setarray $locationsname$[0],"Airport";
- setarray $locationsname$[1],"Prontera";
- setarray $locationsname$[2],"Payon";
- setarray $locationsname$[3],"Aldebaran";
- setarray $locationsname$[4],"Alberta";
- setarray $locationsname$[5],"Geffen";
- setarray $locationsname$[6],"Morocc";
- setarray $locationsname$[7],"Glast Heim";
- setarray $locationsname$[8],"Umbala";
- setarray $locationsname$[9],"Comodo";
- setarray $locationsname$[10],"Amatsu";
- setarray $locationsname$[11],"Niflheim";
- setarray $locationsname$[12],"Lutie";
- setarray $locationsname$[13],"Louyang";
- setarray $locationsname$[14],"Gonryun";
- setarray $locationsname$[15],"Yuno";
- setarray $locationsname$[16],"Ant Hell";
- setarray $locationsname$[17],"Jawaii";
- setarray $locationsname$[18],"Orc Village";
- setarray $locationsname$[19],"Mjolnir Coal Mines";
- setarray $locationsname$[20],"Gefenia Ruins";
- setarray $locationsname$[21],"Ayothaya";
- setarray $locationsname$[22],"Lighthalzen";
- setarray $locationsname$[23],"Juperos";
- setarray $locationsmap$[0],"airport";
- setarray $locationsmap$[1],"prt_fild08";
- setarray $locationsmap$[2],"pay_fild08";
- setarray $locationsmap$[3],"mjolnir_12";
- setarray $locationsmap$[4],"pay_fild03";
- setarray $locationsmap$[5],"gef_fild00";
- setarray $locationsmap$[6],"moc_fild10";
- setarray $locationsmap$[7],"glast_01";
- setarray $locationsmap$[8],"umbala";
- setarray $locationsmap$[9],"comodo";
- setarray $locationsmap$[10],"amatsu";
- setarray $locationsmap$[11],"niflheim";
- setarray $locationsmap$[12],"xmas";
- setarray $locationsmap$[13],"louyang";
- setarray $locationsmap$[14],"gonryun";
- setarray $locationsmap$[15],"yuno";
- setarray $locationsmap$[16],"moc_fild04";
- setarray $locationsmap$[17],"jawaii";
- setarray $locationsmap$[18],"gef_fild10";
- setarray $locationsmap$[19],"mjolnir_02";
- setarray $locationsmap$[20],"gefenia01";
- setarray $locationsmap$[21],"ayothaya";
+ setarray $locationsname$[0],"Airport";
+ setarray $locationsname$[1],"Prontera";
+ setarray $locationsname$[2],"Payon";
+ setarray $locationsname$[3],"Aldebaran";
+ setarray $locationsname$[4],"Alberta";
+ setarray $locationsname$[5],"Geffen";
+ setarray $locationsname$[6],"Morocc";
+ setarray $locationsname$[7],"Glast Heim";
+ setarray $locationsname$[8],"Umbala";
+ setarray $locationsname$[9],"Comodo";
+ setarray $locationsname$[10],"Amatsu";
+ setarray $locationsname$[11],"Niflheim";
+ setarray $locationsname$[12],"Lutie";
+ setarray $locationsname$[13],"Louyang";
+ setarray $locationsname$[14],"Gonryun";
+ setarray $locationsname$[15],"Yuno";
+ setarray $locationsname$[16],"Ant Hell";
+ setarray $locationsname$[17],"Jawaii";
+ setarray $locationsname$[18],"Orc Village";
+ setarray $locationsname$[19],"Mjolnir Coal Mines";
+ setarray $locationsname$[20],"Gefenia Ruins";
+ setarray $locationsname$[21],"Ayothaya";
+ setarray $locationsname$[22],"Lighthalzen";
+ setarray $locationsname$[23],"Juperos";
+ setarray $locationsmap$[0],"airport";
+ setarray $locationsmap$[1],"prt_fild08";
+ setarray $locationsmap$[2],"pay_fild08";
+ setarray $locationsmap$[3],"mjolnir_12";
+ setarray $locationsmap$[4],"pay_fild03";
+ setarray $locationsmap$[5],"gef_fild00";
+ setarray $locationsmap$[6],"moc_fild10";
+ setarray $locationsmap$[7],"glast_01";
+ setarray $locationsmap$[8],"umbala";
+ setarray $locationsmap$[9],"comodo";
+ setarray $locationsmap$[10],"amatsu";
+ setarray $locationsmap$[11],"niflheim";
+ setarray $locationsmap$[12],"xmas";
+ setarray $locationsmap$[13],"louyang";
+ setarray $locationsmap$[14],"gonryun";
+ setarray $locationsmap$[15],"yuno";
+ setarray $locationsmap$[16],"moc_fild04";
+ setarray $locationsmap$[17],"jawaii";
+ setarray $locationsmap$[18],"gef_fild10";
+ setarray $locationsmap$[19],"mjolnir_02";
+ setarray $locationsmap$[20],"gefenia01";
+ setarray $locationsmap$[21],"ayothaya";
setarray $locationsmap$[22],"lighthalzen";
setarray $locationsmap$[23],"jupe_gate";
- setarray $locationsx[0],148;
- setarray $locationsx[1],206;
- setarray $locationsx[2],159;
- setarray $locationsx[3],62;
- setarray $locationsx[4],194;
- setarray $locationsx[5],50;
- setarray $locationsx[6],163;
- setarray $locationsx[7],196;
+ setarray $locationsx[0],148;
+ setarray $locationsx[1],206;
+ setarray $locationsx[2],159;
+ setarray $locationsx[3],62;
+ setarray $locationsx[4],194;
+ setarray $locationsx[5],50;
+ setarray $locationsx[6],163;
+ setarray $locationsx[7],196;
setarray $locationsx[8],187;
- setarray $locationsx[9],203;
+ setarray $locationsx[9],203;
setarray $locationsx[10],115;
setarray $locationsx[11],132;
setarray $locationsx[12],232;
- setarray $locationsx[13],36;
- setarray $locationsx[14],82;
+ setarray $locationsx[13],36;
+ setarray $locationsx[14],82;
setarray $locationsx[15],58;
setarray $locationsx[16],209;
- setarray $locationsx[17],248;
+ setarray $locationsx[17],248;
setarray $locationsx[18],158;
setarray $locationsx[19],76;
- setarray $locationsx[20],98;
+ setarray $locationsx[20],98;
setarray $locationsx[21],183;
setarray $locationsx[22],99;
setarray $locationsx[23],46;
- setarray $locationsy[0],45;
+ setarray $locationsy[0],45;
setarray $locationsy[1],280;
- setarray $locationsy[2],92;
+ setarray $locationsy[2],92;
setarray $locationsy[3],381;
setarray $locationsy[4],182;
setarray $locationsy[5],365;
setarray $locationsy[6],172;
setarray $locationsy[7],327;
setarray $locationsy[8],98;
- setarray $locationsy[9],76;
+ setarray $locationsy[9],76;
setarray $locationsy[10],79;
setarray $locationsy[11],241;
setarray $locationsy[12],308;
- setarray $locationsy[13],279;
- setarray $locationsy[14],96;
+ setarray $locationsy[13],279;
+ setarray $locationsy[14],96;
setarray $locationsy[15],194;
setarray $locationsy[16],326;
- setarray $locationsy[17],175;
+ setarray $locationsy[17],175;
setarray $locationsy[18],95;
setarray $locationsy[19],363;
- setarray $locationsy[20],21;
+ setarray $locationsy[20],21;
setarray $locationsy[21],104;
- setarray $locationsy[22],240;
+ setarray $locationsy[22],240;
setarray $locationsy[23],19;
goto resetgoneto;
end;
@@ -123,7 +123,7 @@ OnInit:
setrandomitin:
set $@settervariable,$@settervariable + 1;
setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1);
- if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1;
+ if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1;
if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin;
setarray $alreadygoneto[$locationn[$@settervariable]], 1;
if($@settervariable<12)goto setrandomitin;
diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt
index 7b569a3d5..e6e75c9f3 100644
--- a/npc/custom/etc/bank.txt
+++ b/npc/custom/etc/bank.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Banker Script
+//= Banker Script
//===== By: ==================================================
//= Syrus22 (1.0)
//===== Current Version: =====================================
diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt
index b86316706..ee1e7904b 100644
--- a/npc/custom/etc/blackjack.txt
+++ b/npc/custom/etc/blackjack.txt
@@ -12,7 +12,7 @@
//= Currently does not allow for "insurance", or "splitting"
//= of pairs.
//===== Additional Comments: =================================
-//=
+//=
//============================================================
cmd_in02,188,89,1 script Black Jack Dealer 1_M_LIBRARYMASTER,{
diff --git a/npc/custom/etc/marriage.txt b/npc/custom/etc/marriage.txt
index df701b05f..0d25be9d5 100644
--- a/npc/custom/etc/marriage.txt
+++ b/npc/custom/etc/marriage.txt
@@ -12,7 +12,7 @@
// 2.9 Somewhat iRO-official NPC names [DracoRPG]
//============================================================
-// Configuration Variables:
+// Configuration Variables:
- script marriage_init -1,{
OnInit:
set $@wed_allow, 0; //If 1, allows same sex marriages.
@@ -30,7 +30,7 @@ OnInit:
// Other Configuration:
// Line 61,62: Priest location, sprite and name.
-// Line 437,438: Registration location, sprite and name.
+// Line 437,438: Registration location, sprite and name.
// Line 813,814: Divorcing location, sprite and name.
// Variable Notes:
@@ -541,7 +541,7 @@ function SF_WedProgress {
}
if (strcharinfo(0) == $wed_bride$) {
mes "["+@name$+"]";
- if ($wed_groom_progress > 0)
+ if ($wed_groom_progress > 0)
mes "The Priest will handle the rest of the ceremony.";
else
mes "Tell your groom to register, what is taking so long? Time is running out.";
@@ -556,7 +556,7 @@ function SF_WedProgress {
stopnpctimer;
set $wed_groom_progress,1;
mes "["+@name$+"]";
- mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
+ mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
emotion e_no1;
close2;
npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest.";
@@ -577,7 +577,7 @@ function SF_WedProgress {
SF_TryRegister(1);
stopnpctimer;
mes "["+@name$+"]";
- mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
+ mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
emotion e_no1;
close2;
npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest.";
@@ -707,13 +707,13 @@ function SF_TryRegister {
}
if (@bride)
set @cost, $@wed_bride_reg;
- else
+ else
set @cost, $@wed_groom_reg;
if (Zeny < @cost) {
mes "["+@name$+"]";
mes "I am sorry, but you don't have enough to pay for the registration fee.";
- mes "Come back once you have collected "+@cost+"z.";
+ mes "Come back once you have collected "+@cost+"z.";
close;
}
Zeny -= @cost;
@@ -864,7 +864,7 @@ prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{
mes "["+@name$+"]";
mes "You should think this through.";
close;
- }
+ }
mes "["+@name$+"]";
set $@divorcee,getpartnerid();
set $@divorcer$,strcharinfo(0);
@@ -877,7 +877,7 @@ prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{
end;
function SF_InProgress {
- if (strcharinfo(0) == $@divorcer$) {
+ if (strcharinfo(0) == $@divorcer$) {
mes "["+@name$+"]";
mes "...I am still waiting for your partner to confirm the divorce procedure.";
close;
diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt
index 9e355e825..e78833b66 100644
--- a/npc/custom/etc/penal_servitude.txt
+++ b/npc/custom/etc/penal_servitude.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Penal Servitude
+//= Penal Servitude
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
@@ -14,7 +14,7 @@
// 1.2 Stricted the conditions a bit
//============================================================
-sec_pri,36,58,1 script Chief Warder 8W_SOLDIER,{
+sec_pri,36,58,1 script Chief Warder 8W_SOLDIER,{
mes "[Saddeus]";
emotion 1;
if(Sex) {
@@ -120,14 +120,14 @@ L_W4:
close;
M_NO_THANKS:
- mes "[Saddeus]";
+ mes "[Saddeus]";
if (rand(2)) mes "Is today X-Mas time, huh?";
mes "Now shut up and back off!";
if (rand(2)) emotion 23;
- close;
+ close;
}
-sec_in02,137,57,1 script Overseer 4_M_PAY_SOLDIER,{
+sec_in02,137,57,1 script Overseer 4_M_PAY_SOLDIER,{
mes "[Oliver]";
delitem 4002,countitem(4002);//Items: Fabre_Card,
diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt
index 732dfe135..b9bfcf74f 100644
--- a/npc/custom/etc/quest_warper.txt
+++ b/npc/custom/etc/quest_warper.txt
@@ -1065,7 +1065,7 @@ function script QWS_Darray {
QWS_Make_Dungeon_Menu 1;
//----------------ANT HELL
- setarray @pDmenuitems$[@Di], "Ant Hell Dungeon";
+ setarray @pDmenuitems$[@Di], "Ant Hell Dungeon";
setarray @pDprice[@Di], $QW_BW_PRICE;
setarray @pDfee$[@Di], "$QW_BW_FEE";
setarray @DLevels[2], 2;
diff --git a/npc/custom/events/cluckers.txt b/npc/custom/events/cluckers.txt
index 1db4c2251..1f32f9f25 100644
--- a/npc/custom/events/cluckers.txt
+++ b/npc/custom/events/cluckers.txt
@@ -5,8 +5,8 @@
//===== Current Version: =====================================
//= 1.2a
//===== Description: =========================================
-//= Click the chicken and try retrieve the item at a low
-//= chance. If you fail he will nuke, freeze, stone,
+//= Click the chicken and try retrieve the item at a low
+//= chance. If you fail he will nuke, freeze, stone,
//= stun, or make you fall asleep.
//= The prize is configurable and triggered by the NPC.
//===== Additional Comments: =================================
diff --git a/npc/custom/events/uneasy_cemetery.txt b/npc/custom/events/uneasy_cemetery.txt
index ac8124bd1..d48e5f928 100644
--- a/npc/custom/events/uneasy_cemetery.txt
+++ b/npc/custom/events/uneasy_cemetery.txt
@@ -9,7 +9,7 @@
//= Every day, at the midnight Prontera receive a wave of Undeads.
//= They come from Uneasy Cemetery of Prontera. To protect the players
//= from the undeads terror you may either kill the enemy. Or supply Mother Mathana
-//= with needed amount of Holy Water. Every citizen can take his part in the
+//= with needed amount of Holy Water. Every citizen can take his part in the
//= saving of Prontera city. After some days of quiet life... the Cemetery strikes back.
//===== Additional Comments: =================================
//= 1.1 More advanced ver. Added some bonus the the one who'd kill the last walking undead
diff --git a/npc/custom/itembind.txt b/npc/custom/itembind.txt
index 8462b1515..7d2c4ba62 100644
--- a/npc/custom/itembind.txt
+++ b/npc/custom/itembind.txt
@@ -35,7 +35,7 @@ prontera,144,174,4 script Bound Items 4_M_JP_MID,{
//Allows equipment (default)
if(@inventorylist_bound[.@i])
continue;
- if(((.allowbind & 1) && (getiteminfo(@inventorylist_id[.@i],2) == (4|5))) ||
+ if(((.allowbind & 1) && (getiteminfo(@inventorylist_id[.@i],2) == (4|5))) ||
((.allowbind & 2) && (getiteminfo(@inventorylist_id[.@i],2) == (0|2|11|18))) ||
((.allowbind & 4) && (getiteminfo(@inventorylist_id[.@i],2) == (3|6|7|8|10)))
) {
diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt
index ed55b4d87..346e3ddff 100644
--- a/npc/custom/jobmaster.txt
+++ b/npc/custom/jobmaster.txt
@@ -3,70 +3,91 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.3
+//= 1.4
//===== Description: =========================================
//= A fully functional job changer.
//===== Additional Comments: =================================
//= 1.1 Fixed reset on Baby job change. [Euphy]
//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy]
//= 1.3 Kagerou/Oboro added. [Euphy]
+//= 1.4 Improved legibility (renamed variables, replaced
+// numbers with constants; Changed syntax to match
+// Hercules standards; Fixed status point exploit upon
+// Baby Novice job change. [Haru]
//============================================================
prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{
-function Job_Menu; function A_An;
+ function Job_Menu; function A_An;
mes "[Job Master]";
- if (Class > 4049) {
+ if (Class > Job_Soul_Linker) {
mes "No more jobs are available.";
close;
}
if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
- mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding.";
+ mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")
+ +" before proceeding.";
close;
}
- if (.SkillPointCheck && SkillPoint) {
+ if (.skill_point_check && SkillPoint > 0) {
mes "Please use all your skill points before proceeding.";
close;
}
- set .@eac, eaclass();
- set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
- if (.@i > 6 && .@i < 22) {
- if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
- set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
- mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
+ .@eac = eaclass();
+ .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class;
+ if (.@base >= Job_Knight && .@base <= Job_Crusader2) {
+ if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) {
+ .@blvl = .rebirth_blevel - BaseLevel;
+ .@jlvl = .rebirth_jlevel - JobLevel;
+ mes "You need "
+ + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "")
+ + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "")
+ + "to continue.";
close;
}
- if (Class > 21) {
+ if (Class > Job_Crusader2) {
mes "Switch to third class?";
next;
Job_Menu(roclass(.@eac|EAJL_THIRD));
close;
}
- while(1) {
+ while (true) {
mes "Select an option.";
next;
- set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
- if (.@i==3) close;
+ .@choice = select(" ~ ^0055FFRebirth^000000:"+(.third_classes ? " ~ ^FF0000Third Class^000000" : "")+": ~ ^777777Cancel^000000");
+ if (.@choice == 3)
+ close;
mes "[Job Master]";
mes "Are you sure?";
next;
- Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
+ if (.@choice == 1)
+ Job_Menu(Job_Novice_High);
+ else
+ Job_Menu(roclass(.@eac|EAJL_THIRD));
mes "[Job Master]";
}
}
- set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);
- if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99;
- if (Class == Job_Ninja) setarray .@exp[0],.@j1,70;
- if (.@exp[0] && .ThirdClass) {
- if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {
- set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel;
- mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
+ .@job1 = roclass(.@eac|EAJL_2_1);
+ .@job2 = roclass(.@eac|EAJL_2_2);
+ if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) {
+ .@newclass = roclass(.@eac|EAJL_THIRD);
+ .@required_jlevel = 99;
+ } else if (Class == Job_Ninja) {
+ .@newclass = .@job1;
+ .@required_jlevel = 70;
+ }
+ if (.@newclass && .third_classes) {
+ if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) {
+ mes "You need "
+ + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "")
+ + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "")
+ + "to continue.";
close;
}
- mes "Switch to "+jobname(.@exp[0])+"?";
+ mes "Switch to "+jobname(.@newclass)+"?";
next;
- Job_Menu(.@exp[0]);
+ Job_Menu(.@newclass);
close;
}
if (.@eac&EAJL_2)
@@ -75,114 +96,163 @@ function Job_Menu; function A_An;
close;
}
if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
- if (JobLevel < .JobReq[0])
- mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class.";
- else if (Class == 4001 && .LastJob && lastJob) {
+ if (JobLevel < .jobchange_first) {
+ mes "A job level of "+.jobchange_first+" is required to change into the 1st Class.";
+ } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) {
mes "Switch classes now?";
next;
Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
- } else switch(Class) {
- case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
- case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
- case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
- default: mes "An error has occurred."; break;
+ } else if (Class == Job_Novice) {
+ Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief,
+ Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby);
+ } else if (Class == Job_Novice_High) {
+ Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
+ } else if (Class == Job_Baby) {
+ Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief,
+ Job_Super_Baby);
+ } else {
+ mes "An error has occurred.";
}
close;
}
- if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1)
+ if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
mes "No more jobs are available.";
- else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1])
- mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class.";
- else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) {
+ } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) {
+ mes "A job level of "+.jobchange_second+" is required to change into the 2nd Class.";
+ } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) {
mes "Switch classes now?";
next;
- Job_Menu(lastJob+4001);
- } else
- Job_Menu(.@j1,.@j2);
+ Job_Menu(lastJob+Job_Novice_High);
+ } else {
+ Job_Menu(.@job1, .@job2);
+ }
close;
function Job_Menu {
- while(1) {
+ while (true) {
if (getargcount() > 1) {
mes "Select a job.";
- set .@menu$,"";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
- set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
- set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
+ .@menu$ = "";
+ for (.@i = 0; .@i < getargcount(); ++.@i)
+ .@menu$ += " ~ "+jobname(getarg(.@i))+":";
+ .@menu$ += " ~ ^777777Cancel^000000";
next;
- set .@i, getarg(select(.@menu$)-1,0);
- if (!.@i) close;
- if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
+ .@newjob = getarg(select(.@menu$)-1, 0);
+ if (!.@newjob) close;
+ if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) {
mes "[Job Master]";
- mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
+ mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+".";
close;
}
mes "[Job Master]";
mes "Are you sure?";
next;
- } else
- set .@i, getarg(0);
- if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
+ } else {
+ .@newjob = getarg(0);
+ }
+ if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) {
mes "[Job Master]";
- mes "You are now "+A_An(jobname(.@i))+"!";
- if (.@i==4001 && .LastJob) set lastJob, Class;
- jobchange .@i;
- if (.@i==4001 || .@i==4023) resetlvl(1);
- specialeffect2 338; specialeffect2 432;
- if (.Platinum) callsub Get_Platinum;
+ mes "You are now "+A_An(jobname(.@newjob))+"!";
+ if (.@newjob == Job_Novice_High && .linear_jobchange)
+ lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script.
+ jobchange .@newjob;
+ if (.@newjob == Job_Novice_High)
+ resetlvl(1);
+ specialeffect2 EF_ANGEL2;
+ specialeffect2 EF_ELECTRIC;
+ if (.platinum)
+ callsub Get_Platinum;
close;
}
- if (getargcount() == 1) return;
+ if (getargcount() == 1)
+ return;
mes "[Job Master]";
}
end;
}
function A_An {
- setarray .@A$[0],"a","e","i","o","u";
- set .@B$, "_"+getarg(0);
- for(set .@i,0; .@i<5; set .@i,.@i+1)
- if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
+ setarray .@vowels$, "a", "e", "i", "o", "u";
+ .@firstletter$ = strtolower(charat(getarg(0), 0));
+ for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) {
+ if (.@vowels$[.@i] == .@firstletter$)
+ return "an "+getarg(0);
+ }
return "a "+getarg(0);
}
Get_Platinum:
- skill 142,1,0;
- switch(BaseClass) {
- case 0: if (Class !=23) skill 143,1,0; break;
- case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;
- case 2: skill 157,1,0; break;
- case 3: skill 147,1,0; skill 148,1,0; break;
- case 4: skill 156,1,0; break;
- case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;
- case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;
- default: break;
+ skill NV_FIRSTAID, 1, 0;
+ if (BaseClass == Job_Novice) {
+ if (Class != Job_SuperNovice)
+ skill NV_TRICKDEAD, 1, 0;
+ } else if (BaseClass == Job_Swordman) {
+ skill SM_MOVINGRECOVERY, 1, 0;
+ skill SM_FATALBLOW, 1, 0;
+ skill SM_AUTOBERSERK, 1, 0;
+ } else if (BaseClass == Job_Mage) {
+ skill MG_ENERGYCOAT, 1, 0;
+ } else if (BaseClass == Job_Archer) {
+ skill AC_MAKINGARROW, 1, 0;
+ skill AC_CHARGEARROW, 1, 0;
+ } else if (BaseClass == Job_Acolyte) {
+ skill AL_HOLYLIGHT, 1, 0;
+ } else if (BaseClass == Job_Merchant) {
+ skill MC_CARTREVOLUTION, 1, 0;
+ skill MC_CHANGECART, 1, 0;
+ skill MC_LOUD, 1, 0;
+ } else if (BaseClass == Job_Thief) {
+ skill TF_SPRINKLESAND, 1, 0;
+ skill TF_BACKSLIDING, 1, 0;
+ skill TF_PICKSTONE, 1, 0;
+ skill TF_THROWSTONE, 1, 0;
}
- switch(BaseJob) {
- case 7: skill 1001,1,0; break;
- case 8: skill 1014,1,0; break;
- case 9: skill 1006,1,0; break;
- case 10: skill 1012,1,0; skill 1013,1,0; break;
- case 11: skill 1009,1,0; break;
- case 12: skill 1003,1,0; skill 1004,1,0; break;
- case 14: skill 1002,1,0; break;
- case 15: skill 1015,1,0; skill 1016,1,0; break;
- case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;
- case 17: skill 1005,1,0; break;
- case 18: skill 238,1,0; break;
- case 19: skill 1010,1,0; break;
- case 20: skill 1011,1,0; break;
- default: break;
+
+ if (BaseJob == Job_Knight) {
+ skill KN_CHARGEATK, 1, 0;
+ } else if (BaseJob == Job_Priest) {
+ skill PR_REDEMPTIO, 1, 0;
+ } else if (BaseJob == Job_Wizard) {
+ skill WZ_SIGHTBLASTER, 1, 0;
+ } else if (BaseJob == Job_Blacksmith) {
+ skill BS_UNFAIRLYTRICK, 1, 0;
+ skill BS_GREED, 1, 0;
+ } else if (BaseJob == Job_Hunter) {
+ skill HT_PHANTASMIC, 1, 0;
+ } else if (BaseJob == Job_Assassin) {
+ skill AS_SONICACCEL, 1, 0;
+ skill AS_VENOMKNIFE, 1, 0;
+ } else if (BaseJob == Job_Crusader) {
+ skill CR_SHRINK, 1, 0;
+ } else if (BaseJob == Job_Monk) {
+ skill MO_KITRANSLATION, 1, 0;
+ skill MO_BALKYOUNG, 1, 0;
+ } else if (BaseJob == Job_Sage) {
+ skill SA_CREATECON, 1, 0;
+ skill SA_ELEMENTWATER, 1, 0;
+ skill SA_ELEMENTGROUND, 1, 0;
+ skill SA_ELEMENTFIRE, 1, 0;
+ skill SA_ELEMENTWIND, 1, 0;
+ } else if (BaseJob == Job_Rogue) {
+ skill RG_CLOSECONFINE, 1, 0;
+ } else if (BaseJob == Job_Alchemist) {
+ skill AM_BIOETHICS, 1, 0;
+ } else if (BaseJob == Job_Bard) {
+ skill BA_PANGVOICE, 1, 0;
+ } else if (BaseJob == Job_Dancer) {
+ skill DC_WINKCHARM, 1, 0;
}
return;
OnInit:
- setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class
- setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class
- set .ThirdClass,1; // Enable third classes? (1: yes / 0: no)
- set .SNovice,45; // Minimum base level to turn into Super Novice
- set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no)
- set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no)
- set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no)
+ .rebirth_blevel = 99; // Minimum base level to reborn OR change to third class
+ .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class
+ .jobchange_first = 10; // Minimum job level to turn into 1st class
+ .jobchange_second = 40; // Minimum job level to turn into 2nd class
+ .third_classes = 1; // Enable third classes? (1: yes / 0: no)
+ .supernovice_level = 45; // Minimum base level to turn into Super Novice
+ .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no)
+ .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no)
+ .platinum = 1; // Get platinum skills automatically? (1: yes / 0: no)
end;
}
diff --git a/npc/custom/quests/bandit_beard.txt b/npc/custom/quests/bandit_beard.txt
index 897464b26..68c13727b 100644
--- a/npc/custom/quests/bandit_beard.txt
+++ b/npc/custom/quests/bandit_beard.txt
@@ -97,7 +97,7 @@ L_NOITEMS:
mes "Here is the list again:";
emotion 23;
goto L_List;
-}
+}
//Master Tailor----------
izlude_in,123,175,4 script Master Tailor#bandit 1_M_04,{
diff --git a/npc/custom/quests/dead_branch.txt b/npc/custom/quests/dead_branch.txt
index bb70f6020..ef49db159 100644
--- a/npc/custom/quests/dead_branch.txt
+++ b/npc/custom/quests/dead_branch.txt
@@ -6,7 +6,7 @@
//= 1.1
//===== Description: =========================================
// Simple item trade-in quest, a person can get a Dead Branch
-// by simply providing the items: Log x3 (7201), Wooden Heart x1 (7189),
+// by simply providing the items: Log x3 (7201), Wooden Heart x1 (7189),
// Trunk x5 (1019), and Wooden Gnarl x1 (7222).
//===== Additional Comments: =================================
//= 1.1 Optimized, added Bloody Branch with 0.01% chance [Lupus]
diff --git a/npc/custom/quests/elvenear.txt b/npc/custom/quests/elvenear.txt
index 25eb12080..eb2d1ba4c 100644
--- a/npc/custom/quests/elvenear.txt
+++ b/npc/custom/quests/elvenear.txt
@@ -12,16 +12,16 @@
//============================================================
geffen,127,49,5 script Elven Ears Quest 4_M_02,{
- mes "[Elven Ears Quest]";
- mes "Hi, today's quest is....";
- mes "Ah, the ^61B031Elven Ears ^000000Quest!";
- next;
+ mes "[Elven Ears Quest]";
+ mes "Hi, today's quest is....";
+ mes "Ah, the ^61B031Elven Ears ^000000Quest!";
+ next;
menu "Requirements",L_Bl, "Make Item",-,"Cancel",L_Cancel;
mes "[Elven Ears quest]";
- mes "Good good, let me just check";
+ mes "Good good, let me just check";
next;
- if(countitem(2213)<1 || countitem(1040)<20 || countitem(919)<20) goto L_NoMake;
+ if(countitem(2213)<1 || countitem(1040)<20 || countitem(919)<20) goto L_NoMake;
delitem 2213,1;
delitem 1040,20;
delitem 919,20;
@@ -39,11 +39,11 @@ L_NoMake:
mes "Please come back another time...";
close;
-L_Bl:
+L_Bl:
mes "[Elven Ears Quest]";
- mes "Ok all you have to do is collect:";
- mes "^362ED61 Kitty Band^000000";
- mes "^362ED620 Elder Pixie Mustaches^000000";
+ mes "Ok all you have to do is collect:";
+ mes "^362ED61 Kitty Band^000000";
+ mes "^362ED620 Elder Pixie Mustaches^000000";
mes "and ^362ED620 Animal Skin^000000";
next;
menu "Accept",-, "Leave",L_Leave;
diff --git a/npc/custom/quests/event_6_new_hats.txt b/npc/custom/quests/event_6_new_hats.txt
index 7352beef1..497fae849 100644
--- a/npc/custom/quests/event_6_new_hats.txt
+++ b/npc/custom/quests/event_6_new_hats.txt
@@ -13,13 +13,13 @@
//= -Kafra Band, Panda Hat
//= -Crescent Hairpin
//===== Additional Comments: =================================
-//= Event New Hats by RedxSwordxHero
+//= Event New Hats by RedxSwordxHero
//= Ported and improved with timers [Lupus]
//= Thanks to x[tsk],fixed all item requirements to iRO specs exept
//= for hats which cannot be made on the real server. [Lupus]
//= 1.2 removed already existing official hat quests [Lupus]
//= 1.3 Spiffed up the NPC coords and their appearance [Lupus]
-//= 1.4 Fixed exploits. 1.4a fixed wrong item ID [Lupus]
+//= 1.4 Fixed exploits. 1.4a fixed wrong item ID [Lupus]
//============================================================
prt_in,130,66,5 script Zac 4_M_BIBI,{
diff --git a/npc/custom/quests/kahohorn.txt b/npc/custom/quests/kahohorn.txt
index 840cb4e12..8c5c4d8cf 100644
--- a/npc/custom/quests/kahohorn.txt
+++ b/npc/custom/quests/kahohorn.txt
@@ -1,7 +1,7 @@
//===== Hercules Script ======================================
//= Lord Kaho's Horns Quest
//===== By: ==================================================
-//=
+//=
//===== Current Version: =====================================
//= 1.1
//===== Description: =========================================
@@ -40,7 +40,7 @@ geffen,115,107,5 script Lord Kaho's Servant 1_M_PUBMASTER,{
next;
mes .@n$;
mes "Finally, I've worked hard to make these horns for my master with all the items mentioned above...";
- mes "Please include ^0055FF5 million Zeny^000000 for my efforts.";
+ mes "Please include ^0055FF5 million Zeny^000000 for my efforts.";
next;
mes .@n$;
mes "Are you ready for me to make this special item?";
diff --git a/npc/custom/quests/kings_items.txt b/npc/custom/quests/kings_items.txt
index 345f8b051..055315810 100644
--- a/npc/custom/quests/kings_items.txt
+++ b/npc/custom/quests/kings_items.txt
@@ -44,7 +44,7 @@ prt_castle,80,170,4 script King of Prontera 1_M_PRON_KING,{
for(set .@j,1; .@j<getarraysize(getd(".@items"+.@i)); set .@j,.@j+2)
if (countitem(getd(".@items"+.@i+"["+.@j+"]")) < getd(".@items"+.@i+"["+(.@j+1)+"]")) set .@nr,1;
mes "[King of Prontera]";
- if (.@nr) {
+ if (.@nr) {
mes "You're missing something.";
mes "Come back after you get ALL the items.";
close; }
diff --git a/npc/custom/quests/may_hats.txt b/npc/custom/quests/may_hats.txt
index 789fc364f..ce2c09764 100644
--- a/npc/custom/quests/may_hats.txt
+++ b/npc/custom/quests/may_hats.txt
@@ -6,7 +6,7 @@
//===== Current Version: =====================================
//= 1.01
//===== Description: =========================================
-//= Custom quest for some RO mobile game bonus items
+//= Custom quest for some RO mobile game bonus items
//===== Additional Comments: =================================
//= 1 May, 2006
//= 1.01 translated the rest of dialogues
diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt
index ff383717c..fb5b7993d 100644
--- a/npc/custom/quests/quest_shop.txt
+++ b/npc/custom/quests/quest_shop.txt
@@ -26,7 +26,7 @@ prontera,164,203,6 script Quest Shop#1 4_M_MOCASS2,{ callfunc "qshop"; }
// Script Core
//============================================================
-- script quest_shop -1,{
+- script quest_shop -1,{
function Add; function Chk; function Slot; function A_An;
OnInit:
freeloop(1);
@@ -128,7 +128,7 @@ OnBuyItem:
while(1) {
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
case 1:
- if (@qe[0]) {
+ if (@qe[0]) {
mes "[Quest Shop]";
mes "You're missing one or more quest requirements.";
close;
diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt
index b4a53d816..3e7a90d9d 100644
--- a/npc/custom/quests/questboard.txt
+++ b/npc/custom/quests/questboard.txt
@@ -286,12 +286,12 @@ function AddCollection {
setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
set .@argcount, 6;
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
- setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
- setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
+ setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
+ setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
- setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
+ setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount,.@argcount+2;
}
@@ -309,11 +309,11 @@ function AddHunting {
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
set .@argcount, 6;
setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
- setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
+ setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
- setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
+ setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
}
diff --git a/npc/custom/quests/tha_statues.txt b/npc/custom/quests/tha_statues.txt
index 283615be9..c4787fcd3 100644
--- a/npc/custom/quests/tha_statues.txt
+++ b/npc/custom/quests/tha_statues.txt
@@ -47,7 +47,7 @@ tha_t09,84,99,4 script Mediane HIDDEN_NPC,{
mes "Okay, i am warping you to the next floor now.";
next;
set TSQ_CHK,0;
- warp "tha_t10", 165, 138;
+ warp "tha_t10", 165, 138;
close;
nook:
mes "[Mediane]";
diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt
index 266a20cb5..c92c375ec 100644
--- a/npc/custom/quests/thq/THQS_TTShop.txt
+++ b/npc/custom/quests/thq/THQS_TTShop.txt
@@ -71,7 +71,7 @@ function script thqs_trade_token {
// 10^3, 10^4, 10^5
@type += 3; // So we can use pow later to determine the qt of Zeny
- @prize = pow(1000, @type);
+ @prize = pow(10, @type);
if( #Treasure_Token < @price ) {
mes "You don't have enough tokens!";
@@ -201,4 +201,4 @@ prt_in,164,174,1 script Treasure Hunter's Shop 1_M_YOUNGKNIGHT,{
close;
}
end;
-} \ No newline at end of file
+}
diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt
index b2cabd1fc..0b66c6a03 100644
--- a/npc/custom/warper.txt
+++ b/npc/custom/warper.txt
@@ -111,7 +111,7 @@ function Restrict {
Towns:
// --------------------------------------------------
menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
- "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
+ "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
"Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15,
"Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20,
"Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24,
diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt
index c21018d60..824fa4a4f 100644
--- a/npc/custom/woe_controller.txt
+++ b/npc/custom/woe_controller.txt
@@ -273,7 +273,7 @@ while(1) {
for(set .@i,0; .@i<6; set .@i,.@i+1) {
set .@k, .@i*5;
mes "> ^FF0000"+.Regions$[.@i]+"^000000";
- for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) {
+ for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) {
set .@t, getcastledata(.Castles$[.@j],1);
mes " ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000";
}
diff --git a/npc/dev/test.txt b/npc/dev/test.txt
index 3cc714993..f9e4fc410 100644
--- a/npc/dev/test.txt
+++ b/npc/dev/test.txt
@@ -708,7 +708,7 @@ OnReportError:
if (.errors == 1)
debugmes "**** WARNING: Any self-test results past this point are unreliable because of previous errors. ****";
debugmes "Error: "+.@msg$+": '"+.@val$+"' (found) != '"+.@ref$+"' (expected)";
- .errors++;
+ ++.errors;
//end;
return;
diff --git a/npc/events/MemorialDay_2008.txt b/npc/events/MemorialDay_2008.txt
index 2b60a8a82..2c64c5b75 100644
--- a/npc/events/MemorialDay_2008.txt
+++ b/npc/events/MemorialDay_2008.txt
@@ -232,7 +232,7 @@ prontera,153,286,4 script Memorial Plaque#Memorial 4_BOARD3,{
mes "-I may not have gone where I intended to go,-";
mes "-but I think I have ended up where I needed to be.-";
mes "- Douglas Adams.-";
- if (Memorial08 == 9) {
+ if (Memorial08 == 9) {
getexp 93750,43750;
}
next;
@@ -242,7 +242,7 @@ prontera,153,286,4 script Memorial Plaque#Memorial 4_BOARD3,{
mes "-It is not the urge to surpass all others at whatever cost,-";
mes "- but the urge to serve others at whatever cost. -";
mes "- Arthur Ashe -";
- if (Memorial08 == 9) {
+ if (Memorial08 == 9) {
getexp 93750,43750;
set Memorial08,10;
}
diff --git a/npc/events/StPatrick_2008.txt b/npc/events/StPatrick_2008.txt
index 92408c54a..c1816374f 100644
--- a/npc/events/StPatrick_2008.txt
+++ b/npc/events/StPatrick_2008.txt
@@ -13,7 +13,7 @@
//= you must use the mob edits provided for this quest.
//= Enable in mob_db2.txt
//=
-//= The item 12715 Black_Treasure_Chest contains a script
+//= The item 12715 Black_Treasure_Chest contains a script
//= that relies explicitly on this script being loaded.
//= Remove the "end" from the item script to enable.
//= In addition to that, you must enable the item_avail
@@ -170,7 +170,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "[O'Riley the Leprechaun]";
mes "Thank you. Here's your ale~";
if (countitem(7915) >= 10) {
- getitem 12135,1;
+ getitem 12135,1;
delitem 7915,10;
}
close;
@@ -178,7 +178,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "[O'Riley the Leprechaun]";
mes "Thank you. Here's your ale~";
if (countitem(7916) >= 5) {
- getitem 12135,1;
+ getitem 12135,1;
delitem 7916,5;
}
close;
@@ -186,7 +186,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "[O'Riley the Leprechaun]";
mes "Thank you. Here's your ale~";
if (countitem(7720) >= 1) {
- getitem 12135,1;
+ getitem 12135,1;
delitem 7720,1;
}
close;
diff --git a/npc/events/christmas_2008.txt b/npc/events/christmas_2008.txt
index 11fd1dea1..192bf25ec 100644
--- a/npc/events/christmas_2008.txt
+++ b/npc/events/christmas_2008.txt
@@ -4,6 +4,8 @@
//= Kisuka
//===== Current Version: =====================================
//= 1.1
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= iRO Christmas Event. (2008)
//= Create Music Box and Cake.
diff --git a/npc/events/event_skill_reset.txt b/npc/events/event_skill_reset.txt
index af1b387f2..718fe2e0e 100644
--- a/npc/events/event_skill_reset.txt
+++ b/npc/events/event_skill_reset.txt
@@ -58,7 +58,7 @@ yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{
mes @npcname$;
mes "You know where to find me,";
- mes "if you ever want a reset!!";
+ mes "if you ever want a reset!!";
close;
L_Info:
@@ -80,10 +80,10 @@ L_Info:
L_Reset:
mes @npcname$;
mes "Before skill reset in starting.";
- mes "You shall have to first tell me your Base Level.";
+ 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";
+ mes "My Base level is ^AA00AALevel " + BaseLevel + "BaseLv.^000000";
next;
set @zeny,BaseLevel*20000;
mes @npcname$;
diff --git a/npc/events/god_se_festival.txt b/npc/events/god_se_festival.txt
index 4712d6fd7..54bf2b6d3 100644
--- a/npc/events/god_se_festival.txt
+++ b/npc/events/god_se_festival.txt
@@ -6,7 +6,7 @@
//= 1.1
//===== Description: =========================================
//= [Official Conversion]
-//= Post-God Item SE Creation Summoning Event
+//= Post-God Item SE Creation Summoning Event
//= Second Sister is a custom translation.
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
diff --git a/npc/events/idul_fitri.txt b/npc/events/idul_fitri.txt
index b308335cb..97d018f0a 100644
--- a/npc/events/idul_fitri.txt
+++ b/npc/events/idul_fitri.txt
@@ -39,7 +39,7 @@ prontera,146,92,3 script Cellerb 1_M_MERCHANT,{
mes "^000088~2 Green Herb, 5 Stem~.^000000";
next;
mes "[Staff Idul Fitri]";
- if ( (countitem(552)<5 || countitem(515)<5 ||countitem(516)<5 || countitem(517)<10 || countitem(511)<2 || countitem(905)<5) ) {
+ if ( (countitem(552)<5 || countitem(515)<5 ||countitem(516)<5 || countitem(517)<10 || countitem(511)<2 || countitem(905)<5) ) {
mes "You don't have enough items.";
mes "Come back when you have them all.";
close;
@@ -68,4 +68,4 @@ prontera,146,92,3 script Cellerb 1_M_MERCHANT,{
emotion e_hmm;
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/events/nguild/nguild_guardians.txt b/npc/events/nguild/nguild_guardians.txt
index 3a34259c2..3b2a7088b 100644
--- a/npc/events/nguild/nguild_guardians.txt
+++ b/npc/events/nguild/nguild_guardians.txt
@@ -53,7 +53,7 @@ OnGuardianDied:
nguild_pay,139,139,0 script Guardian_N03 -1,{
OnAgitInit:
if (getcastledata("nguild_pay",10) == 1) guardian "nguild_pay",210,120,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",0;
- if (getcastledata("nguild_pay",11) == 1) guardian "nguild_pay",69,26,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",1;
+ if (getcastledata("nguild_pay",11) == 1) guardian "nguild_pay",69,26,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",1;
if (getcastledata("nguild_pay",12) == 1) guardian "nguild_pay",23,141,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",2;
if (getcastledata("nguild_pay",13) == 1) guardian "nguild_pay",224,87,"Archer Guardian",1285,"Guardian_N03::OnGuardianDied",3;
if (getcastledata("nguild_pay",14) == 1) guardian "nguild_pay",81,45,"Archer Guardian",1285,"Guardian_N03::OnGuardianDied",4;
diff --git a/npc/events/nguild/nguild_treas.txt b/npc/events/nguild/nguild_treas.txt
index fe5512835..750eab88a 100644
--- a/npc/events/nguild/nguild_treas.txt
+++ b/npc/events/nguild/nguild_treas.txt
@@ -48,7 +48,7 @@ function script F_GldTreas {
}
//==============================================================
-// Treasure Room Switch
+// Treasure Room Switch
//===============================================================
function script F_GldTreasSw {
mes " ";
diff --git a/npc/events/nguild/nguild_warper.txt b/npc/events/nguild/nguild_warper.txt
index 61541d096..6ad9d02ab 100644
--- a/npc/events/nguild/nguild_warper.txt
+++ b/npc/events/nguild/nguild_warper.txt
@@ -11,10 +11,10 @@
//= dungeons. And 2nd Classes can't seize these Castles.
//= These new castles need a new strategy. It would bring some
//= fun and live to your game.
-//= NOTE: If your Guild Master is 2nd class, then he could
+//= NOTE: If your Guild Master is 2nd class, then he could
//= rule the Castles and gather Treasure Boxes after WoE
//= 1.1 Now 2nd classes can't enter NC place at all
-//= 1.2 Restricted access of SG/SL. On warp clear some
+//= 1.2 Restricted access of SG/SL. On warp clear some
//= unallowed buffs [Lupus]
//= 1.3 Restricted TK,High classes >=90 BaseLevel,
//= updated list of unallowed buffs [Lupus]
@@ -30,7 +30,7 @@ prontera,146,163,6 script Novice Castles 4_F_NOVICE,{
mes "[Cita]";
if (!getcharid(2)) {
mes "^FF0000You have to enter a guild to be able to hit Emperium!^000000";
- } else if (getgdskilllv(getcharid(2),10013) ||
+ } else if (getgdskilllv(getcharid(2),10013) ||
(getgdskilllv(getcharid(2),10000) +
getgdskilllv(getcharid(2),10001) +
getgdskilllv(getcharid(2),10002) +
diff --git a/npc/events/twintowers.txt b/npc/events/twintowers.txt
index 7745adb9b..524351661 100644
--- a/npc/events/twintowers.txt
+++ b/npc/events/twintowers.txt
@@ -32,7 +32,7 @@ prontera,146,92,4 script Twin Towers#tt1::Twin-Towers TW_TOWER,{
menu "I shall accept your offer.",YES,"I'll ask for your service next time.",NO;
NO:
- mes "[Twin Towers]";
+ 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";
diff --git a/npc/events/valentinesday.txt b/npc/events/valentinesday.txt
index fd26be298..5f6289d13 100644
--- a/npc/events/valentinesday.txt
+++ b/npc/events/valentinesday.txt
@@ -126,4 +126,4 @@ prt_castle,54,34,4 script Carl Orleans 1_M_01,{
mes "[Carl Orleans]";
mes "Enjoy.";
close;
-} \ No newline at end of file
+}
diff --git a/npc/events/valentinesday_2012.txt b/npc/events/valentinesday_2012.txt
index cf1625891..2d74cb1a5 100644
--- a/npc/events/valentinesday_2012.txt
+++ b/npc/events/valentinesday_2012.txt
@@ -114,7 +114,7 @@ mosk_in,21,244,3 script Baker Extraordinaire 4_M_NOVELIST,{
mes .@n$;
mes "Bring 15 Love Flowers to Pinkamenia!";
close;
- } else if(#V_QUE12==1) {
+ } else if(#V_QUE12==1) {
mes .@n$;
if (getequipid(1) == 5024 && getequiprefinerycnt(1) >= 8) {
mes "Ah, so Pinkamenia told you";
@@ -153,4 +153,4 @@ mosk_in,21,244,3 script Baker Extraordinaire 4_M_NOVELIST,{
mes "Hello, "+strcharinfo(0)+"!";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/events/whiteday.txt b/npc/events/whiteday.txt
index 4cb6a3815..ac76c52a5 100644
--- a/npc/events/whiteday.txt
+++ b/npc/events/whiteday.txt
@@ -59,7 +59,7 @@ L0_2:
goto L_INPUT;
L0_3:
set @maplePrice,2000;
- set @mapleItemID,538;
+ set @mapleItemID,538;
mes "[Sugar]";
mes "It is a well baked cookie, and the price is";
mes "2000 Zeny each.";
diff --git a/npc/guild/agit_controller.txt b/npc/guild/agit_controller.txt
index 4db4a3c5e..de55029fc 100644
--- a/npc/guild/agit_controller.txt
+++ b/npc/guild/agit_controller.txt
@@ -57,7 +57,7 @@ OnAgitInit:
// end time checks
if ((gettime(4)==2) && (gettime(3)==23) ||
(gettime(4)==4) && (gettime(3)==23) ||
- (gettime(4)==6) && (gettime(3)==18)) {
+ (gettime(4)==6) && (gettime(3)==18)) {
if (agitcheck()) {
agitend;
callsub S_DisplayOwners;
diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt
index c794a8383..dc799a21f 100644
--- a/npc/guild/agit_main.txt
+++ b/npc/guild/agit_main.txt
@@ -474,7 +474,7 @@ OnRecvCastle:
// .@guardianposy = Define the y spawn point for each guardian.
// [0] = 1st guardian's y spawn point.
// .@masterroom = Defines the coordinates of the Treasure Room.
- if (strnpcinfo(2) == "aldeg_cas01") {
+ if (strnpcinfo(2) == "aldeg_cas01") {
setarray .@guardiantype[0],1,2,2,2,2,3,3,3;
setarray .@guardianposx[0],17,39,38,45,21,218,213,73;
setarray .@guardianposy[0],218,208,196,228,194,24,24,70;
@@ -995,7 +995,7 @@ OnSpawnGuardians:
// Define the y spawn point for each uardian.
// [0] = 1st guardian's y spawn point.
// Aldebaran (Luina) Castles
- if (strnpcinfo(2) == "aldeg_cas01") {
+ if (strnpcinfo(2) == "aldeg_cas01") {
setarray .@guardiantype[0],1,2,2,2,2,3,3,3;
setarray .@guardianposx[0],17,39,38,45,21,218,213,73;
setarray .@guardianposy[0],218,208,196,228,194,24,24,70;
@@ -1140,102 +1140,102 @@ OnClock0001:
set .@Treasure,getcastledata(strnpcinfo(2),2)/5+4;
// Set information
- if (strnpcinfo(2) == "aldeg_cas01") {
+ if (strnpcinfo(2) == "aldeg_cas01") {
set .@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") {
+ else if (strnpcinfo(2) == "aldeg_cas02") {
set .@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") {
+ else if (strnpcinfo(2) == "aldeg_cas03") {
set .@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") {
+ else if (strnpcinfo(2) == "aldeg_cas04") {
set .@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") {
+ else if (strnpcinfo(2) == "aldeg_cas05") {
set .@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") {
+ else if (strnpcinfo(2) == "gefg_cas01") {
set .@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") {
+ else if (strnpcinfo(2) == "gefg_cas02") {
set .@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") {
+ else if (strnpcinfo(2) == "gefg_cas03") {
set .@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") {
+ else if (strnpcinfo(2) == "gefg_cas04") {
set .@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") {
+ else if (strnpcinfo(2) == "gefg_cas05") {
set .@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") {
+ else if (strnpcinfo(2) == "payg_cas01") {
set .@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") {
+ else if (strnpcinfo(2) == "payg_cas02") {
set .@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") {
+ else if (strnpcinfo(2) == "payg_cas03") {
set .@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") {
+ else if (strnpcinfo(2) == "payg_cas04") {
set .@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") {
+ else if (strnpcinfo(2) == "payg_cas05") {
set .@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") {
+ else if (strnpcinfo(2) == "prtg_cas01") {
set .@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") {
+ else if (strnpcinfo(2) == "prtg_cas02") {
set .@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") {
+ else if (strnpcinfo(2) == "prtg_cas03") {
set .@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") {
+ else if (strnpcinfo(2) == "prtg_cas04") {
set .@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") {
+ else if (strnpcinfo(2) == "prtg_cas05") {
set .@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;
diff --git a/npc/guild/trs_rp.txt b/npc/guild/trs_rp.txt
index 88a320406..260aa6162 100644
--- a/npc/guild/trs_rp.txt
+++ b/npc/guild/trs_rp.txt
@@ -52,4 +52,4 @@ gefg_cas01,154,112,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas01 -1,6,6
gefg_cas02,140,116,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas02 -1,6,6
gefg_cas03,271,290,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas03 -1,6,6
gefg_cas04,116,119,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas04 -1,6,6
-gefg_cas05,144,110,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas05 -1,6,6 \ No newline at end of file
+gefg_cas05,144,110,0 duplicate(Gld_Trea_Protect) ban_warp#gefg_cas05 -1,6,6
diff --git a/npc/guild2/agit_main_se.txt b/npc/guild2/agit_main_se.txt
index d5c2eaddd..77e8cdd7c 100644
--- a/npc/guild2/agit_main_se.txt
+++ b/npc/guild2/agit_main_se.txt
@@ -152,12 +152,12 @@ OnClock0001:
if (!.@Treasure) end;
freeloop(1);
if (compare(strnpcinfo(2),"arug")) {
- if (strnpcinfo(2) == "arug_cas01") {
+ if (strnpcinfo(2) == "arug_cas01") {
set .@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") {
+ else if (strnpcinfo(2) == "arug_cas02") {
set .@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;
@@ -169,12 +169,12 @@ OnClock0001:
}
}
else {
- if (strnpcinfo(2) == "schg_cas02") {
+ if (strnpcinfo(2) == "schg_cas02") {
set .@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") {
+ else if (strnpcinfo(2) == "schg_cas03") {
set .@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;
diff --git a/npc/guild2/agit_start_se.txt b/npc/guild2/agit_start_se.txt
index 39c3ae1ea..74f03cb28 100644
--- a/npc/guild2/agit_start_se.txt
+++ b/npc/guild2/agit_start_se.txt
@@ -39,7 +39,7 @@ OnAgitInit2:
// end time checks
if ((gettime(4)==2) && (gettime(3)==21) ||
(gettime(4)==4) && (gettime(3)==21) ||
- (gettime(4)==6) && (gettime(3)==23)) {
+ (gettime(4)==6) && (gettime(3)==23)) {
if (agitcheck2()) {
agitend2;
}
diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt
index 456bf590f..2da7c8719 100644
--- a/npc/instances/EndlessTower.txt
+++ b/npc/instances/EndlessTower.txt
@@ -25,7 +25,7 @@
//= warps between floors. (bugreport:4623)
//= Added missing end's to prevent infinite mobspawn (bugreport:4540)
//= Commented out remaining GM-only NPCs. [Gepard]
-//= 1.8 Adjusted Instance Attach Map to Validate ALL Maps, instead of
+//= 1.8 Adjusted Instance Attach Map to Validate ALL Maps, instead of
//= only 1@tower -> 5@tower (bugreport:4983)
//= 1.9 Added 'instance_check_party' command to the script for proper checking if
//= the invoking party meets the requirements to join the Memorial Dungeon.
@@ -1020,65 +1020,65 @@ function script F_Tower_Monster {
case 99:
for(set .@i,1; .@i<=7; set .@i,.@i+1) {
set .@mob_ran,rand(1,30);
- if (.@mob_ran == 1)
+ if (.@mob_ran == 1)
areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,2,.@label$;
- else if (.@mob_ran == 2)
+ else if (.@mob_ran == 2)
areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,2,.@label$;
- else if (.@mob_ran == 3)
+ else if (.@mob_ran == 3)
areamonster .@map$,267,9,277,45,"Margaretha Sorin",1637,2,.@label$;
- else if (.@mob_ran == 4)
+ else if (.@mob_ran == 4)
areamonster .@map$,267,9,277,45,"Eremes Guile",1635,2,.@label$;
- else if (.@mob_ran == 5)
+ else if (.@mob_ran == 5)
areamonster .@map$,267,9,277,45,"Howard Alt-Eisen",1636,2,.@label$;
- else if (.@mob_ran == 6)
+ else if (.@mob_ran == 6)
areamonster .@map$,267,9,277,45,"Cecil Damon",1638,2,.@label$;
- else if (.@mob_ran == 7)
+ else if (.@mob_ran == 7)
areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1918,5,.@label$;
- else if (.@mob_ran == 8)
+ else if (.@mob_ran == 8)
areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1919,5,.@label$;
- else if (.@mob_ran == 9)
+ else if (.@mob_ran == 9)
areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1920,5,.@label$;
- else if (.@mob_ran == 10)
+ else if (.@mob_ran == 10)
areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1921,5,.@label$;
- else if (.@mob_ran == 11)
+ else if (.@mob_ran == 11)
areamonster .@map$,267,9,277,45,"Valkyrie",1765,5,.@label$;
- else if (.@mob_ran == 12)
+ else if (.@mob_ran == 12)
areamonster .@map$,267,9,277,45,"Skeggiold",1755,10,.@label$;
- else if (.@mob_ran == 13)
+ else if (.@mob_ran == 13)
areamonster .@map$,267,9,277,45,"Skeggiold",1754,10,.@label$;
- else if (.@mob_ran == 14)
+ else if (.@mob_ran == 14)
areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,15,.@label$;
- else if (.@mob_ran == 15)
+ else if (.@mob_ran == 15)
areamonster .@map$,267,9,277,45,"Bloody Knight",1268,10,.@label$;
- else if (.@mob_ran == 16)
+ else if (.@mob_ran == 16)
areamonster .@map$,267,9,277,45,"Abysmal Knight",1219,10,.@label$;
- else if (.@mob_ran == 17)
+ else if (.@mob_ran == 17)
areamonster .@map$,267,9,277,45,"Wanderer",1208,10,.@label$;
- else if (.@mob_ran == 18)
+ else if (.@mob_ran == 18)
areamonster .@map$,267,9,277,45,"Sword Master",1829,15,.@label$;
- else if (.@mob_ran == 19)
+ else if (.@mob_ran == 19)
areamonster .@map$,267,9,277,45,"Bow Master",1830,15,.@label$;
- else if (.@mob_ran == 20)
+ else if (.@mob_ran == 20)
areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,15,.@label$;
- else if (.@mob_ran == 21)
+ else if (.@mob_ran == 21)
areamonster .@map$,267,9,277,45,"Elder",1377,10,.@label$;
- else if (.@mob_ran == 22)
+ else if (.@mob_ran == 22)
areamonster .@map$,267,9,277,45,"Laurell Weinder",1657,10,.@label$;
- else if (.@mob_ran == 23)
+ else if (.@mob_ran == 23)
areamonster .@map$,267,9,277,45,"Wind Ghost",1263,10,.@label$;
- else if (.@mob_ran == 24)
+ else if (.@mob_ran == 24)
areamonster .@map$,267,9,277,45,"Marduk",1140,10,.@label$;
- else if (.@mob_ran == 25)
+ else if (.@mob_ran == 25)
areamonster .@map$,267,9,277,45,"Cecil Damon",1638,10,.@label$;
- else if (.@mob_ran == 26)
+ else if (.@mob_ran == 26)
areamonster .@map$,267,9,277,45,"Bow Master",1830,10,.@label$;
- else if (.@mob_ran == 27)
+ else if (.@mob_ran == 27)
areamonster .@map$,267,9,277,45,"Kavach Icarus",1656,30,.@label$;
- else if (.@mob_ran == 28)
+ else if (.@mob_ran == 28)
areamonster .@map$,267,9,277,45,"Baroness of Retribution",1702,10,.@label$;
- else if (.@mob_ran == 29)
+ else if (.@mob_ran == 29)
areamonster .@map$,267,9,277,45,"Lady Solace",1703,10,.@label$;
- else
+ else
areamonster .@map$,267,9,277,45,"False Angel",1371,10,.@label$;
}
break;
diff --git a/npc/instances/OrcsMemory.txt b/npc/instances/OrcsMemory.txt
index d06db682e..55f88f99d 100644
--- a/npc/instances/OrcsMemory.txt
+++ b/npc/instances/OrcsMemory.txt
@@ -13,7 +13,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
//= 1.1 First round of bugfixes. (bugreport:3928) [L0ne_W0lf]
-//= Fixed some npcs calling wrong events.
+//= Fixed some npcs calling wrong events.
//= Fixed Depraved Orc Spirit spawn point
//= Fixed an NPC that was never being enabled.
//= 1.1a Second round from bugreport. (bugreport:3928) [L0ne_W0lf]
@@ -931,4 +931,4 @@ OnMyMobDead2:
OnMyMobDead3:
donpcevent instance_npcname("#Warp2-3")+"::OnContinue";
end;
-} \ No newline at end of file
+}
diff --git a/npc/instances/SealedShrine.txt b/npc/instances/SealedShrine.txt
index 8713dc0e5..215ceffeb 100644
--- a/npc/instances/SealedShrine.txt
+++ b/npc/instances/SealedShrine.txt
@@ -237,7 +237,7 @@ monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
setquest 3040;
warp "1@cata",100,224;
end;
- }
+ }
} else if (.@ins_bapho_check == 0 || .@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.";
diff --git a/npc/jobs/2-1/assassin.txt b/npc/jobs/2-1/assassin.txt
index 896a19e4e..d778d789a 100644
--- a/npc/jobs/2-1/assassin.txt
+++ b/npc/jobs/2-1/assassin.txt
@@ -26,7 +26,7 @@
//= 2.0 Changed numbers to constants. [Vicious]
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Merged back JFunc. Fixed missing dialogue [Lupus]
-//= 2.3 Fixed typo and change Nameless addtimer to 100 (with 700ms I
+//= 2.3 Fixed typo and change Nameless addtimer to 100 (with 700ms I
//= was still able to bypass it) [Toms]
//= 2.4 Fixed skipping of Nameless NPC [Lupus]
//= 2.5 Fixed a Rogue exploit [Lupus]
@@ -981,12 +981,12 @@ OnTouch:
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)
+ if (select("7:8:9:10") == 4)
set .@assassin_t,.@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)
+ if (select("Dagger:Helm:Boots:Brooch") == 2)
set .@assassin_t,.@assassin_t+10;
mes "[The Anonymous One]";
mes "9. Choose the job change item for Thief.";
diff --git a/npc/jobs/2-1/blacksmith.txt b/npc/jobs/2-1/blacksmith.txt
index 48cf68150..c466925e1 100644
--- a/npc/jobs/2-1/blacksmith.txt
+++ b/npc/jobs/2-1/blacksmith.txt
@@ -269,7 +269,7 @@ ein_in01,18,28,4 script Guildsman#BLS 4_M_JOB_BLACKSMITH,{
mes "Congratulations!!!";
if (.@joblvl > 48)
getitem 999,30; //Steel
- else
+ else
getitem 999,5; //Steel
close;
}
diff --git a/npc/jobs/2-1/knight.txt b/npc/jobs/2-1/knight.txt
index 368cbca45..da1d8a8e4 100644
--- a/npc/jobs/2-1/knight.txt
+++ b/npc/jobs/2-1/knight.txt
@@ -1117,7 +1117,7 @@ prt_in,79,94,4 script Sir Windsor#knt 4_M_JOB_KNIGHT1,{
mes "......";
next;
mes "[Sir Windsor]";
- if (KNIGHT_Q == 6)
+ if (KNIGHT_Q == 6)
mes "...Follow me.";
else {
mes "...Fine.";
diff --git a/npc/jobs/2-1/priest.txt b/npc/jobs/2-1/priest.txt
index a06af96a1..57f6a2647 100644
--- a/npc/jobs/2-1/priest.txt
+++ b/npc/jobs/2-1/priest.txt
@@ -6,6 +6,8 @@
//= Further bugfixed and tested by Lupus
//===== Current Version: =====================================
//= 2.6
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Job Change quest for Priest class.
@@ -1706,7 +1708,7 @@ job_prist,98,105,4 script prst3_1 WARPNPC,3,3,{
OnTouch:
if (BaseJob == Job_Priest) {
warp "prt_church",15,36;
- end;
+ end;
}
else if (BaseClass == Job_Acolyte) {
set PRIEST_Q,7;
diff --git a/npc/jobs/2-2/alchemist.txt b/npc/jobs/2-2/alchemist.txt
index 1bb03d812..7e5ca7e33 100644
--- a/npc/jobs/2-2/alchemist.txt
+++ b/npc/jobs/2-2/alchemist.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= nestor_zulueta (Fusion), converted by Darkchild
//===== Current Version: =====================================
-//= 3.0
+//= 3.1
//===== Description: =========================================
//= [Official Conversion]
//= Job quest for Alchemist classes
@@ -15,6 +15,7 @@
//= 2.8 Fixed minor typo in test section. [L0ne_W0lf]
//= 2.9 Added Quest Log commands. [Kisuka]
//= 3.0 Removed the need for use of 'goto.' [L0ne_W0lf]
+//= 3.1 Added missing changequest commands. [Kisuka]
//============================================================
alde_alche,27,185,5 script Alchemist Guildsman#am 4_F_ALCHE,{
@@ -465,6 +466,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "He'll teach you how to do the experiments. Just tell him that";
mes "I sent you.";
set ALCH_Q,6;
+ changequest 2031,2032;
close;
}
else {
@@ -1090,6 +1092,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
mes "and cast away the last";
mes "vestiges of Merchant life!!";
set ALCH_Q,40;
+ changequest 2033,2034;
close;
}
else if (countitem(7134) > 2 && countitem(713) > 2 && countitem(507) > 0 && countitem(508) > 0 && countitem(509) > 0) {
@@ -1687,6 +1690,9 @@ alde_alche,101,184,4 script Master Alchemist#am 2_M_DYEINGER,{
if(checkquest(2039) != -1) {
changequest 2039,2040;
}
+ if(checkquest(2034) != -1) {
+ changequest 2034,2040;
+ }
mes "Ah, well done.";
mes "I can see that you";
mes "have learned all of";
@@ -1703,7 +1709,6 @@ alde_alche,101,184,4 script Master Alchemist#am 2_M_DYEINGER,{
mes "illustrious Union.";
mes "I hope you learn a lot...";
next;
-
if (.@jlevel == 50) {
getitem 7133,1; //Slim_Potion_Create_Book
mes "[Vincent Carsciallo]";
@@ -1983,7 +1988,7 @@ alde_alche,145,19,1 script Chief Researcher#am 1_M_LIBRARYMASTER,{
//= 1.0 Working.
//= npc/quests/counteragent_mixture.txt Also Needed
//= npc/quests/quests_yuno.txt Also Needed [Darkchild]
-//= 1.1 Fixed some minor bugs. Optimized some lines. Re-organized the script a bit.
+//= 1.1 Fixed some minor bugs. Optimized some lines. Re-organized the script a bit.
//= Giving Parmry NPC, Hammer and Old Book now waves the 50000 fee. (based of mRO website)
//= Having a joblvl of 50 allows you to skip Rasputin's test. (based of mRO website) [kobra_k88]
//= 1.2 fixed a few typos (have to hunt more) [Lupus]
diff --git a/npc/jobs/2-2/bard.txt b/npc/jobs/2-2/bard.txt
index 6bb4945a6..24d49cbce 100644
--- a/npc/jobs/2-2/bard.txt
+++ b/npc/jobs/2-2/bard.txt
@@ -485,7 +485,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "Turned into a dragon and ate him.";
next;
input .@Song$;
- if (.@Song$ != "There was a man")
+ if (.@Song$ != "There was a man")
set .@w_point,.@w_point+1;
mes "^3377FFThere was a man";
@@ -940,7 +940,7 @@ S_ChangeJob:
//============================================================
//= 07/06/05 : Added 1st Version. [Muad_Dib]
//= Converted to rAthena format by Dr.Evil
-//= Info about gifts and other info --> http://www.ragnainfo.net/forums/viewtopic.php?t=51467&start=0
+//= Info about gifts and other info --> http://www.ragnainfo.net/forums/viewtopic.php?t=51467&start=0
//= 1.1 Optimized, changed some stuff, fixed some bugs [Lupus]
//= 1.1a minor song test fix [Lupus]
//= 1.2 Fixed wrong item ID, added missing commands [Lupus]
diff --git a/npc/jobs/2-2/crusader.txt b/npc/jobs/2-2/crusader.txt
index e7d938a4a..d5bcd70ea 100644
--- a/npc/jobs/2-2/crusader.txt
+++ b/npc/jobs/2-2/crusader.txt
@@ -43,7 +43,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "You don't belong here, my friend.";
mes "Be advised to continue practicing yourself.";
close;
- }
+ }
else if(BaseJob != Job_Swordman) {
if(BaseJob == Job_Crusader) {
mes "Go and train yourself in preparation for the holy war that is coming. Victory will be in the hands of those who are most ready to receive it.";
@@ -68,7 +68,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "[Michael Halig]";
mes "As it happened one thousand years ago, evil forces will one day attack in droves in an attempt to take over the world once again.";
close;
- }
+ }
else if(CRUS_Q <= 3 && countitem(1004) && countitem(1009)) {
mes "Ah...";
mes "I see that you have been called to become a Crusader. We are assured of your will, but now we must test your capabilities.";
@@ -124,7 +124,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "[Michael Halig]";
mes "Train yourself more as a Swordsman and wait for your calling. I understand your intent, but as of now, you cannot join us.";
close;
- }
+ }
if (SkillPoint) {
mes "[Michael Halig]";
mes "You haven't finished learning everything as a Swordsman. Use all of your remaining skill points, and then return to me.";
@@ -550,7 +550,7 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
mes "4. Which Undead monster";
mes "has the highest HP?";
next;
- if (select("Ghoul:Skeleton Prisoner:Wraith:Zombie Prisoner") == 4)
+ if (select("Ghoul:Skeleton Prisoner:Wraith:Zombie Prisoner") == 4)
set .@cru_t,.@cru_t+10;
mes "[Gabriel Valentine]";
@@ -769,7 +769,7 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
mes "[Gabriel Valentine]";
mes "Don't stress, you need to know a lot in order to pass this test. In any case, I'll be waiting right here. When you think you're ready, come back, alright?";
close;
- }
+ }
else if(CRUS_Q == 8 || CRUS_Q == 9) {
mes "Like I mentioned before, you should go to Prontera Castle and meet with Bliant Piyord to take your next test. Good luck, and become a Crusder soon, alright?";
close;
@@ -938,7 +938,7 @@ prt_castle,35,151,5 script Patron Knight 4_M_CRU,{
mes "I shall be";
mes "waiting.";
close;
- }
+ }
else if(CRUS_Q == 10) {
mes "Congratulations.";
mes "You have completed";
diff --git a/npc/jobs/2-2/dancer.txt b/npc/jobs/2-2/dancer.txt
index e0b59c71d..6b4ddf5b0 100644
--- a/npc/jobs/2-2/dancer.txt
+++ b/npc/jobs/2-2/dancer.txt
@@ -286,15 +286,15 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
}
else if (DANC_Q >= 2 && DANC_Q <= 4) {
switch(DANC_Q) {
- case 2:
+ case 2:
setarray .@item[0], 938,909,501,2403;
setarray .@count[0], 20,3,5,1;
break;
- case 3:
+ case 3:
setarray .@item[0], 1055,2405;
setarray .@count[0], 5,1;
break;
- case 4:
+ case 4:
setarray .@item[0], 965,503,909,1020,2401;
setarray .@count[0], 2,5,20,10,1;
break;
@@ -889,7 +889,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
getitem 1950,1; //Rope
close;
}
-}
+}
// Waiting Room
//============================================================
@@ -1379,7 +1379,7 @@ OnOmg:
//============================================================
// Old changelog
//============================================================
-//= 1.1 Removed the warp I left here my accident, added a check for using
+//= 1.1 Removed the warp I left here my accident, added a check for using
//= Improved Concentration and arrow shower, people could get away with it
//= [Fredzilla]
//= 1.0 I tried to keep as much the same from the Jap version as possible
diff --git a/npc/jobs/2-2/monk.txt b/npc/jobs/2-2/monk.txt
index 221828908..90fccf68c 100644
--- a/npc/jobs/2-2/monk.txt
+++ b/npc/jobs/2-2/monk.txt
@@ -395,13 +395,13 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
next;
mes "[Sensei Moohae]";
switch (.@items[6]) {
- case 3: mes "Why the face? This is a test of your abilities."; break;
- case 4: mes "What's wrong? This is a test of your abilities."; break;
- case 5: mes "You do understand don't you? This is a test of your abilities."; break;
- case 6: mes "Don't look at me like that. This is a test of your abilities."; break;
- case 7: mes "You don't seem concerned, this is a test of your abilities You should take this seriously."; break;
- case 8: mes "It is a test of your abilities so make sure you acquire these on your own."; break;
- case 9: mes "Don't be concerned, I believe you can do it. This is only to test your abilities."; break;
+ case 3: mes "Why the face? This is a test of your abilities."; break;
+ case 4: mes "What's wrong? This is a test of your abilities."; break;
+ case 5: mes "You do understand don't you? This is a test of your abilities."; break;
+ case 6: mes "Don't look at me like that. This is a test of your abilities."; break;
+ case 7: mes "You don't seem concerned, this is a test of your abilities You should take this seriously."; break;
+ case 8: mes "It is a test of your abilities so make sure you acquire these on your own."; break;
+ case 9: mes "Don't be concerned, I believe you can do it. This is only to test your abilities."; break;
}
next;
mes "[Sensei Moohae]";
diff --git a/npc/jobs/2-2/rogue.txt b/npc/jobs/2-2/rogue.txt
index 52baaf58d..cf20d5203 100644
--- a/npc/jobs/2-2/rogue.txt
+++ b/npc/jobs/2-2/rogue.txt
@@ -11,7 +11,7 @@
//= 2.4 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
//= No longer uses function "F_BlockHigh"
//= 2.4a Deleted unused variables. [Samuray22]
-//= 2.4b Changed a Problem with JobLevel what made
+//= 2.4b Changed a Problem with JobLevel what made
//= impossible get a Gladius [3]. (bugreport:481) [Samuray22]
//= 2.4c Corrected a Typo error ";;" and a typo error with "rouge". (bugreport:909) [Samuray22]
//= 2.5 Added dummy "OnMyMobDead" labels. (bugreport:1100) [L0ne_W0lf]
@@ -1172,7 +1172,7 @@ OnTouch:
break;
case 4:
mes "[" + strcharinfo(0) + "]";
- mes "Hollgrehenn";
+ mes "Hollgrehenn";
break;
}
switch(select("enjoys:doesn't enjoy:likes:doesn't like")) {
@@ -1277,7 +1277,7 @@ OnTouch:
if (.@input < 1 || .@input > 10000) {
if (ROGUE_Q == 12)
mes "^3355FFIt didn't work. Please re-enter the four number combination.^000000";
- else
+ else
mes "^3355FFPlease enter a combination of four numbers.^000000";
close;
}
diff --git a/npc/jobs/2-2/sage.txt b/npc/jobs/2-2/sage.txt
index 46973a538..72bacfaf1 100644
--- a/npc/jobs/2-2/sage.txt
+++ b/npc/jobs/2-2/sage.txt
@@ -19,7 +19,7 @@
//= 2.4a Deleted unused variables. [Samuray22]
//= 2.5 Updated waiting room. (Removes global var) [L0ne_W0lf]
//= 2.5a Corrected some "mes"s without the getitemname. (bugreport:1564) [Samuray22]
-//= -Changed an incorrect "!=" to "==". (bugreport:1572)
+//= -Changed an incorrect "!=" to "==". (bugreport:1572)
//= -And Small Typo Error
//= 2.6 Fixed Kayron Grik cutin not being removed as reported by jc1991, bugreport:1825 [Brainstorm]
//= 2.6a Fixed a Little Bug with Whispers Summoned in the Last Test. (bugreport:2253) [Samuray22]
@@ -525,8 +525,8 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
switch (SAGE_Q) {
case 1:
//Feather_Of_Bird, Fluff, Iron_Ore
- setarray .@item[0], 916,914,1002;
- setarray .@count[0], 50,50,25;
+ setarray .@item[0], 916,914,1002;
+ setarray .@count[0], 50,50,25;
break;
case 2:
//Clover, Feather, Chinese_Ink
@@ -539,12 +539,12 @@ 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);
+ set .@size, (getarraysize(.@item)-1);
for( set .@i,0 ; .@i < .@size && countitem(.@item[.@i]) >= .@count[.@i] ; set .@i,.@i+1 );
- if(.@i == .@size) {
+ if(.@i == .@size) {
if (Zeny > 29999) {
for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
- delitem .@item[.@i], .@count[.@i];
+ delitem .@item[.@i], .@count[.@i];
Zeny -= 30000;
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
diff --git a/npc/jobs/2-2a/Creator.txt b/npc/jobs/2-2a/Creator.txt
index a8a81f0c9..59f7e17e2 100644
--- a/npc/jobs/2-2a/Creator.txt
+++ b/npc/jobs/2-2a/Creator.txt
@@ -4,19 +4,19 @@
//= Nana
//= finished, optimized and tested by Lupus
//===== Current Version: =====================================
-//= 1.3
+//= 1.4
//===== Description: =========================================
//= Advance Class jobchanger after kRO Normals.
//===== Additional Comments: =================================
//= 1.1 Made all into functions, additional checks, etc. [Lupus]
//= 1.2 Made numbers into constants. [Vicious]
//= 1.3 Now saves/restores all the quest skills [Lupus]
+//= 1.4 Corrected check for the Bioethics quest variable [Haru]
//============================================================
valkyrie,53,50,3 script Biochemist#Valkyrie 2_M_DYEINGER,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
- if (.@karma_d > 4) {
+ if (rand(1,10) > 4) {
mes "[Biochemist]";
mes "Congratulations.";
mes "Honor to the warriors!";
@@ -37,8 +37,7 @@ valkyrie,53,50,3 script Biochemist#Valkyrie 2_M_DYEINGER,{
mes "fought that earned me";
mes "a place in Valhalla...";
close;
- }
- else if (ADVJOB == Job_Creator && Class == Job_Merchant_High && JobLevel > 39) {
+ } else if (ADVJOB == Job_Creator && Class == Job_Merchant_High && JobLevel > 39) {
mes "[Biochemist]";
mes "Yes...";
mes "It's about time.";
@@ -63,7 +62,7 @@ valkyrie,53,50,3 script Biochemist#Valkyrie 2_M_DYEINGER,{
close;
}
jobchange Job_Creator;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Biochemist]";
mes "Congratulations!";
mes "As a Biochemist,";
@@ -71,64 +70,60 @@ valkyrie,53,50,3 script Biochemist#Valkyrie 2_M_DYEINGER,{
mes "vast knowledge for the";
mes "right purposes.";
close;
- }
- else {
- if (Class == Job_Creator && MISC_QUEST & 64 && getskilllv("AM_BIOETHICS") == 0) {
+ } else if (Class == Job_Creator && bioeth == 13 && getskilllv(AM_BIOETHICS) == 0) {
+ mes "[Biochemist]";
+ mes "Ah, have you come to";
+ mes "retrieve the memories";
+ mes "lost to you? Yes, you";
+ mes "must be here for the";
+ mes "secrets of life that";
+ mes "were once yours...";
+ next;
+ if (select("Yes:No") == 1) {
mes "[Biochemist]";
- mes "Ah, have you come to";
- mes "retrieve the memories";
- mes "lost to you? Yes, you";
- mes "must be here for the";
- mes "secrets of life that";
- mes "were once yours...";
+ mes "Close your eyes and";
+ mes "put your mind at rest.";
+ mes "We will return to your";
+ mes "past to recollect the";
+ mes "fragments of your lost";
+ mes "memories.";
next;
- if (select("Yes:No") == 1) {
- mes "[Biochemist]";
- mes "Close your eyes and";
- mes "put your mind at rest.";
- mes "We will return to your";
- mes "past to recollect the";
- mes "fragments of your lost";
- mes "memories.";
- next;
- mes "[Biochemist]";
- mes "When you open your eyes,";
- mes "you will clearly remember";
- mes "the secret of life. You will";
- mes "also remember the weight of";
- mes "responsibility in using these";
- mes "secrets for the right ends...";
- next;
- skill 238,1,0;
- mes "[Biochemist]";
- mes "Open your eyes...";
- mes "Now that you have";
- mes "remembered how to";
- mes "create artificial life, I only";
- mes "ask that you treat all of your";
- mes "creations with respect.";
- close;
- }
mes "[Biochemist]";
- mes "If you wish to";
- mes "retrieve your lost";
- mes "memories, please";
- mes "come back to me.";
- mes "The secret to creating";
- mes "life is no trifling thing...";
+ mes "When you open your eyes,";
+ mes "you will clearly remember";
+ mes "the secret of life. You will";
+ mes "also remember the weight of";
+ mes "responsibility in using these";
+ mes "secrets for the right ends...";
+ next;
+ skill AM_BIOETHICS,1,0;
+ mes "[Biochemist]";
+ mes "Open your eyes...";
+ mes "Now that you have";
+ mes "remembered how to";
+ mes "create artificial life, I only";
+ mes "ask that you treat all of your";
+ mes "creations with respect.";
close;
}
mes "[Biochemist]";
- mes "Welcome";
- mes "to Valhalla,";
- mes "the Hall of Honor.";
- next;
- mes "[Biochemist]";
- mes "Please make";
- mes "yourself comfortable";
- mes "while you are here.";
- mes "Honor to the warriors!";
+ mes "If you wish to";
+ mes "retrieve your lost";
+ mes "memories, please";
+ mes "come back to me.";
+ mes "The secret to creating";
+ mes "life is no trifling thing...";
close;
}
+ mes "[Biochemist]";
+ mes "Welcome";
+ mes "to Valhalla,";
+ mes "the Hall of Honor.";
+ next;
+ mes "[Biochemist]";
+ mes "Please make";
+ mes "yourself comfortable";
+ mes "while you are here.";
+ mes "Honor to the warriors!";
+ close;
}
-
diff --git a/npc/jobs/2-2e/SoulLinker.txt b/npc/jobs/2-2e/SoulLinker.txt
index 225b4ee7b..38fb47131 100644
--- a/npc/jobs/2-2e/SoulLinker.txt
+++ b/npc/jobs/2-2e/SoulLinker.txt
@@ -13,7 +13,7 @@
//= 1.2 Rescripted to Aegis 10.3 standards. [Samuray22]
//= 1.3 Slight updates and fixes to the script. [L0ne_W0lf]
//= Removes the use of labels, and corrects other errors.
-//= Removed the GM-use only NPC from the sec_in map.
+//= Removed the GM-use only NPC from the sec_in map.
//= No longer used a global var, uses an NPC var instead.
//= 1.3a Deleted Empty Color Tag. (bugreport:1572) [Samuray22]
//= 1.4 Replaced effect numerics with constants. [L0ne_W0lf]
diff --git a/npc/kafras/functions_kafras.txt b/npc/kafras/functions_kafras.txt
index 11d411e9d..dfce182d2 100644
--- a/npc/kafras/functions_kafras.txt
+++ b/npc/kafras/functions_kafras.txt
@@ -37,7 +37,7 @@
//= 5.1a Temporary? Added F_ClearGarbage to clear unused/outdated variables [Lupus]
//= 5.2 By default commented out custom Guilds Kafra's "Guild Storage". [Lupus]
//= 5.3 uncommented Guild Storage. Confirmed kRO feature. [Lupus]
-//= 5.4 added -Guide option (Kafra shows you nearest Guide) Work in progress.
+//= 5.4 added -Guide option (Kafra shows you nearest Guide) Work in progress.
//= Need all coords for all guides.. and somehow pass their coords to kafra.
//= Removed universal Kafra Pass, added 3 new Kafra Tickets [Lupus]
//= 5.4b temporary moved "-Guide" from the 1st menu punct [Lupus]
@@ -45,7 +45,7 @@
//= Cleaned up the menus a bit. Got rid of the proceeding "-" prefix.
//= 5.5b Missed a preceeding hyphen, which was screwing up teleporting. [L0ne_W0lf]
//= 5.6 Further dialog updates, added dynamic costs for cart and storage use. [L0ne_W0lf]
-//= Updated some functions to handle Guild Kafras the way they should.
+//= Updated some functions to handle Guild Kafras the way they should.
//= 5.6a Corrected a few wrong names in the teleport function. [L0ne_W0lf]
//= 5.7 Correced end message no longer displaying, and the duplicate names [L0ne_W0lf]
//= Thanks to Barron-Monster for pointing out the issues.
@@ -104,14 +104,14 @@ function script F_Kafra {
mes "In either case, why not stay awhile?";
mes "The air is eternally heavy with the";
mes "scent of pleasant wildflowers.";
- break;
+ break;
case 4:
// Louyang and Ayothaya specific message (obsolete)
mes "[Kafra Employee]";
mes "With our many Kafra";
mes "service locations, you're never";
mes "far from home.";
- break;
+ break;
case 5:
// NPC has it's own welcome message. (Display nothing)
break;
@@ -149,15 +149,15 @@ function script F_Kafra {
}
set .@menu$,"";
for (set .@i, 0; .@i < getarraysize(@K_Menu0$); set .@i, .@i + 1)
- set .@menu$, .@menu$ + @K_Menu0$[.@i] + ":";
+ set .@menu$, .@menu$ + @K_Menu0$[.@i] + ":";
set .@j, select (.@menu$) - 1;
if (@K_Menu0$[.@j] == "Save") {
return;
} else if (@K_Menu0$[.@j] == "Use Storage") {
// Do not charge for Guild Storage
- if(getarg(0) == 2)
+ if(getarg(0) == 2)
callfunc "F_KafStor",2,0,0;
- else
+ else
callfunc "F_KafStor",0,getarg(3),getarg(0);
next;
} else if (@K_Menu0$[.@j] == "Use Teleport Service") {
@@ -179,7 +179,7 @@ function script F_Kafra {
}
next;
} else if (@K_Menu0$[.@j] == "Rent a Pushcart") {
- if(callfunc("F_KafCart",getarg(0),getarg(4)) == 1)
+ if(callfunc("F_KafCart",getarg(0),getarg(4)) == 1)
next;
} else if (@K_Menu0$[.@j] == "Check Other Information") {
callfunc "F_KafInfo",getarg(2);
@@ -424,14 +424,14 @@ function script F_KafInfo {
//===================================================================
function script F_KafEnd {
mes "[Kafra Employee]";
- if(getarg(1)==1) {
+ if(getarg(1)==1) {
// Save
mes "Your Respawn Point";
mes "has been saved here";
mes getarg(2)+".";
mes "Thank you for using";
mes "the Kafra Services.";
- } else if(getarg(0)==0 || getarg(0)==5) {
+ } else if(getarg(0)==0 || getarg(0)==5) {
// Generic End
mes "We, here at Kafra Corporation,";
mes "are always endeavoring to provide you with the best services. We hope that we meet your adventuring needs and standards of excellence.";
@@ -525,7 +525,7 @@ function script F_SetKafCode {
next;
switch (select("Set new password -> 5000z:Cancel")) {
case 1: callsub S_SET,getarg(0),getarg(1); break;
- case 2: break;
+ case 2: break;
}
}
close2;
diff --git a/npc/kafras/kafras.txt b/npc/kafras/kafras.txt
index 55187e37b..e52d195ce 100644
--- a/npc/kafras/kafras.txt
+++ b/npc/kafras/kafras.txt
@@ -9,12 +9,12 @@
//= arg(0): 0 - Default Kafra message
//= 1 - Niflhiem Kafra message
//= 2 - Guild Kafra message
-//= arg(1): 1 - Disable teleport menu
+//= arg(1): 1 - Disable teleport menu
//= arg(2): 1 - Disable info menu
//= arg(3): Cost of Storage service
//= arg(4): Cost of Rent a Pushcart service
//===== Additional Comments: =================================
-//= 0.x Previous Authors:
+//= 0.x Previous Authors:
//= - L0ne_W0lf, kobra_k88, Samuray22, Evera, Lupus
//= 1.0 Merged and cleaned up Kafras. [Joseph]
//= 1.1 Added Izlude RE coordinates. [Euphy]
diff --git a/npc/mapflag/skillduration.txt b/npc/mapflag/skillduration.txt
index d3d96cae3..2140896a4 100644
--- a/npc/mapflag/skillduration.txt
+++ b/npc/mapflag/skillduration.txt
@@ -15,7 +15,7 @@
//= prontera mapflag adjust_unit_duration WZ_QUAGMIRE 250
//= Increases duration of Quagmire by 2.5 times in Prontera.
//===== Disclaimer: ==========================================
-//= Be aware that some skill units have their visual effect
+//= Be aware that some skill units have their visual effect
//= durations not controlled by the server (e.g. Storm Gust).
//===== Additional Comments: =================================
//= 1.0 - Initial script.
diff --git a/npc/mapflag/skillmodifier.txt b/npc/mapflag/skillmodifier.txt
index 60c623a36..0006066bb 100644
--- a/npc/mapflag/skillmodifier.txt
+++ b/npc/mapflag/skillmodifier.txt
@@ -5,7 +5,7 @@
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
-//= This mapflag allows you to modify the damage of any skill
+//= This mapflag allows you to modify the damage of any skill
//= in any map.
//= Example (1):
//= prontera mapflag adjust_skill_damage MG_FIREBOLT 50
diff --git a/npc/merchants/clothes_dyer.txt b/npc/merchants/clothes_dyer.txt
index 0eaaf153c..94fab1d5c 100644
--- a/npc/merchants/clothes_dyer.txt
+++ b/npc/merchants/clothes_dyer.txt
@@ -105,7 +105,7 @@ function Dyes;
if (Sex) Dyes(6,1); else Dyes(4,1,8,2,7,3);
case Job_SuperNovice:
if (Sex) Dyes(2,1,6,2,5,3,4,4); else Dyes(6,1,3,2,5,3,4,4);
- default:
+ default:
mes "Wow, I've never seen clothes like that before! I'm sorry, but I don't think I can paint it.";
close;
}
@@ -171,4 +171,4 @@ function Dyes {
mes "Your clothes have been dyed "+((.@s)?.@DyeName$[getarg((.@s-1)*2)]:.@DyeName$[0])+".";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/merchants/coin_exchange.txt b/npc/merchants/coin_exchange.txt
index 1e929bf86..160a7e5bc 100644
--- a/npc/merchants/coin_exchange.txt
+++ b/npc/merchants/coin_exchange.txt
@@ -8,7 +8,7 @@
//= [Official Conversion]
//= Coin redemption NPCs.
//===== Additional Comments: =================================
-//= 1.0 First version
+//= 1.0 First version
//= 1.1 Fixed checkweight. [Gepard]
//= 1.2 Optimized and merged into one file. [Euphy]
//============================================================
diff --git a/npc/merchants/dye_maker.txt b/npc/merchants/dye_maker.txt
index 4434c5c39..b8ca80d06 100644
--- a/npc/merchants/dye_maker.txt
+++ b/npc/merchants/dye_maker.txt
@@ -9,7 +9,7 @@
//= Quests to create the eight colored Dyestuffs.
//===== Additional Comments: =================================
//= 1.0 Fully working [kobra_k88]
-//= 1.1 Spell Checked [Nexon]
+//= 1.1 Spell Checked [Nexon]
//= 1.2 Rescripted to Aegis 10.3 standard. [L0ne_W0lf]
//= 1.2b Fixed typos in variable names [ultramage]
//= 1.3 Made the checks more dynamic [ultramage]
@@ -146,7 +146,7 @@ S_MakeDye:
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;
+ setarray .@count[0], 30, 1, 1;
set .@cost,3000;
set .@dyestuff,982;
break;
diff --git a/npc/merchants/gemstone.txt b/npc/merchants/gemstone.txt
index 1d8837f28..126dbeba4 100644
--- a/npc/merchants/gemstone.txt
+++ b/npc/merchants/gemstone.txt
@@ -13,7 +13,7 @@
//= in the cities/payon.txt
//= 1.1 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 1.2 Updated input with min/max values. [L0ne_W0lf]
-//= Added a checkweight.
+//= Added a checkweight.
//= 1.3 Fixed checks. [Euphy]
//============================================================
diff --git a/npc/merchants/inn.txt b/npc/merchants/inn.txt
index 56d8533cf..8b3a34420 100644
--- a/npc/merchants/inn.txt
+++ b/npc/merchants/inn.txt
@@ -17,7 +17,7 @@
//===== Additional Comments: =================================
//= 1.1 Blind Effect By Kobra_k88 (Taken from his old script)
//= I added it to all of them though [Darkchild]
-//= 1.1a Minor bug fixes and optimizations. Switched from @variables
+//= 1.1a Minor bug fixes and optimizations. Switched from @variables
//= to arguments.[kobra_k88]
//= 1.2 Rewrote inn script [Playtester]
//= 1.3 Added (finally) Rachel Inn Maid. Official warp
@@ -28,8 +28,8 @@
//= - Removed the Cancel dialog.
//= 1.6 More fixes, changed progression of "Rest"ing.
//= - Corrected Morroc NPCs. [L0ne_W0lf]
-//= 1.7 Corrected Payon NPC. [L0ne_W0lf]
-//= 1.8 Corrected Geffen NPC. [L0ne_W0lf]
+//= 1.7 Corrected Payon NPC. [L0ne_W0lf]
+//= 1.8 Corrected Geffen NPC. [L0ne_W0lf]
//= 1.9 Added the Inn for Al De baran. [L0ne_W0lf]
//= 2.0 Added Inn for the Town of Veins. [L0ne_W0lf]
//= 2.1 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
diff --git a/npc/merchants/kunai_maker.txt b/npc/merchants/kunai_maker.txt
index b2c624bb0..d3b70f35b 100644
--- a/npc/merchants/kunai_maker.txt
+++ b/npc/merchants/kunai_maker.txt
@@ -7,7 +7,7 @@
//===== Description: =========================================
//= Trades a few shurikens + ninja stones for elemental kunai.
//===== Additional Comments: =================================
-//= 1.0 Added the npc. It uses a function that sends the item
+//= 1.0 Added the npc. It uses a function that sends the item
//= id of the 2 required items plus the amount. Can trade
//= up to 500 units (5,000 kunais) at once. [erKURITA]
//= 1.1 Officialized script [Playtester]
diff --git a/npc/merchants/old_pharmacist.txt b/npc/merchants/old_pharmacist.txt
index b866aa0db..d74b3287d 100644
--- a/npc/merchants/old_pharmacist.txt
+++ b/npc/merchants/old_pharmacist.txt
@@ -212,7 +212,7 @@ L_Making:
Zeny -= (.@max*getarg(1));
delitem getarg(0),.@max*2;
delitem 713,.@max; //Empty_Bottle
- getitem getarg(2),.@max;
+ getitem getarg(2),.@max;
break;
case 2:
next;
@@ -238,7 +238,7 @@ L_Making:
Zeny -= (.@amount*getarg(1));
delitem getarg(0),.@amount*2;
delitem 713,.@amount; //Empty_Bottle
- getitem getarg(2),.@amount;
+ getitem getarg(2),.@amount;
break;
case 3:
next;
diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt
index d417c6ba1..823fbea66 100644
--- a/npc/merchants/refine.txt
+++ b/npc/merchants/refine.txt
@@ -24,9 +24,9 @@
//= hacker that can change item [dafide18]
//= 1.5 Fixed crashing due to badly used callfunc's [Skotlex]
//= Lupus, don't rollback this important fix again! >.<
-//= 1.5a Corrected an unneeded callfunc, fixed the anti-bot
+//= 1.5a Corrected an unneeded callfunc, fixed the anti-bot
//= exploit ruining the safe refine loop. [Skotlex]
-//= 1.5b Fixed Spelling mistakes. [Nexon]
+//= 1.5b Fixed Spelling mistakes. [Nexon]
//= 1.6 Replaced all breaks for ends as per the new script engine [Skotlex]
//= 1.7 Added Einbroch Refiners (Custom names ^^;) and a duplicated BS Shop. [Poki#3]
//= 1.8 Added Lighthalzen Refiners (Custom names again ^^;) [Poki#3]
@@ -661,27 +661,27 @@ function script refinemain {
case 1: //Refine Level 1 Weapon
set .@price,50;
set .@material,1010;
- set .@safe,7;
+ set .@safe,7;
break;
case 2: //Refine Level 2 Weapon
set .@price,200;
set .@material,1011;
- set .@safe,6;
+ set .@safe,6;
break;
case 3: //Refine Level 3 Weapon
set .@price,5000;
set .@material,984;
- set .@safe,5;
+ set .@safe,5;
break;
case 4: //Refine Level 4 Weapon
set .@price,20000;
set .@material,984;
- set .@safe,4;
+ set .@safe,4;
break;
case 5: //Refine other stuff?
set .@price,2000;
set .@material,985;
- set .@safe,4;
+ set .@safe,4;
break;
}
if(.@features != 1) {
@@ -809,7 +809,7 @@ function script refinemain {
} else
set .@menu2,2;
switch(.@menu2){
- case 1:
+ case 1:
set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
break;
case 2:
@@ -870,7 +870,7 @@ function script refinemain {
mes "You changed it...";
mes "Get out before I stun you with my Hammer!!";
close;
- }
+ }
mes "Clang, clang!!!";
if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
failedrefitem .@part;
diff --git a/npc/merchants/renters.txt b/npc/merchants/renters.txt
index f6d4376cc..5944932e9 100644
--- a/npc/merchants/renters.txt
+++ b/npc/merchants/renters.txt
@@ -224,4 +224,4 @@ hu_in01,381,304,5 script Falcon Breeder#hnt 8W_SOLDIER,{
mes "...Heh heh, jealous?";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/merchants/shops.txt b/npc/merchants/shops.txt
index a1ab894d0..0a0787600 100644
--- a/npc/merchants/shops.txt
+++ b/npc/merchants/shops.txt
@@ -2240,4 +2240,4 @@ OnInit:
//= 1.9a Pet Merchant -> Lighthalzen [erKURITA]
//= 1.9b Added items to Chivas Regal
//= 1.9c Slight update for Rachel shop: Tool Dealer -> Fruit Gardener [L0ne_W0lf]
-//============================================================ \ No newline at end of file
+//============================================================
diff --git a/npc/merchants/wander_pet_food.txt b/npc/merchants/wander_pet_food.txt
index 6fb0b41f7..42aba081d 100644
--- a/npc/merchants/wander_pet_food.txt
+++ b/npc/merchants/wander_pet_food.txt
@@ -9,7 +9,7 @@
//= Trade Broken Liquor Jars and alcohol for wanderer
//= pet food, 'Spirit Liquor'
//===== Additional Comments: =================================
-//= 1.0 First version
+//= 1.0 First version
//============================================================
prontera,218,218,3 script Pet Enthusiast 4W_KID,{
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index 3f7d1d20a..559ba151f 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -215,7 +215,7 @@ function script F_ItemName {
}
//////////////////////////////////////////////////////////////////////////////////
-// *** Function "F_SaveQuestSkills": Store learnt quest skills
+// *** Function "F_SaveQuestSkills": Store learnt quest skills
//////////////////////////////////////////////////////////////////////////////////
function script F_SaveQuestSkills {
set ADV_QSK,0; set ADV_QSK2,0;
diff --git a/npc/other/arena/arena_lvl60.txt b/npc/other/arena/arena_lvl60.txt
index 8ccd45cf0..c3d33f333 100644
--- a/npc/other/arena/arena_lvl60.txt
+++ b/npc/other/arena/arena_lvl60.txt
@@ -947,7 +947,7 @@ OnTimer4000:
end;
OnTimer60000:
- donpcevent "cast#60::OnTimeOver2";
+ donpcevent "cast#60::OnTimeOver2";
donpcevent "arn_warp_60::OnOut";
donpcevent "#arn_timer_60::OnStop";
donpcevent "alloff#60::OnEnable";
@@ -956,7 +956,7 @@ OnTimer60000:
OnStop:
stopnpctimer;
- end;
+ end;
}
- script arn_warp_60 -1,{
diff --git a/npc/other/arena/arena_party.txt b/npc/other/arena/arena_party.txt
index 0f4e53ca5..218a6de90 100644
--- a/npc/other/arena/arena_party.txt
+++ b/npc/other/arena/arena_party.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Izlude Party Arena
+//= Izlude Party Arena
//===== By: ==================================================
//= SinSloth
//===== Current Version: =====================================
@@ -1139,7 +1139,7 @@ OnTimer4000:
end;
OnTimer60000:
- donpcevent "cast#pt::OnTimeOver2";
+ donpcevent "cast#pt::OnTimeOver2";
donpcevent "arn_warp_pt::OnOut";
donpcevent "#arn_timer_pt::OnStop";
donpcevent "alloff#pt::OnEnable";
@@ -1148,7 +1148,7 @@ OnTimer60000:
OnStop:
stopnpctimer;
- end;
+ end;
}
- script arn_warp_pt -1,{
diff --git a/npc/other/bulletin_boards.txt b/npc/other/bulletin_boards.txt
index 7c1d4d0e3..66e14c577 100644
--- a/npc/other/bulletin_boards.txt
+++ b/npc/other/bulletin_boards.txt
@@ -44,7 +44,7 @@ alberta,111,59,5 script Bulletin Board#1 2_BULLETIN_BOARD,{
next;
mes "[Alberta: The Port City]";
mes "From Alberta, ^1F3A11Payon^000000 is located to the Northwest. You can board passenger ships at the dock to travel to ^5E5C69Izlude^000000.";
- mes "Enjoy your travels.";
+ mes "Enjoy your travels.";
close;
}
@@ -113,12 +113,12 @@ payon,178,108,5 script Bulletin Board#06 2_BULLETIN_BOARD,{
next;
mes "[Payon: The Mountain City]";
mes "From Payon, ^123972Alberta^000000 is located to the Southeast, and ^866C4BMorroc^000000 is to the West. ^5E5C69Izlude^000000 and ^6D6FE0Prontera^000000 are North of Payon.";
- mes "Enjoy your travels.";
+ mes "Enjoy your travels.";
close;
}
pay_arche,79,31,5 script Bulletin Board#07 2_BULLETIN_BOARD,{
- mes "[Archer Village]";
+ mes "[Archer Village]";
mes "Welcome to the Payon Archer Village where Novices can change their jobs to Archer.";
next;
mes "[Archer Village]";
@@ -451,7 +451,7 @@ moc_fild19,107,101,5 script Bulletin Board#20 2_BULLETIN_BOARD,{
gef_tower,55,142,5 script Bulletin Board#21 2_BULLETIN_BOARD,{
mes "[Geffen Dungeon]";
- mes "^6B1312Caution!^000000";
+ mes "^6B1312Caution!^000000";
mes "Geffen dungeon is consisted of 3 levels";
mes "is too difficult for new adventurers to venture.";
mes "As main monsters constantly appear,";
diff --git a/npc/other/card_trader.txt b/npc/other/card_trader.txt
index 40484bbdd..8838bafb9 100644
--- a/npc/other/card_trader.txt
+++ b/npc/other/card_trader.txt
@@ -193,4 +193,4 @@ prontera,115,90,0 script Putty 4_F_01,{
break;
}
close;
-} \ No newline at end of file
+}
diff --git a/npc/other/comodo_gambling.txt b/npc/other/comodo_gambling.txt
index f8048e23a..28a2e799d 100644
--- a/npc/other/comodo_gambling.txt
+++ b/npc/other/comodo_gambling.txt
@@ -572,4 +572,4 @@ mjolnir_02,85,362,3 script Blacksmith Miner 4_F_JOB_BLACKSMITH,{
mes "you at a cheap price.";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/other/divorce.txt b/npc/other/divorce.txt
index ce497018b..c95589d74 100644
--- a/npc/other/divorce.txt
+++ b/npc/other/divorce.txt
@@ -38,8 +38,8 @@ nif_in,190,112,5 script Deviruchi#divorce 4_DEVIRUCHI,{
// mes "popular nowadays, heh heh~";
// close;
// }
-// else
- if (!getpartnerid()) {
+// else
+ if (!getpartnerid()) {
mes "Bwah hah hah~!";
mes "That look in your eyes~!";
if (Sex) {
diff --git a/npc/other/fortune.txt b/npc/other/fortune.txt
index b622c1fac..a596377d1 100644
--- a/npc/other/fortune.txt
+++ b/npc/other/fortune.txt
@@ -4,6 +4,8 @@
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.0
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Fortune teller NPC. Displays random Card image.
diff --git a/npc/other/hugel_bingo.txt b/npc/other/hugel_bingo.txt
index 0a47b4f00..2b1e8f410 100644
--- a/npc/other/hugel_bingo.txt
+++ b/npc/other/hugel_bingo.txt
@@ -449,7 +449,7 @@ OnTouch:
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]+" ]";
- else mes "[ "+$@bingoresult+"th Number - "+$bingo[$@bingoresult -1]+" ]";
+ else mes "[ "+$@bingoresult+"th Number - "+$bingo[$@bingoresult -1]+" ]";
mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ["+@bingo_a5$+"]";
mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ["+@bingo_b5$+"]";
mes "["+@bingo_c1$+"] ["+@bingo_c2$+"] ["+@bingo_c3$+"] ["+@bingo_c4$+"] ["+@bingo_c5$+"]";
diff --git a/npc/other/marriage.txt b/npc/other/marriage.txt
index 5cb1946d6..be909a207 100644
--- a/npc/other/marriage.txt
+++ b/npc/other/marriage.txt
@@ -11,7 +11,7 @@
//= Currently does not support same-Sex marriages.
//= Old script located in: npc/custom/marriage.txt
//= - Variable in use: wedding_sign (max 1)
-//= - Variable in use: $@wedding (max 1)
+//= - Variable in use: $@wedding (max 1)
//= - Variable in use: $@wed_groom$ $@wed_bride$
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
@@ -315,17 +315,15 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
next;
while(1) {
input .@name$;
- if (.@name$ != strcharinfo(0)) {
- mes "[Marry Happy]";
- mes "Hmmm, you have to write";
- mes "down your name exactly as";
- mes "it is displayed. Maybe you";
- mes "need to copy and paste it?";
- mes "Anyway, let's try it again.";
- next;
- }
- else
+ if (.@name$ == strcharinfo(0))
break;
+ mes "[Marry Happy]";
+ mes "Hmmm, you have to write";
+ mes "down your name exactly as";
+ mes "it is displayed. Maybe you";
+ mes "need to copy and paste it?";
+ mes "Anyway, let's try it again.";
+ next;
}
mes "[Marry Happy]";
mes "Great, it looks like we";
diff --git a/npc/other/mercenary_rent.txt b/npc/other/mercenary_rent.txt
index 7b2a47d0a..422a5ac5b 100644
--- a/npc/other/mercenary_rent.txt
+++ b/npc/other/mercenary_rent.txt
@@ -271,7 +271,7 @@ pay_arche,99,167,4 duplicate(Mercenary Manager#main) Mercenary Manager#Bow 4_M_J
close;
}
mes "[Mercenary Goods Merchant]";
- if (.@input == 1)
+ if (.@input == 1)
mes "Here's your " + getitemname(.@item[.@m]) + ".";
else {
mes "Here you are, this is exactly";
diff --git a/npc/other/monster_museum.txt b/npc/other/monster_museum.txt
index 6917a9f93..fae93fd3e 100644
--- a/npc/other/monster_museum.txt
+++ b/npc/other/monster_museum.txt
@@ -11,7 +11,7 @@
//= - Information about various monsters
//===== Additional Comments: =================================
// 07/06/05 : Added 1st Version. [Muad_Dib]
-//= Adapted to rAthena Scripting Language by [Lance]
+//= Adapted to rAthena Scripting Language by [Lance]
//= 1.1a Fixed typos [Haplo]
//= 1.2 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
//= 1.3 Added a Missing "case 1:". [Samuray22]
diff --git a/npc/other/monster_race.txt b/npc/other/monster_race.txt
index 3b2dd618b..c3c54a426 100644
--- a/npc/other/monster_race.txt
+++ b/npc/other/monster_race.txt
@@ -19,7 +19,7 @@
//= 1.6 Updated experience rewards. [L0ne_W0lf]
//= 1.7 Optimization, -4000 lines (more can still be done). [Euphy]
//= 1.8 Optimized.
-//= Fixed Medal Distributor (Dual Race) disappears accordingly. [Joseph]
+//= Fixed Medal Distributor (Dual Race) disappears accordingly. [Joseph]
//= 1.9 Updated RE/Pre-RE EXP. [Euphy]
//= 2.0 Added GM management NPC. [Euphy]
//============================================================
@@ -293,7 +293,7 @@ OnTimer9000:
function WN {
set .@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");
+ return ((.@n <= 3)?((.@n == 1)?"1st":((.@n == 2)?"2nd":"3rd")):.@n+"th");
}
OnInit:
@@ -334,7 +334,7 @@ p_track01,67,45,5 script Medal Distributor#single 4_F_RACING,{
mes "after the race finishes. Prize";
mes "Medals may be given to Wayne";
mes "in Hugel in exchange for items.";
- next;
+ next;
if ($@monster_race) {
if (monster_race_1 == $@monster_race) {
mes "[Medal Distributor]";
@@ -670,7 +670,7 @@ hugel,58,72,6 script Eckar Ellebird#single 4_M_NFMAN,{
mes "we ask that you please";
mes "wait a little while longer.";
close;
- }
+ }
} else {
if ($@mon_time_1_1 == 1) {
mes "[Eckar Ellebird]";
@@ -1437,7 +1437,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "^0000FFMonster "+.@m+"^000000, "+.@w$[0];
mes .@w$[1]+".";
mes "Are you sure you want";
- mes "to choose this monster?";
+ mes "to choose this monster?";
if (select("Yes:No") == 2) {
mes "[Ticket Helper]";
mes "You have canceled";
@@ -1445,7 +1445,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "I understand. Perhaps";
mes "you'd feel more comfortable";
mes "checking the monsters first?";
- close;
+ close;
}
next;
if (!.@m1) {
@@ -1542,7 +1542,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000";
mes "for this Dual Monster Race.";
next;
- }
+ }
mes "[Ticket Helper]";
mes "The start of the race will be";
mes "announced through a broadcast.";
@@ -1551,7 +1551,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "positions. Thank you, and";
mes "have a good time!";
viewpoint 1,43,35,0,0xFF0000;
- close;
+ close;
}
OnInit:
@@ -1841,10 +1841,10 @@ OnMyMobDead:
function MN {
setarray .@n$[1], "poring","lunatic","savagebebe","desertwolf","deviruchi","baphomet";
for (set .@i, 1; .@i <= getarraysize(.@n$); set .@i, .@i + 1) {
- if (compare(strnpcinfo(0),.@n$[.@i]))
+ if (compare(strnpcinfo(0),.@n$[.@i]))
break;
}
- return .@i;
+ return .@i;
}
OnInit:
@@ -2302,7 +2302,7 @@ ein_in01,85,208,5 script Ei'felle#repay01 4_M_EINMAN2,{
setarray .@mw$, "Nagan:Immaterial Sword:Mysteltainn:Byeollungum:Star Dust Blade:Caesar's Sword:Ice Falchion:Excalibur:Edge:Cutlus:Solar Sword:Tirfing:Fireblend";
setarray .@mw, 1130,1141,1138,1140,1148,1134,1131,1137,1132,1135,1136,1139,1133;
break;
- case 2:
+ case 2:
setarray .@mw$, "Dragon Slayer:Masamune:Muramasa:Schweizersabel:Executioner:Zweihander:Katzbalger";
setarray .@mw, 1166,1165,1164,1167,1169,1168,1170;
break;
@@ -2344,7 +2344,7 @@ ein_in01,85,208,5 script Ei'felle#repay01 4_M_EINMAN2,{
case 12:
setarray .@mw$, "Oriental Lute:Electric Guitar";
setarray .@mw, 1918,1913;
- break;
+ break;
}
set .@j, select (.@mw$+":Cancel") - 1;
explode(.@mw$,.@mw$,":");
@@ -2804,7 +2804,7 @@ hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{
set .@m$, .@m$ + .@pm[.@i] + " Prize medal:";
set .@m, select (.@m$) - 1;
switch (.@m) {
- case 0:
+ case 0:
setarray .@mr$, "2 Hinale Leaflets:2 Aloe Leaflets:1 Mastela Fruit:5 Witch Starsands:4 Condensed Red Potions";
setarray .@mr, 520,2,521,2,522,1,1061,5,545,4;
break;
@@ -2862,7 +2862,7 @@ hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{
mes "races, fair adventurer~";
delitem 7515,.@pm[.@m];
getitem .@mr[.@m2*2],.@mr[((.@m2*2)+1)];
- close;
+ close;
}
}
@@ -2968,7 +2968,7 @@ p_track02,69,31,1 script Blacksmith Guildsman#dou 4_F_JOB_BLACKSMITH,{
mes "It's too hard for me to win~!";
emotion e_swt2;
close;
- }
+ }
mes "[Blacksmith Guildsman]";
mes "Run! Go go go!";
mes "I need to win some";
diff --git a/npc/other/turbo_track.txt b/npc/other/turbo_track.txt
index 21aaa24d7..2d9b967d8 100644
--- a/npc/other/turbo_track.txt
+++ b/npc/other/turbo_track.txt
@@ -6,7 +6,7 @@
//= 1.2
//===== Description: =========================================
//= [Official Conversion]
-//= Turbo Track Course:
+//= Turbo Track Course:
//= - Solo Mode/Time Attack
//= - Normal (Non-PVP) - 4/8/16 Person
//= - Expert (PVP) - 4/8/16 Person
@@ -1216,14 +1216,14 @@ OnTouch:
mes "I wouldn't be able to do business without the Kafra Services. Thank you, Kafra!";
mes " ";
mes "[Chief Mahnsoo]";
- mes "I looove you Kafra!^000000";
+ mes "I looove you Kafra!^000000";
} else {
mes "^4d4dff[Karkatan]";
mes "My land suffered from poor customer service...until Kafra came along!";
mes " ";
mes "[Curator Guiss]";
mes "Oh, Kafra is simply the best!^000000";
- }
+ }
next;
mes "^ff0000Turbo Track";
mes "^ff0000Traps in the Cursed Desert!";
@@ -1730,7 +1730,7 @@ OnTouch:
case 2:
mapannounce strnpcinfo(4),strcharinfo(0) +" has just passed the Cube Hills course!",bc_map,"0x70DBDB";
warp strnpcinfo(4),316,365;
- end;
+ end;
case 3:
mapannounce strnpcinfo(4),strcharinfo(0) +" has just passed the Cursed Desert!",bc_map,"0x70DBDB";
switch (rand(1,4)) {
@@ -1951,9 +1951,9 @@ 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) {
- if (getarg(0) == .@w_n$[.@i])
+ if (getarg(0) == .@w_n$[.@i])
return .@i;
- }
+ }
}
OnInit:
@@ -2089,7 +2089,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "However, you cannot receive";
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;
next;
if (tt_rank > $ttranks[1]) {
@@ -2300,7 +2300,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "you any Turbo Track Points";
mes "since you would exceed the";
mes "maximum limit. Sorry...";
- }
+ }
} else {
mes "Oh right, your current";
set my_point,tt_point;
@@ -2430,7 +2430,7 @@ OnTimer36000:
OnTimer40000:
set .@w$,callfunc("F_tt");
- if (compare(.@w$,"4"))
+ if (compare(.@w$,"4"))
mapannounce strnpcinfo(4),"[Blacksmith Union]",bc_map,"0x33FF66";
else
mapannounce strnpcinfo(4),"[Al De Baran Kafra Corporation Headquarters]",bc_map,"0x33FF66";
diff --git a/npc/pre-re/guides/guides_alberta.txt b/npc/pre-re/guides/guides_alberta.txt
index ebdc144e9..f4a0d12ce 100644
--- a/npc/pre-re/guides/guides_alberta.txt
+++ b/npc/pre-re/guides/guides_alberta.txt
@@ -154,4 +154,4 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
end;
}
-alberta,120,60,3 duplicate(AlbGuide) Guide#2alb 8W_SOLDIER \ No newline at end of file
+alberta,120,60,3 duplicate(AlbGuide) Guide#2alb 8W_SOLDIER
diff --git a/npc/pre-re/guides/guides_moscovia.txt b/npc/pre-re/guides/guides_moscovia.txt
index b71f35006..49975358f 100644
--- a/npc/pre-re/guides/guides_moscovia.txt
+++ b/npc/pre-re/guides/guides_moscovia.txt
@@ -87,4 +87,4 @@ moscovia,161,76,4 script Moscovia Guide#mosk 4_F_RUSWOMAN1,{
mes "Take care.";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/pre-re/guides/guides_payon.txt b/npc/pre-re/guides/guides_payon.txt
index 4efc96737..9f8e4a776 100644
--- a/npc/pre-re/guides/guides_payon.txt
+++ b/npc/pre-re/guides/guides_payon.txt
@@ -14,7 +14,7 @@
//= to Muad_Dib
//= 1.3a Fixed some problems with duplicated text, thanks to muad_dib [MasterOfMuppets]
//= 1.4 Fitted the many lines into 1 or 2, and corrected some typos [erKURITA]
-//= 1.4a Tixed Archer Village Guide [Lupus]
+//= 1.4a Tixed Archer Village Guide [Lupus]
//= 1.5 Removed Duplicates [Silent]
//= 1.6 Rescripted to official 10.3 standards. [L0ne_W0lf]
//============================================================
diff --git a/npc/pre-re/jobs/1-1/merchant.txt b/npc/pre-re/jobs/1-1/merchant.txt
index 59b612e5b..934dc0300 100644
--- a/npc/pre-re/jobs/1-1/merchant.txt
+++ b/npc/pre-re/jobs/1-1/merchant.txt
@@ -710,9 +710,9 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
mes "[Union Staff Kay]";
mes "Hey hey. That number's not valid! Enter a value from 1000000 to 5000000. got it?";
next;
- }
- else
+ } else {
break;
+ }
}
mes "[Union Staff Kay]";
if (.@where_village == 1)
diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt
index 2f15fa995..a57bf5190 100644
--- a/npc/pre-re/jobs/novice/novice.txt
+++ b/npc/pre-re/jobs/novice/novice.txt
@@ -175,7 +175,7 @@ new_1-2,100,29,4 script Receptionist#nv1 4_M_04,{
close;
}
}
-}
+}
new_1-1,53,114,4 script Shion#nv1 4_F_JOB_HUNTER,{
if (nov_get_item04 > 9 || nov_get_item05 > 9) {
@@ -2654,7 +2654,7 @@ new_1-3,95,30,4 script Trainer#nv1::NovHoffman 4_M_02,{
}
else {
warp "new_1-3",96,21;
- }
+ }
end;
case 2:
mes "[Hoffman]";
@@ -3859,7 +3859,7 @@ S_UserJobchoice:
mes "[Hanson]";
mes "The Mage Academy is located in the NorthWest in town. Please remember this.";
}
- else if (@menu == 3) {
+ else if (@menu == 3) {
mes "to become a Merchant.";
mes "You will be sent to";
mes "the town of Alberta.";
diff --git a/npc/pre-re/kafras/kafras.txt b/npc/pre-re/kafras/kafras.txt
index e900a0fa6..85d2ae49e 100644
--- a/npc/pre-re/kafras/kafras.txt
+++ b/npc/pre-re/kafras/kafras.txt
@@ -9,7 +9,7 @@
//= arg(0): 0 - Default Kafra message
//= 1 - Niflhiem Kafra message
//= 2 - Guild Kafra message
-//= arg(1): 1 - Disable teleport menu
+//= arg(1): 1 - Disable teleport menu
//= arg(2): 1 - Disable info menu
//= arg(3): Cost of Storage service
//= arg(4): Cost of Rent a Pushcart service
diff --git a/npc/pre-re/mobs/fields/splendide.txt b/npc/pre-re/mobs/fields/splendide.txt
index 67c054b1e..70f145e08 100644
--- a/npc/pre-re/mobs/fields/splendide.txt
+++ b/npc/pre-re/mobs/fields/splendide.txt
@@ -27,4 +27,4 @@ spl_fild02,0,0,0,0 monster Luciola Vespa 1994,15,0,0,0
spl_fild03,0,0,0,0 monster Luciola Vespa 1994,35,0,0,0
spl_fild03,0,0,0,0 monster Cornus 1992,25,0,0,0
spl_fild03,0,0,0,0 monster Naga 1993,20,0,0,0
-spl_fild03,0,0,0,0 monster Tendril Lion 1991,1,3600000,0,0 \ No newline at end of file
+spl_fild03,0,0,0,0 monster Tendril Lion 1991,1,3600000,0,0
diff --git a/npc/pre-re/mobs/fields/veins.txt b/npc/pre-re/mobs/fields/veins.txt
index 73577013a..5a9a221bc 100644
--- a/npc/pre-re/mobs/fields/veins.txt
+++ b/npc/pre-re/mobs/fields/veins.txt
@@ -70,7 +70,7 @@ ve_fild05,123,65,50,21 monster Sleeper 1386,5,120000,0,0
ve_fild05,152,139,15,17 monster White Plant 1082,5,1800000,0,0
ve_fild05,152,139,5,5 monster Shining Plant 1083,1,2400000,0,0
-//======== [Veins Field-06] ===================================
+//======== [Veins Field-06] ===================================
ve_fild06,0,0,0,0 monster Stapo 1784,2,300000,0,0
ve_fild06,0,0,0,0 monster Stapo 1784,1,1800000,0,0
ve_fild06,0,0,0,0 monster Shining Plant 1083,1,1020000,0,0
diff --git a/npc/pre-re/scripts_main.conf b/npc/pre-re/scripts_main.conf
index a2c1fcc1c..8e75dd332 100644
--- a/npc/pre-re/scripts_main.conf
+++ b/npc/pre-re/scripts_main.conf
@@ -4,7 +4,7 @@
// The idea of this new system is to make scripts more organized
// since the old system was rather messy with all the NPCs in one
// file. Now scripts are organized in to files arraged by type.
-// Custom scripts are now in scripts_custom.conf, all other
+// Custom scripts are now in scripts_custom.conf, all other
// scripts are deemed as 'official'. You should place your NPCs
// in to scripts_custom.conf to follow the trend.
//
diff --git a/npc/pre-re/warps/cities/rachel.txt b/npc/pre-re/warps/cities/rachel.txt
index df2821535..2f16964c3 100644
--- a/npc/pre-re/warps/cities/rachel.txt
+++ b/npc/pre-re/warps/cities/rachel.txt
@@ -7,14 +7,14 @@
//===== Description: =========================================
//= Warp Points for Rachel City, shops & other locations
//===== Additional Comments: =================================
-//= 1.0 Added the official warps and commented out the
+//= 1.0 Added the official warps and commented out the
//= "custom duplicates" for future checkout. Special thanks
//= to RockmanEXE who provided all the info. [erKURITA]
//= 1.1 Added warp to Veins Field [Playtester]
//= 1.2 Fully official rachel warps [Playtester]
//= 1.2a Added missing warp (Pope's office entryway -> temple) [L0ne_W0lf]
//= 1.3 Updated Rachel -> Veins Field warp. [L0ne_W0lf]
-//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
+//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
//============================================================
rachel,150,249,0 warp rachel01 1,1,ra_temple,120,30
diff --git a/npc/quests/bard_quest.txt b/npc/quests/bard_quest.txt
index 9b365d0e2..508284350 100644
--- a/npc/quests/bard_quest.txt
+++ b/npc/quests/bard_quest.txt
@@ -16,8 +16,8 @@
//= 1.1 Fixed bug, optimized. Not yet final version [Lupus]
//=
//= Variables:
-//= .@random : temp var
-//= .@inputstr$ : temp var
+//= .@random : temp var
+//= .@inputstr$ : temp var
//=
//= This Quest has relation with brisingamen_seal.txt (Seals)
//= 1.2 Changed variable to "gef_bards_q" to avoid job quest conflict. [L0ne_W0lf]
diff --git a/npc/quests/cooking_quest.txt b/npc/quests/cooking_quest.txt
index 4c2a84ea7..b3f381451 100644
--- a/npc/quests/cooking_quest.txt
+++ b/npc/quests/cooking_quest.txt
@@ -18,7 +18,7 @@
//= fixed bugs. Tested, fully working [Lupus]
//= 1.5 More fixes [Lupus]
//= 1.6 Quest is now up to iRO 10.3 standards. [L0ne_W0lf]
-//= - Not sure what the EnableItemMove is for, as there is no
+//= - Not sure what the EnableItemMove is for, as there is no
//= command to disable being able to move items.
//= 1.6a Corrected a bad cutin, a Typo error ";;" and a bad delitem (bugreport:911) [Samuray22]
//= 1.6b Corrected a "donpcevent" missing a ":". (bugreport:962) [Samuray22]
diff --git a/npc/quests/eye_of_hellion.txt b/npc/quests/eye_of_hellion.txt
index 6feb07f81..0acbf6c05 100644
--- a/npc/quests/eye_of_hellion.txt
+++ b/npc/quests/eye_of_hellion.txt
@@ -661,7 +661,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
OnTouch:
if (HELLIONQ == 57 && countitem(7334) > 0) {
- specialeffect2 EF_HEAL2;
+ specialeffect2 EF_HEAL2;
specialeffect EF_HEAL2;
mes "^3355FFOne of the Tablet Pieces";
mes "that you have is beginning to";
diff --git a/npc/quests/first_class/tu_acolyte.txt b/npc/quests/first_class/tu_acolyte.txt
index c788462bd..854b0a26a 100644
--- a/npc/quests/first_class/tu_acolyte.txt
+++ b/npc/quests/first_class/tu_acolyte.txt
@@ -247,7 +247,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "is the most necessary";
mes "skill for an Acolyte?";
next;
- switch(select("Heal:Aqua Benedicta:Teleport")){
+ switch(select("Heal:Aqua Benedicta:Teleport")){
case 1:
mes "[Asthe]";
mes "Ah, yes.";
@@ -399,7 +399,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
next;
mes "[Asthe]";
mes "But you must have forgotten the Mace I've lent you. Would you bring it back so that I can return it to the church?";
- close;
+ close;
}
}
mes "Are you having";
@@ -1110,7 +1110,7 @@ prt_monk,226,257,6 script Ill Girl#tu 4_F_04,{
mes "^3355FFNothing happened.";
mes "It doesn't look like";
mes "that skill will work.^000000";
- close;
+ close;
break;
case 2:
if(getskilllv("AL_BLESSING") > 0){
@@ -1422,7 +1422,7 @@ prt_monk,153,210,3 script Cleope Verce 4_F_SISTER,{
if(BaseJob != Job_Acolyte){
if (JobLevel < 40) {
if (BaseLevel < 26) {
- mes "Oh my.. ";
+ mes "Oh my.. ";
mes "A newbie Acolyte?";
mes "It doesn't even seem";
mes "like you've learned";
@@ -1464,7 +1464,7 @@ prt_monk,153,210,3 script Cleope Verce 4_F_SISTER,{
mes "Rookie.";
close;
} else if(BaseLevel < 36){
- mes "Oh my.. ";
+ mes "Oh my.. ";
mes "A young Acolyte?";
mes "You seem to have just";
mes "started learning your skills?";
@@ -1515,7 +1515,7 @@ prt_monk,153,210,3 script Cleope Verce 4_F_SISTER,{
mes "young friend.";
close;
} else if(BaseLevel < 46){
- mes "Well, well, well~";
+ mes "Well, well, well~";
mes "Hello, young Acolyte.";
mes "You're still kind of";
mes "green, but I guess you're";
diff --git a/npc/quests/first_class/tu_archer.txt b/npc/quests/first_class/tu_archer.txt
index 09f758959..5e5344271 100644
--- a/npc/quests/first_class/tu_archer.txt
+++ b/npc/quests/first_class/tu_archer.txt
@@ -1242,7 +1242,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
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;
- next;
+ next;
break;
case 2:
mes "[Seisner]";
@@ -1911,7 +1911,7 @@ prt_castle,76,165,6 script Minister#tu 1_M_JOBTESTER,{
next;
mes "[Minister]";
mes "As a holy servant, I'm sure that you'll find plenty of other people who have need of your help and abilities outside of the palace.";
- }
+ }
close;
}
diff --git a/npc/quests/first_class/tu_magician01.txt b/npc/quests/first_class/tu_magician01.txt
index dc43a7852..01df38855 100644
--- a/npc/quests/first_class/tu_magician01.txt
+++ b/npc/quests/first_class/tu_magician01.txt
@@ -701,7 +701,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
if(.@skill_e6) getexp 300,100;
if(.@skill_e7) getexp 300,100;
close;
- default:
+ default:
break;
}
}
diff --git a/npc/quests/first_class/tu_merchant.txt b/npc/quests/first_class/tu_merchant.txt
index b760831df..3acd91860 100644
--- a/npc/quests/first_class/tu_merchant.txt
+++ b/npc/quests/first_class/tu_merchant.txt
@@ -579,7 +579,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
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";
close;
}
- } else {
+ } else {
mes "No? That's fine.";
mes "But I can't teach you";
mes "much more if you can't grasp these simple basics, so hurry and learn those skills, okay?";
@@ -861,7 +861,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
mes "...Huh?";
mes "You better put some of your stuff in Kafra Storage, you can't carry much else!";
close;
- } else {
+ } else {
Zeny -= 340;
set tu_merchant, 10;
getitem 569,10; //Novice_Potion
@@ -900,7 +900,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
mes "...Huh?";
mes "You better put some of your stuff in Kafra Storage, you can't carry much else!";
close;
- } else {
+ } else {
Zeny -= 390;
set tu_merchant, 9;
getitem 501,10; //Red_Potion
@@ -939,7 +939,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
mes "...Huh?";
mes "You better put some of your stuff in Kafra Storage, you can't carry much else!";
close;
- } else {
+ } else {
Zeny -= 400;
set tu_merchant, 10;
getitem 501,10; //Red_Potion
diff --git a/npc/quests/kiel_hyre_quest.txt b/npc/quests/kiel_hyre_quest.txt
index 3083436cc..29ea57cf8 100644
--- a/npc/quests/kiel_hyre_quest.txt
+++ b/npc/quests/kiel_hyre_quest.txt
@@ -42,7 +42,7 @@
//----------------------------------------------------------------------------
// [Notes]
// - Let it be noted that ALL DIALOG IS OFFICIAL TO IRO UNLESS SPECIFIED.
-// - I've fixed a few of iRO's mistakes, but I'm sure I made some of my own.
+// - I've fixed a few of iRO's mistakes, but I'm sure I made some of my own.
// - Will probably require a major optimizing.
// - Not going to list ALL of the more usless NPCs. (Doors + Empty "Beautiful Ladies")
// - Parties are *NOT REQUIRED* as per Doddler's Wiki information.
@@ -63,9 +63,9 @@
// [Variables in Use]
// KielHyreQuest - Main quest tracking variable (Quest finished at 106)
//
-// KHToastGirlEnd - Pick up delivery if set to 1,
+// KHToastGirlEnd - Pick up delivery if set to 1,
// - picked up delivery if set to 2
-// - finished if set to 3
+// - finished if set to 3
// - Deleted once no longer needed.
//
// KHCottagePoem1 - Tracks Poem 1 quest in cottage. (finished = 5)
@@ -447,14 +447,14 @@ OnTouch:
mes "What am I suposed to do?";
set KielHyreQuest,1;
close;
- }
+ }
}
//----------------------------------------------------------------------------
// Juno Toast Sales Girl.
//----------------------------------------------------------------------------
yuno,217,114,6 script Little Kid#kh 4W_KID,{
- mes "[Cezu]";
+ mes "[Cezu]";
if (KielHyreQuest < 6) {
mes "Fresh, crunchy toast!";
mes "If you want some, come";
@@ -471,7 +471,7 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
next;
switch(select("I'm here for Elly:No, thanks")) {
case 1:
- mes "[Cezu]";
+ mes "[Cezu]";
mes "Oh, I see. Elly must have";
mes "wasted another batch of";
mes "ingredients again. Well,";
@@ -479,7 +479,7 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
mes "so I really want to help, but";
mes "I can't really do anything.";
next;
- mes "[Cezu]";
+ mes "[Cezu]";
mes "You see, I just ran";
mes "out of ingredients too!";
mes "But I can't really leave";
@@ -487,7 +487,7 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
mes "people need to buy toast?";
mes "Listen, can you help me out?";
next;
- mes "[Cezu]";
+ mes "[Cezu]";
mes "Would you please go get";
mes "some flour and eggs for me";
mes "from the ^3355FFLighthalzen Windmill^000000";
@@ -495,7 +495,7 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
mes "divide the ingredients, and you";
mes "can deliver some to Elly.";
next;
- mes "[Cezu]";
+ mes "[Cezu]";
mes "I know that I'm basically";
mes "making you do everything";
mes "on your own, but please try";
@@ -684,7 +684,7 @@ yuno_fild08,196,196,5 script Hanie#kh1 8_F,{
// Academy Security Guards
//----------------------------------------------------------------------------
yuno_fild08,158,194,6 script Security Guard#1::KHAGuard 4_M_EIN_SOLDIER,{
- if ((KielHyreQuest < 2) || (KielHyreQuest > 31)) {
+ if ((KielHyreQuest < 2) || (KielHyreQuest > 31)) {
mes "[Security Guard]";
mes "I'm sorry, but if you aren't";
mes "associated with this institution,";
@@ -694,7 +694,7 @@ yuno_fild08,158,194,6 script Security Guard#1::KHAGuard 4_M_EIN_SOLDIER,{
mes "an appointment with the staff.";
close;
}
- else if (KielHyreQuest == 2) {
+ else if (KielHyreQuest == 2) {
mes "[Security Guard]";
mes "I'm sorry, but if you aren't";
mes "associated with this institution,";
@@ -779,7 +779,7 @@ yuno_fild08,158,194,6 script Security Guard#1::KHAGuard 4_M_EIN_SOLDIER,{
close;
}
}
- else if (KielHyreQuest < 32) {
+ else if (KielHyreQuest < 32) {
mes "[Security Guard]";
mes "Oh, did you have";
mes "other business inside";
@@ -855,7 +855,7 @@ kh_school,176,60,4 script Lady#kh 4W_F_01,{
mes "in here, please leave.";
close;
}
- else if (KielHyreQuest == 2) {
+ else if (KielHyreQuest == 2) {
mes "[Mrs. Lecollane]";
mes "Oh, hello. Ah!";
mes "have you come to";
@@ -940,7 +940,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
close;
}
cutin "kh_elly01",2;
- if (KielHyreQuest < 4) {
+ if (KielHyreQuest < 4) {
cutin "kh_elly03",2;
mes "[Elly]";
mes "W-wah! Oh...!";
@@ -949,7 +949,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "again! Why do I have so much";
mes "trouble handling ingredients?";
}
- else if (KielHyreQuest == 4) {
+ else if (KielHyreQuest == 4) {
cutin "kh_elly03",2;
mes "[Elly]";
mes "Oh no, what should";
@@ -1473,7 +1473,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
}
//----------------------------------------------------------------------------
-// Elly's Window
+// Elly's Window
//----------------------------------------------------------------------------
yuno_fild08,69,185,0 script Window#kh HIDDEN_NPC,{
if (KielHyreQuest < 29) {
@@ -2184,12 +2184,11 @@ OnTouch:
getitem 7490,1; //Kyll_Hire_Letter
set KielHyreQuest,20;
close;
- }
- else{
+ } else {
mes "^3355FFYou entered the room.^000000";
close;
}
- end;
+ end;
}
//----------------------------------------------------------------------------
@@ -2258,7 +2257,7 @@ kh_vila,30,184,0 script Apple Box#khp1 HIDDEN_NPC,{
mes "prevented you from";
mes "taking the box.^000000";
close;
- case 2:
+ case 2:
mes "^3355FFSomething is wrong";
mes "with this box of apples.^000000";
close;
@@ -4247,7 +4246,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "the Rekenber Corporation, I'd";
mes "say it was entirely possible!";
next;
- cutin "kh_Kyel03",2;
+ cutin "kh_Kyel03",2;
mes "[Kiel Hyre]";
mes "Well played, adventurer.";
mes "Well played. I don't regret";
@@ -5238,28 +5237,23 @@ yuno,257,140,4 script Odd Grandma 4_F_EINOLD,{
mes "you go? You were";
mes "supposed to come";
mes "home a while ago!";
- if (countitem(7500) < 1) {
+ if (countitem(7500) < 1)
close;
- }
- else {
- next;
- switch(select("Allysia? Isn't she...")) {
- case 1:
- cutin "kh_ellisia_port",1;
- mes "^3355FFYou show Allysia's";
- mes "portrait to the old woman.^000000";
- next;
- cutin "",255;
- mes "[Grandma]";
- mes "Oh, do you know";
- mes "Allysia? She's been";
- mes "missing! She left home";
- mes "yesterday and hasn't";
- mes "come back! C-can you";
- mes "tell me where she is?!";
- close;
- }
- }
+ next;
+ select("Allysia? Isn't she...");
+ cutin "kh_ellisia_port",1;
+ mes "^3355FFYou show Allysia's";
+ mes "portrait to the old woman.^000000";
+ next;
+ cutin "",255;
+ mes "[Grandma]";
+ mes "Oh, do you know";
+ mes "Allysia? She's been";
+ mes "missing! She left home";
+ mes "yesterday and hasn't";
+ mes "come back! C-can you";
+ mes "tell me where she is?!";
+ close;
}
else if (KielHyreQuest >= 60) {
mes "[Grandma]";
@@ -5371,9 +5365,9 @@ yuno,250,132,0 script Old Lady#kh 4_F_05,{
}
else if ((KielHyreQuest == 58) &&
- (countitem(7499) < 1) ||
- (countitem(7500) < 1) ||
- (countitem(7501) < 1) ||
+ (countitem(7499) < 1) ||
+ (countitem(7500) < 1) ||
+ (countitem(7501) < 1) ||
(countitem(7502) < 1)) {
mes "[Old Lady]";
mes "Please hurry and find";
@@ -5386,9 +5380,9 @@ yuno,250,132,0 script Old Lady#kh 4_F_05,{
}
else if ((KielHyreQuest == 58) &&
- (countitem(7499) == 1) &&
- (countitem(7500) == 1) &&
- (countitem(7501) == 1) &&
+ (countitem(7499) == 1) &&
+ (countitem(7500) == 1) &&
+ (countitem(7501) == 1) &&
(countitem(7502) == 1)) {
mes "[Old Lady]";
mes "Oh, you're finished";
@@ -5426,7 +5420,7 @@ yuno,250,132,0 script Old Lady#kh 4_F_05,{
mes "Allysia's body in the river,";
mes "so he might have a better";
mes "idea of what had happened.";
- delitem 7498,1; //Rosimier_Key
+ delitem 7498,1; //Rosimier_Key
set KielHyreQuest,60;
close;
}
@@ -5913,7 +5907,7 @@ kh_kiehl01,17,39,0 script Receiver#kh HIDDEN_NPC,{
}
OnMyMobDead:
- if (mobcount("kh_kiehl01","Receiver#kh::OnMyMobDead") <1) {
+ if (mobcount("kh_kiehl01","Receiver#kh::OnMyMobDead") <1) {
makeitem 7506,1,"this",19,36;
}
end;
@@ -6292,9 +6286,9 @@ kh_kiehl01,15,179,0 script Robots#kh1 HIDDEN_NPC,{
}
OnMyMobDead:
- if (mobcount("kh_kiehl01","Robots#kh1::OnMyMobDead") < 1) {
+ if (mobcount("kh_kiehl01","Robots#kh1::OnMyMobDead") < 1) {
makeitem 7506,1,"this",18,180;
- }
+ }
end;
}
@@ -6338,8 +6332,8 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
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;
+ if (@KHDoorPushAttempt >= 3) {
+ set KielHyreQuest,86;
}
end;
}
@@ -7035,8 +7029,8 @@ kh_kiehl02,1,1,0 script KiehlRoom -1,{
OnKiehlMobDead:
set .KHKilled,.KHKilled+1;
- if (.KHKilled == 5) {
- hideoffnpc "Kiehl#Original";
+ if (.KHKilled == 5) {
+ hideoffnpc "Kiehl#Original";
}
end;
@@ -7057,7 +7051,7 @@ OnReset:
hideonnpc "Agent#KHAgent3";
hideonnpc "Agent#KHAgent4";
hideonnpc "Kiehl#Copy";
- hideoffnpc "Kiehl#Original";
+ hideoffnpc "Kiehl#Original";
set .KHKilledBoss,0;
set .KHKilled,0;
set getvariableofnpc(.KHTrapSprung,"Kiehl_Room_Trap"),0;
@@ -7114,7 +7108,7 @@ OnInit:
//============================================================
//= 1.0 First version, needs testing [Playtester]
//= 1.1 Copied over some changes made by -Tsuyuki- [L0ne_W0lf]
-//= Reworked variables slightly so that the permenents ones aside from the
+//= Reworked variables slightly so that the permenents ones aside from the
//= main tracking variable, are deleted when no longer needed. Renamed
//= several variables that handle strings to @KHInput$. [L0ne_W0lf]
//= 1.2 Removed duplicate NPCs. [Toms]
@@ -7135,7 +7129,7 @@ OnInit:
//= Corrected not deleting Allysia's Ring from inventory.
//= 1.9 Exit will now enable if you are just retrieving the Ring, keeps you from getting stuck. [L0ne_W0lf]
//= Corrected "KH_Kielh02", was setting off a debug, invalid map index. Should have been "kh_Kiehl02"
-//= Made .KHQuestBusy$ into a temp global variable. $@KHQuestBusy$.
+//= Made .KHQuestBusy$ into a temp global variable. $@KHQuestBusy$.
//= 2.0 Changed the labels on the "Big Doors" to "Identifier Names" to prevent an error with using getvariableofnpc [L0ne_W0lf]
//= 2.1 Fifth door now checks for a variable HIGHER or EQUAL to 74 not 84, as pointed out by Stollen. [L0ne_W0lf]
//= 2.2 Another fix for Elly, no longer RESETS to 26 when you talk to her. [L0ne_W0lf]
@@ -7151,7 +7145,7 @@ OnInit:
//= Fixed typo in the second NPC that gives Black Keycards.
//= Added Monster Warps. (Keeps monsters from being in dungeon quest area.) [Non-functional]
//= 2.6 Stupid mistake, accidentally had 4 copies of the same script in 1... [L0ne_W0lf the bonehead]
-//= 2.7 Fixed the wrong name being displayed for Kiel Hyre in one dialog.
+//= 2.7 Fixed the wrong name being displayed for Kiel Hyre in one dialog.
//= Removed $@KH_DoorInvoker entirely. The quest is now working like it should according to iRO.
//= Fixed up a few more NPC headers. Facing direction fixes mostly this time.
//= More progression changes to Kiehl Hyre. He no longer stops dialog after the agents appear.
diff --git a/npc/quests/lvl4_weapon_quest.txt b/npc/quests/lvl4_weapon_quest.txt
index 7736c28f4..91a1cea91 100644
--- a/npc/quests/lvl4_weapon_quest.txt
+++ b/npc/quests/lvl4_weapon_quest.txt
@@ -9,7 +9,7 @@
//= Grade A and Grade S weapon quests
//===== Additional Comments: =================================
//= 1.0 First Version, Credits goes to Vicious_Pucca for converting [MasterOfMuppets]
-//= the quest from aegis format to eA format. Also thanks to
+//= the quest from aegis format to eA format. Also thanks to
//= reddozen for fixing bugs.
//= 1.1 Many fixes to spelling, grammar, and sentence order. [Silent]
//= 1.2 A small fix, thanks to vicious_pucca [MasterOfMuppets]
diff --git a/npc/quests/newgears/2004_headgears.txt b/npc/quests/newgears/2004_headgears.txt
index 4ee75a969..d2cbe4c8c 100644
--- a/npc/quests/newgears/2004_headgears.txt
+++ b/npc/quests/newgears/2004_headgears.txt
@@ -19,7 +19,7 @@
//= 10) Model Training Hat (payon_in03 8 193)
//= 11) Tulip Haipin (geffen 83 189)
//= 12) Party Hat, Straw Hat, Cowboy Hat, (xmas_in 35 30)
-//= Sombrero, Beanie
+//= Sombrero, Beanie
//= 13) Decorative Golden Bell, (yuno_in03 20 18)
//= Crown of Ancient Queen, Crown of Mistress
//= 14) Alarm Mask (alde_alche 88 180)
diff --git a/npc/quests/newgears/2005_headgears.txt b/npc/quests/newgears/2005_headgears.txt
index c18b0e441..b31e07bd8 100644
--- a/npc/quests/newgears/2005_headgears.txt
+++ b/npc/quests/newgears/2005_headgears.txt
@@ -1624,13 +1624,13 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
emotion e_sob;
if(!(
- countitem(1950) || countitem(1951) || countitem(1952) ||
- countitem(1953) || countitem(1954) || countitem(1955) ||
- countitem(1956) || countitem(1957) || countitem(1958) ||
- countitem(1959) || countitem(1960) || countitem(1961) ||
- countitem(1962) || countitem(1963) || countitem(1964) ||
- countitem(1965) || countitem(1966) || countitem(1967) ||
- countitem(1968) || countitem(1969) || countitem(1970) ||
+ countitem(1950) || countitem(1951) || countitem(1952) ||
+ countitem(1953) || countitem(1954) || countitem(1955) ||
+ countitem(1956) || countitem(1957) || countitem(1958) ||
+ countitem(1959) || countitem(1960) || countitem(1961) ||
+ countitem(1962) || countitem(1963) || countitem(1964) ||
+ countitem(1965) || countitem(1966) || countitem(1967) ||
+ countitem(1968) || countitem(1969) || countitem(1970) ||
countitem(1971)
))
close; // no whip equipped or in inventory
diff --git a/npc/quests/newgears/2006_headgears.txt b/npc/quests/newgears/2006_headgears.txt
index c77dba022..a777db3f3 100644
--- a/npc/quests/newgears/2006_headgears.txt
+++ b/npc/quests/newgears/2006_headgears.txt
@@ -49,7 +49,7 @@ rachel,91,273,8 script ? 4_M_RACHMAN2,{
next;
delitem 983,1; //Black_Dyestuffs
delitem 7111,100; //Smooth_Paper
- delitem 938,99; //Sticky_Mucus
+ delitem 938,99; //Sticky_Mucus
Zeny -= 100000;
getitem 5175,1; //Anonimity_Request
mes "[?]";
@@ -124,8 +124,8 @@ rachel,152,131,3 script Sakjul 4_M_MIDDLE1,{
next;
set .@result,rand(1,10);
if (.@result == 4) {
- delitem 5172,1; //Beret
- delitem 7063,100; //Soft_Feather
+ delitem 5172,1; //Beret
+ delitem 7063,100; //Soft_Feather
delitem 982,1; //White_Dyestuffs
mes "[Sakjul]";
mes "I did succeed in making the hat,";
@@ -148,10 +148,10 @@ rachel,152,131,3 script Sakjul 4_M_MIDDLE1,{
mes "If you understood, now, go, go gather the materials again!";
close;
}
- delitem 5172,1; //Beret
- delitem 7063,100; //Soft_Feather
+ delitem 5172,1; //Beret
+ delitem 7063,100; //Soft_Feather
delitem 982,1; //White_Dyestuffs
- getitem 5170,1; //Feather_Beret
+ getitem 5170,1; //Feather_Beret
mes "[Sakjul]";
mes "Great, I have made it! Look at this beautiful coordination";
mes "between the feather and the beret,";
@@ -784,7 +784,7 @@ S_MakeMask:
delitem getarg(1),getarg(2);
delitem getarg(3),getarg(4);
delitem getarg(5),getarg(6);
- if (getarg(0) == 5169)
+ if (getarg(0) == 5169)
delitem getarg(7),getarg(8);
getitem getarg(0),1;
set moza_tal,0;
diff --git a/npc/quests/obb_quest.txt b/npc/quests/obb_quest.txt
index 927bcd8ba..09a37eca7 100644
--- a/npc/quests/obb_quest.txt
+++ b/npc/quests/obb_quest.txt
@@ -9,7 +9,7 @@
//= Old Blue Box quest (?)
//= Officially this quest gave an OBB in exhange for a the
//= required items unlimitedly, however this was changed by
-//= Gravity, who claimed this behavior as a bug.
+//= Gravity, who claimed this behavior as a bug.
//= The exact purpose of this quest is undetermined, but
//= Gravity claimed that another quest would eventually
//= branch from this one.
diff --git a/npc/quests/okolnir.txt b/npc/quests/okolnir.txt
index 4dea1dc69..ff6f6af85 100644
--- a/npc/quests/okolnir.txt
+++ b/npc/quests/okolnir.txt
@@ -298,7 +298,7 @@ que_qsch05,345,23,0 warp Gate02#gq_sch05 1,1,schg_cas05,369,306
next;
mes "[Wish Maiden]";
mes "You must bring those six things, 10 Gold, and 20 Elunium.";
- mes "Many Valhala's Flowers are also required as an offering.";
+ mes "Many Valhala's Flowers are also required as an offering.";
}
next;
mes "[Wish Maiden]";
@@ -1283,8 +1283,8 @@ OnTouch:
case 2: setarray .@n$, "113","111","3","Piamette : One bird has died trapped in it's cage."; break;
case 3: setarray .@n$, "161","105","4","Piamette : One bird was poisoned to death."; break;
case 4: setarray .@n$, "168","135","5","Piamette : One bird vomited blood while singing seven days and seven nights."; break;
- case 5:
- setarray .@n$, "150","159","6","Piamette : The last one broke her neck wriggling to get out of from it's eggshell!";
+ case 5:
+ setarray .@n$, "150","159","6","Piamette : The last one broke her neck wriggling to get out of from it's eggshell!";
donpcevent "#gdtimer02_"+.@sub$+"::OnEnable";
donpcevent "#gdtimer01_"+.@sub$+"::OnStop";
break;
@@ -1297,7 +1297,7 @@ OnTouch:
OnInit:
set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 8; set .@i, .@i + 1)
+ for (set .@i, 1; .@i <= 8; set .@i, .@i + 1)
disablenpc "#getspell0"+.@i+"_"+.@sub$;
end;
}
@@ -1646,7 +1646,7 @@ OnTimer120000:
set .@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)
- monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Guard of Shadow",1752,1,"#nmsom"+.@sub$+"_jin01::OnMyMobDead";
+ monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Guard of Shadow",1752,1,"#nmsom"+.@sub$+"_jin01::OnMyMobDead";
end;
OnTimer180000:
@@ -1730,7 +1730,7 @@ OnTimer120000:
set .@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)
- monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Bloody Hunter",1753,1,"#nmsom"+.@sub$+"_jin02::OnMyMobDead";
+ monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Bloody Hunter",1753,1,"#nmsom"+.@sub$+"_jin02::OnMyMobDead";
end;
OnTimer180000:
@@ -1910,7 +1910,7 @@ OnMyMobDead:
OnInit:
set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
disablenpc "Guard of Shadow#"+.@sub$+"_0"+.@i;
end;
}
@@ -1984,7 +1984,7 @@ OnMyMobDead:
OnInit:
set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
disablenpc "Bloody Hunter#"+.@sub$+"_ac0"+.@i;
end;
}
@@ -2125,7 +2125,7 @@ OnMyMobDead:
OnInit:
set .@sub$,callfunc("F_Okolnir");
- hideonnpc "Wish Maiden#"+.@sub$+"_boss";
+ hideonnpc "Wish Maiden#"+.@sub$+"_boss";
end;
}
que_qaru01,251,255,3 duplicate(Wish Maiden#main_boss) Wish Maiden#aru01_boss WISH_MAIDEN
diff --git a/npc/quests/quests_13_1.txt b/npc/quests/quests_13_1.txt
index 446e31ffd..16860ddf2 100644
--- a/npc/quests/quests_13_1.txt
+++ b/npc/quests/quests_13_1.txt
@@ -1728,8 +1728,8 @@ moc_fild22b,230,197,5 script Munkenro#2 4_M_RUSMAN1,{
mes "Ok, just have a good adventure.";
next;
set ep13_ryu,22;
- changequest 10077,10078;
- donpcevent "Head of the Alliance#moo::OnEnable";
+ changequest 10077,10078;
+ donpcevent "Head of the Alliance#moo::OnEnable";
mes "[Munkenro]";
mes "If you are too late,";
mes "it will be considered as a failure, so come back soon.";
diff --git a/npc/quests/quests_13_2.txt b/npc/quests/quests_13_2.txt
index 0767775be..f024c5285 100644
--- a/npc/quests/quests_13_2.txt
+++ b/npc/quests/quests_13_2.txt
@@ -31,7 +31,7 @@
//= 1.7 Added daily quest 'Dragon Egg collection.'
//= 1.7a Fixed a translation typo. Tabb -> Taab.
//= 1.8 Added a missing " in the GM only NPC.
-//= 1.9 Added Monster Suppression, Bradium Collection, and
+//= 1.9 Added Monster Suppression, Bradium Collection, and
//= Laphine Craftsman quests.
//= 2.0 Added missing global var check in Yggdrasil Dungeon
//= floor 2 puzzle. Fixed a typo. Commented out untranslated
diff --git a/npc/quests/quests_airship.txt b/npc/quests/quests_airship.txt
index f018327d1..afee6ab57 100644
--- a/npc/quests/quests_airship.txt
+++ b/npc/quests/quests_airship.txt
@@ -795,7 +795,7 @@ function script F_Cherno {
next;
specialeffect EF_POISONATTACK,AREA,"#exp_ein";
mes "^33355F*Crash!*^000000";
- mes ".....";
+ mes ".....";
emotion e_swt,0,"Theo Cherno";
emotion e_swt,0,"Tarsha Cherno";
next;
diff --git a/npc/quests/quests_alberta.txt b/npc/quests/quests_alberta.txt
index 560160c3f..1d2e61da3 100644
--- a/npc/quests/quests_alberta.txt
+++ b/npc/quests/quests_alberta.txt
@@ -17,13 +17,13 @@
//= 1.1 Fixed Spore Doll exploit, Gramp's Tiger skin label bug
//= 1.3 Fixed item ID 7031 -> 7013
//= 1.4 Fixed a bug, Fixed Exploits, Optimized [Lupus]
-//= 1.6 TEMPESTRA quest uses common quests variable MISC_QUEST
+//= 1.6 TEMPESTRA quest uses common quests variable MISC_QUEST
//= Condition if done: (MISC_QUEST & 2) [Lupus]
//= 1.7 Moved quest from cities/albera.txt [Evera]
//= 1.8 Re-made the Doll Quest, now with official dialogs. [DZeroX]
//= 1.8a Removed .GATs [Lupus]
//= 1.9 Updated Turtle Quest to official. [L0ne_W0lf]
-//= 2.0 Turtle Island quest now clears TURTLE var and set
+//= 2.0 Turtle Island quest now clears TURTLE var and set
//= MISC_QUEST bit (MISC_QUEST & 65536) [Lupus]
//= 2.1 Added missing close. [L0ne_W0lf]
//= 2.2 Updated Gotan to be compliant with misc_quiest var. [L0ne_W0lf]
@@ -430,8 +430,7 @@ alberta_in,28,145,4 script Grampa 2_M_PHARMACIST,{
mes "He...Hey, kid !! W-Wait !";
close;
}
- }
- else {
+ } else {
switch(select("Talk:Cancel")) {
case 1:
mes "[Grampa]";
diff --git a/npc/quests/quests_aldebaran.txt b/npc/quests/quests_aldebaran.txt
index 86c0eef18..01ef38537 100644
--- a/npc/quests/quests_aldebaran.txt
+++ b/npc/quests/quests_aldebaran.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Quest NPCs related to Aldebaran
+//= Quest NPCs related to Aldebaran
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
@@ -74,7 +74,7 @@ aldeba_in,152,166,4 script Trader#01 4_M_04,{
close;
}
case 3:
- if ((countitem(998) > 19) && (countitem(707) > 0) && (Zeny > 4999)){ //Iron Singing_Plant
+ if ((countitem(998) > 19) && (countitem(707) > 0) && (Zeny > 4999)){ //Iron Singing_Plant
delitem 998,20; //Iron
delitem 707,1; //Singing_Plant
Zeny -= 5000;
@@ -89,7 +89,7 @@ aldeba_in,152,166,4 script Trader#01 4_M_04,{
close;
}
case 4:
- if ((countitem(1019) > 119) && (Zeny > 9999)){ //Wooden_Block
+ if ((countitem(1019) > 119) && (Zeny > 9999)){ //Wooden_Block
delitem 1019,120; //Wooden_Block
Zeny -= 10000;
mes "[Trader]";
diff --git a/npc/quests/quests_gonryun.txt b/npc/quests/quests_gonryun.txt
index 78b94c410..f5c1fe522 100644
--- a/npc/quests/quests_gonryun.txt
+++ b/npc/quests/quests_gonryun.txt
@@ -3107,7 +3107,7 @@ geffen_in,106,106,7 script Girl#gnbs2 4_M_KID2,{
mes "Heehehe...";
if (Sex == 0)
mes "Thank you my pretty sister.";
- else
+ else
mes "Thank you handsome brother~";
mes "I'll get my health back";
mes "and be a strong girl!";
diff --git a/npc/quests/quests_hugel.txt b/npc/quests/quests_hugel.txt
index 313b999b4..453a0e8fc 100644
--- a/npc/quests/quests_hugel.txt
+++ b/npc/quests/quests_hugel.txt
@@ -5524,7 +5524,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "since I helped him start his^FFFFFF ^000000 business. Nice of him, isn't it?";
set hg_odeng,2;
setquest 8065;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
case 3:
mes "[Cellette]";
@@ -5536,7 +5536,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "Just try not to be late...";
set hg_odeng,3;
setquest 8066;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
case 4:
mes "[Cellette]";
@@ -5548,7 +5548,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "and such and order...";
set hg_odeng,4;
setquest 8067;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
}
case 2:
@@ -5568,7 +5568,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "I hope you come and ";
mes "visit me again, okay?";
Zeny -= 100;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
} else {
mes "[Cellette]";
@@ -5626,7 +5626,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "from you. That's fair, so";
mes "please don't lose it this time.";
Zeny -= 100;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
} else {
mes "[Cellette]";
@@ -5667,7 +5667,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "from you. That's fair, so";
mes "please don't lose it this time.";
Zeny -= 100;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
} else {
mes "[Cellette]";
@@ -5709,7 +5709,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "from you. That's fair, so";
mes "please don't lose it this time.";
Zeny -= 100;
- getitem 584,1; //Fish_Ball_Soup
+ getitem 584,1; //Fish_Ball_Soup
close;
} else {
mes "[Cellette]";
diff --git a/npc/quests/quests_juperos.txt b/npc/quests/quests_juperos.txt
index 3c51ead24..e842882fe 100644
--- a/npc/quests/quests_juperos.txt
+++ b/npc/quests/quests_juperos.txt
@@ -1305,7 +1305,7 @@ juperos_01,99,112,4 script Bronze Statue#1 CLEAR_NPC,{
mes "Juno, could make sense";
mes "of what this stuff says.";
close;
- case 2:
+ case 2:
close;
}
}
@@ -1529,7 +1529,7 @@ yuno_in04,118,116,4 script Paper HIDDEN_NPC,{
mes "Please...";
mes "Come back to me.";
mes " ";
- mes " ";
+ mes " ";
mes "Love,";
mes "Fayruz^000000";
close;
@@ -1688,7 +1688,7 @@ OnTimer2000:
}
//============================================================
-// 2nd Floor
+// 2nd Floor
//============================================================
juperos_02,97,70,0 script 3F Gate Switch#jupe -1,{
diff --git a/npc/quests/quests_louyang.txt b/npc/quests/quests_louyang.txt
index 3b0520c66..d928aefd6 100644
--- a/npc/quests/quests_louyang.txt
+++ b/npc/quests/quests_louyang.txt
@@ -10,7 +10,7 @@
//= - Variable in use: che_tre (max 5)
//= Doctor Quest
//= - Variable in use: che_par (max 18)
-//= Poison King Quest
+//= Poison King Quest
//= - Variable in use: ch_poison (max 20)
//= Revolution Quest
//= - Variable in use: QL_REVO (max 9)
@@ -442,7 +442,7 @@ lou_fild01,195,177,5 script Jiu Lian Bu#1-1 4_M_CHN8GUEK,{
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;
+ set QL_ACCEPTSOUP,0; set QL_GOTDRAGONSOUP,0; set QL_GOTFAKESOUP,0; set QL_SOUPQUEST,0; set QL_SOUP2,0;
if (ch_tre == 0) {
mes "[Jiu Lian Bu]";
@@ -874,7 +874,7 @@ lou_in02,58,183,5 script Chef Assistant#lou1 4_M_CHNMONK,5,5,{
mes "[Jin Wei Ling]";
mes "Waaa-!!!!";
next;
- specialeffect EF_ENDURE;
+ specialeffect EF_ENDURE;
mes "[Jin Wei Ling]";
mes "Waaa Taaah-!!!!!";
next;
@@ -3823,7 +3823,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "Did I make it?";
next;
specialeffect EF_PATTACK;
- specialeffect EF_POISONHIT;
+ specialeffect EF_POISONHIT;
emotion e_omg;
mes "[Song Zhi Du]";
mes "Hahaha~!";
diff --git a/npc/quests/quests_lutie.txt b/npc/quests/quests_lutie.txt
index 9fe31ec59..f0db564be 100644
--- a/npc/quests/quests_lutie.txt
+++ b/npc/quests/quests_lutie.txt
@@ -227,7 +227,7 @@ xmas,115,297,4 script Vending Machine HIDDEN_NPC,{
}
break;
case 5:
- if ((countitem(5015) > 0) && (countitem(978) > 0) && (countitem(7030) > 49)){
+ if ((countitem(5015) > 0) && (countitem(978) > 0) && (countitem(7030) > 49)){
mes "^3355FFYou gingerly place the items into the snowman's mouth.^000000";
next;
delitem 5015,1; //Egg_Shell
@@ -315,7 +315,7 @@ xmas,115,297,4 script Vending Machine HIDDEN_NPC,{
}
break;
case 9:
- if ((countitem(529) > 9) && (countitem(530) > 4) && (countitem(538) > 14) && (countitem(539) > 19) && (countitem(999) > 9)) {
+ if ((countitem(529) > 9) && (countitem(530) > 4) && (countitem(538) > 14) && (countitem(539) > 19) && (countitem(999) > 9)) {
mes "^3355FFYou gingerly place the items into the snowman's mouth.^000000";
next;
delitem 529,10; //Candy
diff --git a/npc/quests/quests_morocc.txt b/npc/quests/quests_morocc.txt
index 398aa9a97..45ed535f8 100644
--- a/npc/quests/quests_morocc.txt
+++ b/npc/quests/quests_morocc.txt
@@ -34,7 +34,7 @@
//= Added support NPCs required to finish Gaebolg quest.
//= 2.5 Fixed Group of Evil never re-enabling. [L0ne_W0lf]
//= 2.6 Added quest log commands for Resurrection of Satan Morroc. [L0ne_W0lf]
-//= Added the two remaining episode 12.1 quests.
+//= Added the two remaining episode 12.1 quests.
//= Updated Satan Morroc Quest to allow peopel who have
//= finished it to return to the previous map.
//= 2.7 Corrected weight checks, they only check for inventory slots. [L0ne_W0lf]
diff --git a/npc/quests/quests_moscovia.txt b/npc/quests/quests_moscovia.txt
index 740f1b038..685010f1a 100644
--- a/npc/quests/quests_moscovia.txt
+++ b/npc/quests/quests_moscovia.txt
@@ -4,6 +4,8 @@
//= Kisuka
//===== Current Version: =====================================
//= 2.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Quests for Moscovia.
//= The Moving Island, Help Mikhail, Acorn Exchange,
@@ -1146,9 +1148,9 @@ S_Rud1:
set $@mos1_edq,$@mos1_edq+1;
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;
+ set 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]";
mes "I said that we should go "+.@d$[getarg(0)]+"!";
mes "You should sail in the right";
@@ -1164,7 +1166,7 @@ S_Rud1:
donpcevent "Baehideun1#ship::OnEnable";
}
}
- close;
+ close;
}
//----------------------------------------------------------------------------
@@ -1536,7 +1538,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
mes "[Aged Stranger]";
mes "Okay, it's time for your turn. Play it. Play the song that I played.";
next;
- callsub S_AS_1;
+ callsub S_AS_1;
}
mes "[Aged Stranger]";
mes "Um... Your preparations are not";
@@ -1755,7 +1757,7 @@ S_AS_2:
mes "Okay. If you are ready to play the";
mes "Gusli, let me know.";
set mos_whale_edq,36;
- close;
+ close;
case 3:
mes "[Aged Stranger]";
mes "I see. Okay, let's go.";
@@ -2960,7 +2962,7 @@ 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 (set .@i, 0; .@i < 4; set .@i, .@i + 1)
mes " .............. ";
set .@c, .@c + 1;
next;
@@ -2999,7 +3001,7 @@ 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 (set .@i, 0; .@i < 4; set .@i, .@i + 1)
mes " .............. ";
set .@c, .@c + 1;
next;
@@ -4078,9 +4080,9 @@ OnTouch:
if (.@stworld > 0 && .@stworld < 90) callsub S_BS_1,.@stworld;
else if (.@stworld > 89 && .@stworld < 100) getitem 732,1;
else getitem 7297,1;
- } else if (.@cyworld == 1000) getitem 727,1;
+ } else if (.@cyworld == 1000) getitem 727,1;
else if (.@cyworld > 100 && .@cyworld < 500) getitem 733,1;
- else if (.@cyworld > 500 && .@cyworld < 900) getitem 724,1;
+ else if (.@cyworld > 500 && .@cyworld < 900) getitem 724,1;
else getitem 724,1;
close;
case 2:
@@ -4521,7 +4523,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
set .@f, 1;
break;
}
- }
+ }
if (!.@f && (countitem(730) || countitem(731) || countitem(732))) {
for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
delitem .@n[.@i],.@n[.@i+1];
@@ -5279,7 +5281,7 @@ 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;
+ set .@m, select (implode(.@m$,":")) - 1;
if (.@m >= 3) {
if (.@nankai == 5 || .@nankai == 6) {
if ((.@m == 3 && .@star) || (.@m == 4 && .@sand)) specialeffect EF_POISONHIT;
@@ -5407,8 +5409,8 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
set .@m, select (implode(.@m3$,":")) - 1;
if (.@m != 5) specialeffect EF_POISONHIT;
else {
- set .@maho,.@maho+1;
- specialeffect EF_SMOKE;
+ set .@maho,.@maho+1;
+ specialeffect EF_SMOKE;
}
set .@nankai,.@nankai+1;
mes "-I put "+((.@m == 5)?"a":"the")+" "+.@m3$[.@m]+" in the pot.";
@@ -8109,7 +8111,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
mes "[Ryubaba]";
mes "A Red Ring?!";
next;
- } else {
+ } else {
mes "[Ryubaba]";
mes "Heh, what are you talking about? What is that?";
close;
@@ -9286,7 +9288,7 @@ moc_pryd04,126,120,0 script Soldier#rus26 4_M_RUSMAN1,{
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.";
close;
- }
+ }
}
mes "[A gloomy looking soldier]";
mes "... I feel like I lost something precious.";
@@ -9584,7 +9586,7 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
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 .@j,select("A Poring:A Picky:A Mirror:A Tree");
set .@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?";
@@ -10541,7 +10543,7 @@ OnTouch:
mes "Akkkk?! Eh!? The s-spell...";
next;
mes "- You hesitate, the cow, seems to gibe at you, passes by you and runs to bushes !! -";
- if (rand(1,2) == 1) {
+ if (rand(1,2) == 1) {
donpcevent "Cow#rus34::OnDisable";
donpcevent "Cow#rus34::OnEnable";
} else {
diff --git a/npc/quests/quests_nameless.txt b/npc/quests/quests_nameless.txt
index f38398b40..109a97f7e 100644
--- a/npc/quests/quests_nameless.txt
+++ b/npc/quests/quests_nameless.txt
@@ -25,7 +25,7 @@
//- - Help to aprehend the infamous Z-Gang.
//= - Variable in use: zdan_edq (Max: 19)
//= Unlucky Emerald:
-//- - Help a treasure hunter from Prontera get home, and
+//- - Help a treasure hunter from Prontera get home, and
//= learn the origins of the Unlucky Emerald.
//= - Variable in use: treasure_nd (Max: 12)
//= - Variable in use: jewel_nd (Max: 31)
@@ -973,7 +973,7 @@ OnTouch:
}
nameless_i,127,207,0 script Dead Crow#Aru HIDDEN_NPC,{
- if (aru_monas < 17) {
+ if (aru_monas < 17) {
mes "^3355FFThere is a dead crow on the ground.";
close;
}
@@ -13067,10 +13067,10 @@ comodo,233,199,5 script Rogue Guild Agent#nd3 1_M_SIGNROGUE,{
mes "[Agent]";
mes "Okay, let me check.";
next;
- if ((countitem(2278) > 0) || (countitem(2281) > 0) || (countitem(5043) > 0) || (countitem(2288) > 0) ||
- (countitem(2292) > 0) || (countitem(2297) > 0) || (countitem(5005) > 0) || (countitem(5086) > 0) ||
- (countitem(5087) > 0) || (countitem(5088) > 0) || (countitem(5089) > 0) || (countitem(5090) > 0) ||
- (countitem(5176) > 0) || (countitem(5203) > 0) || (countitem(5098) > 0) || (countitem(5121) > 0) ||
+ if ((countitem(2278) > 0) || (countitem(2281) > 0) || (countitem(5043) > 0) || (countitem(2288) > 0) ||
+ (countitem(2292) > 0) || (countitem(2297) > 0) || (countitem(5005) > 0) || (countitem(5086) > 0) ||
+ (countitem(5087) > 0) || (countitem(5088) > 0) || (countitem(5089) > 0) || (countitem(5090) > 0) ||
+ (countitem(5176) > 0) || (countitem(5203) > 0) || (countitem(5098) > 0) || (countitem(5121) > 0) ||
(countitem(5130) > 0) || (countitem(5177) > 0) || (countitem(5169) > 0) || (countitem(5143) > 0)) {
mes "[Agent]";
mes "Excellent!";
diff --git a/npc/quests/quests_niflheim.txt b/npc/quests/quests_niflheim.txt
index 6bb2c08ba..b2cda90e8 100644
--- a/npc/quests/quests_niflheim.txt
+++ b/npc/quests/quests_niflheim.txt
@@ -23,7 +23,7 @@
//= Rescripted Piano Quest. Prior quest progress will be lost.
//= 1.4 Fixed NPCs using ID 111 when it shoudl have been 139. [L0ne_W0lf]
//= 1.5 Swapped NPC IDs back from last change (139 back to 111). [L0ne_W0lf]
-//= Clicking will do nothing, you have to still "touch" the npc.
+//= Clicking will do nothing, you have to still "touch" the npc.
//= 1.6 Added questlog support. [Euphy]
//============================================================
diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt
index a39d3de41..a450ee8b0 100644
--- a/npc/quests/quests_rachel.txt
+++ b/npc/quests/quests_rachel.txt
@@ -5,7 +5,7 @@
//===== Current Version: =====================================
//= 3.6
//===== Description: =========================================
-//= Collection of Rachel Quests
+//= Collection of Rachel Quests
//= Lost Child Quest:
//= - End of quest coincides with opening the Sanctuary.
//= - Variable in use: lost_boy (max 13)
@@ -3200,7 +3200,7 @@ ice_dun02,120,105,3 script Man Stuck in Ice#cave 4_M_FROZEN1,5,5,{
OnTouch:
end;
-OnTouchNPC:
+OnTouchNPC:
emotion e_an;
//emotion e_gg,1; //Emote on monster - unsupported
end;
@@ -3300,7 +3300,7 @@ rachel,265,98,3 script Hamion#aru 4_M_RACHMAN2,{
close;
}
else if (ice_necklace_q == 3) {
- if ((countitem(996) < 5) || (countitem(1354) < 1) || (countitem(7433) < 1)) {
+ if ((countitem(996) < 5) || (countitem(1354) < 1) || (countitem(7433) < 1)) {
mes "[Hamion]";
mes "I need to create";
mes "a magical artifact";
diff --git a/npc/quests/quests_umbala.txt b/npc/quests/quests_umbala.txt
index 16537c2e9..e160e84a8 100644
--- a/npc/quests/quests_umbala.txt
+++ b/npc/quests/quests_umbala.txt
@@ -513,22 +513,22 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
switch (select("Earth:Water:Fire:Wind")) {
case 1:
set .@consume,947; //Horn
- set .@amount,15;
+ set .@amount,15;
set .@success,993; //Yellow_Live
break;
case 2:
set .@consume,946; //Snail's_Shell
- set .@amount,20;
+ set .@amount,20;
set .@success,991; //Crystal_Blue
break;
case 3:
set .@consume,904; //Scorpion's_Tail
- set .@amount,20;
+ set .@amount,20;
set .@success,990; //Boody_Red
break;
case 4:
set .@consume,1013; //Colorful_Shell
- set .@amount,25;
+ set .@amount,25;
set .@success,992; //Wind_Of_Verdure
break;
}
@@ -770,7 +770,7 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
case 996:
getitem 992,.@shaman_max; //Wind_Of_Verdure
break;
- case 997:
+ case 997:
getitem 993,.@shaman_max; //Yellow_Live
}
delitem .@divide,.@input;
@@ -792,7 +792,7 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
mes "wind stones? Then I will need";
mes "you to bring "+input_want+" pure wind stone.";
break;
- case 997:
+ case 997:
mes "earth stones? Then I'll need";
mes "you to bring "+.@input+" pure earth stone.";
break;
diff --git a/npc/quests/quests_veins.txt b/npc/quests/quests_veins.txt
index 7c23f30a3..cd57c9945 100644
--- a/npc/quests/quests_veins.txt
+++ b/npc/quests/quests_veins.txt
@@ -6,7 +6,7 @@
//= 2.5
//===== Description: =========================================
//= [Official Conversion]
-//= Collection of Veins Quests
+//= Collection of Veins Quests
//= Stone Quest:
//= - Help an Old Man with his job.
//= - Dialog obtained from iRO.
diff --git a/npc/quests/quests_yuno.txt b/npc/quests/quests_yuno.txt
index f4d42aae1..d0544a5b7 100644
--- a/npc/quests/quests_yuno.txt
+++ b/npc/quests/quests_yuno.txt
@@ -536,7 +536,7 @@ S_DelItems:
mes "I don't know if we can do anything else,";
if (getarg(2) == 1)
mes "but this time we have created "+getarg(1);
- else
+ else
mes "but this time we have created";
mes "^FF0000"+getitemname(getarg(0))+"^000000 !";
next;
@@ -664,7 +664,7 @@ S_DelItems:
mes "I don't know if we can do anything else,";
if (getarg(2) == 1)
mes "but this time we have created "+getarg(1);
- else
+ else
mes "but this time we have created";
mes "^FF0000"+getitemname(getarg(0))+"^000000 !";
next;
diff --git a/npc/quests/seals/brisingamen_seal.txt b/npc/quests/seals/brisingamen_seal.txt
index 58e208c07..a519a5e62 100644
--- a/npc/quests/seals/brisingamen_seal.txt
+++ b/npc/quests/seals/brisingamen_seal.txt
@@ -2067,8 +2067,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
close;
}
}
- }
- else {
+ } else {
mes "[Sad-looking Man]";
mes "...";
mes "^333333*Sob...*";
@@ -2438,7 +2437,7 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
}
prontera,260,354,4 script Woman#Rosa Ellenen 4W_F_01,{
- if ($God2 < $@god_check1){
+ if ($God2 < $@god_check1){
mes "[Woman]";
mes "Hm?";
mes "What brings";
@@ -2649,8 +2648,7 @@ gef_dun01,89,192,0 script #lowentrace HIDDEN_NPC,3,3,{
mes "This place is too dangerous.^000000";
close;
}
- }
- else {
+ } else {
close;
}
case 2:
diff --git a/npc/quests/seals/god_weapon_creation.txt b/npc/quests/seals/god_weapon_creation.txt
index a367de1ad..16494cd5f 100644
--- a/npc/quests/seals/god_weapon_creation.txt
+++ b/npc/quests/seals/god_weapon_creation.txt
@@ -138,7 +138,7 @@ gld_dun01,28,85,0 script Grunburti#1::GodDwarf 4_M_DWARF,{
mes "But I can't even create a replica of Mjolnir if the seals are still in place. Until they're released, you'll just have to wait. Bwahaha!";
close;
}
- }
+ }
mes "[Dwarf Grunburti]";
mes "We Dwarves have too much pride to demonstrate our skills in front of a lowly human!";
next;
@@ -176,7 +176,7 @@ gld_dun01,28,85,0 script Grunburti#1::GodDwarf 4_M_DWARF,{
mes "^0000FFBrisingamen^000000!";
next;
}
- else if ((countitem(7058) > 0) && (countitem(969) > 19) && (countitem(726) > 9) && (countitem(984) > 9) && (countitem(2627) > 0)){ //Gullraifnir Gold Blue_Jewel Oridecon Belt
+ else if ((countitem(7058) > 0) && (countitem(969) > 19) && (countitem(726) > 9) && (countitem(984) > 9) && (countitem(2627) > 0)){ //Gullraifnir Gold Blue_Jewel Oridecon Belt
mes "[Dwarf Grunburti]";
mes "Hmm...";
mes "I guess you";
@@ -457,7 +457,7 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
next;
switch(select("Make Brisingamen.:Cancel.")) {
case 1:
- if ((countitem(7073) > 3) && (countitem(7077) > 3) && (countitem(7088) > 2) && (countitem(7090) > 2) && (countitem(7092) > 2) && (countitem(726) > 1) && (countitem(722) > 2) && (countitem(727) > 9) && (countitem(724) > 4) && (countitem(969) > 19) && (countitem(2603) > 0)){ //Jewel_Of_Prayer Silver_Fancy Crystal_Of_Snow Slilince_Wave Air_Stream Blue_Jewel Scarlet_Jewel White_Jewel Cardinal_Jewel_ Gold Necklace
+ if ((countitem(7073) > 3) && (countitem(7077) > 3) && (countitem(7088) > 2) && (countitem(7090) > 2) && (countitem(7092) > 2) && (countitem(726) > 1) && (countitem(722) > 2) && (countitem(727) > 9) && (countitem(724) > 4) && (countitem(969) > 19) && (countitem(2603) > 0)){ //Jewel_Of_Prayer Silver_Fancy Crystal_Of_Snow Slilince_Wave Air_Stream Blue_Jewel Scarlet_Jewel White_Jewel Cardinal_Jewel_ Gold Necklace
mes "[Dwarf Grunburti]";
mes "Never in my wildest";
mes "imaginings have I thought that I'd be crafting this masterpiece for a mere human. Give me a moment.";
diff --git a/npc/quests/seals/mjolnir_seal.txt b/npc/quests/seals/mjolnir_seal.txt
index 08cb2e030..edaf442d7 100644
--- a/npc/quests/seals/mjolnir_seal.txt
+++ b/npc/quests/seals/mjolnir_seal.txt
@@ -492,7 +492,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "...";
close;
case 2:
- if (countitem(1005) > 0) { //Hammer_Of_Blacksmith
+ if (countitem(1005) > 0) { //Hammer_Of_Blacksmith
mes "[Austri]";
mes "Ah, I see that the entire human race is not worthy of scorn. Unlike many of your kind, I see that you respect your elders.";
next;
diff --git a/npc/quests/seals/seal_status.txt b/npc/quests/seals/seal_status.txt
index 1b15981ab..4809f6b7d 100644
--- a/npc/quests/seals/seal_status.txt
+++ b/npc/quests/seals/seal_status.txt
@@ -47,4 +47,4 @@ prontera,113,294,3 script Sign Post#god 2_BULLETIN_BOARD,{
else
mes "^00ff00Mjolnir Seal: Completed^000000";
close;
-} \ No newline at end of file
+}
diff --git a/npc/quests/skills/alchemist_skills.txt b/npc/quests/skills/alchemist_skills.txt
index d735220b3..2add112c4 100644
--- a/npc/quests/skills/alchemist_skills.txt
+++ b/npc/quests/skills/alchemist_skills.txt
@@ -2205,7 +2205,7 @@ lhz_in01,218,141,7 script Alchemist#qsk_al 4W_M_02,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/assassin_skills.txt b/npc/quests/skills/assassin_skills.txt
index 8ff7da04c..d551b83bb 100644
--- a/npc/quests/skills/assassin_skills.txt
+++ b/npc/quests/skills/assassin_skills.txt
@@ -4,6 +4,8 @@
//= Lupus, Reddozen
//===== Current Version: =====================================
//= 1.5
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Quests for skills: Venom Knife, Sonic Acceleration
@@ -950,6 +952,8 @@ OnTouch:
}
}
+// FIXME[Haru]: Why do we have a Korean name here? Can anyone translate it?
+// Google translate says ¡¡ (jingjing) = Whining, but it doesn't make much sense to me.
moc_pryd04,85,96,0 script ¡¡#crypt -1,3,3,{
OnTouch:
if (ASSN_SK == 4) {
@@ -992,7 +996,7 @@ OnTouch:
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/blacksmith_skills.txt b/npc/quests/skills/blacksmith_skills.txt
index 42c7cd65b..4ec509b3b 100644
--- a/npc/quests/skills/blacksmith_skills.txt
+++ b/npc/quests/skills/blacksmith_skills.txt
@@ -657,7 +657,7 @@ geffen,172,52,1 script Goodman#qsk_bs 4_M_DWARF,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/crusader_skills.txt b/npc/quests/skills/crusader_skills.txt
index 46e294197..8b15136fe 100644
--- a/npc/quests/skills/crusader_skills.txt
+++ b/npc/quests/skills/crusader_skills.txt
@@ -817,7 +817,7 @@ prt_church,87,127,3 script Pastor#1011 4_M_SAGE_C,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/dancer_skills.txt b/npc/quests/skills/dancer_skills.txt
index 6a6c802f6..de72a6fe7 100644
--- a/npc/quests/skills/dancer_skills.txt
+++ b/npc/quests/skills/dancer_skills.txt
@@ -729,7 +729,7 @@ prontera,183,333,1 script Aelle#qsk_dan02 1_F_PRIEST,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/hunter_skills.txt b/npc/quests/skills/hunter_skills.txt
index eca408915..d2c1a1204 100644
--- a/npc/quests/skills/hunter_skills.txt
+++ b/npc/quests/skills/hunter_skills.txt
@@ -13,7 +13,7 @@
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/knight_skills.txt b/npc/quests/skills/knight_skills.txt
index 818303c68..aca35e860 100644
--- a/npc/quests/skills/knight_skills.txt
+++ b/npc/quests/skills/knight_skills.txt
@@ -519,7 +519,7 @@ prontera,66,358,5 script Knight#gattack 4_M_JOB_KNIGHT1,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/monk_skills.txt b/npc/quests/skills/monk_skills.txt
index 1522dec86..f4788e12d 100644
--- a/npc/quests/skills/monk_skills.txt
+++ b/npc/quests/skills/monk_skills.txt
@@ -439,7 +439,7 @@ monk_test,316,69,5 script Monk#qsk_mo 4_M_CHNMONK,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/priest_skills.txt b/npc/quests/skills/priest_skills.txt
index ebed55087..68da2767e 100644
--- a/npc/quests/skills/priest_skills.txt
+++ b/npc/quests/skills/priest_skills.txt
@@ -369,7 +369,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/rogue_skills.txt b/npc/quests/skills/rogue_skills.txt
index 7f12d3d2e..cde8fc2d9 100644
--- a/npc/quests/skills/rogue_skills.txt
+++ b/npc/quests/skills/rogue_skills.txt
@@ -1199,7 +1199,7 @@ function script F_Kienna {
mes "[Kienna]";
mes "Alright, we're done";
mes "here. You earned a";
- switch(.@suc_1) {
+ switch(.@suc_1) {
case 10:
mes "training grade of ''^0000FFS^000000.''";
mes "That's a perfect score!";
@@ -1361,7 +1361,7 @@ OnStartArena:
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/sage_skills.txt b/npc/quests/skills/sage_skills.txt
index 2bcda5082..5f065a892 100644
--- a/npc/quests/skills/sage_skills.txt
+++ b/npc/quests/skills/sage_skills.txt
@@ -488,7 +488,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/skills/thief_skills.txt b/npc/quests/skills/thief_skills.txt
index c0f97859b..0f31c7c5e 100644
--- a/npc/quests/skills/thief_skills.txt
+++ b/npc/quests/skills/thief_skills.txt
@@ -5,7 +5,7 @@
//===== Current Version: =====================================
//= 1.8
//===== Description: =========================================
-//= Quests for skills: Sand Attack, Back Slide, Find Stone,
+//= Quests for skills: Sand Attack, Back Slide, Find Stone,
//= Stone Fling.
//===== Additional Comments: =================================
//= 1.5 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
diff --git a/npc/quests/skills/wizard_skills.txt b/npc/quests/skills/wizard_skills.txt
index 4cab1ffe6..9947c3ad0 100644
--- a/npc/quests/skills/wizard_skills.txt
+++ b/npc/quests/skills/wizard_skills.txt
@@ -440,7 +440,7 @@ prt_in,82,98,3 script Simon Mayace#q_wiz 1_ETC_01,{
//= Somehow eA engine doesn't let you keep learn't skill V_V'
//= 1.2 Added to correct locations, correct NPC's, fixed
//= some of the items required and made them into real
-//= quests. [Reddozen]
+//= quests. [Reddozen]
//= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
//= 1.3a fixed an item ID typo, thx 2Spiritual Kid
//= 1.3b Splitted into different files [DracoRPG]
diff --git a/npc/quests/the_sign_quest.txt b/npc/quests/the_sign_quest.txt
index 9ede5352e..f58fd574d 100644
--- a/npc/quests/the_sign_quest.txt
+++ b/npc/quests/the_sign_quest.txt
@@ -4,6 +4,8 @@
//= SinSloth, MasterOfMuppets, Kargha
//===== Current Version: =====================================
//= 3.9
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Quest for opening the doors to Geffenia.
@@ -3090,13 +3092,11 @@ OnTouch:
end;
}
-/* Currently broken.
prt_maze02,25,161,0 script #music -1,7,7,{
OnTouch:
- soundeffect "effect\\¼®¾çÀÇ ¾î½Ø½Å.wav",1;
+ soundeffect "effect\\¼®¾çÀÇ ¾î½Ø½Å.wav",1;
end;
}
-*/
prt_maze02,132,132,0 script #skill -1,{
OnEnable:
@@ -12555,7 +12555,7 @@ function script F_UpdateSignVars {
// Because of the horrible way this was scripted, it's incompatable
// With the new script, So I am resetting the quest to the start
// of this step.
- if (signlaichin >= 1) {
+ if (signlaichin >= 1) {
mes "^FF0000You stumble and drop the your^000000";
if (countitem(7306)) {
mes "^FF0000"+getitemname(7306)+"^000000";
@@ -12569,11 +12569,11 @@ 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);
+ set sign_q,rand(97,100);
}
// Same BS as above, unable to save pickup time for 'The Sign' from Engel.
- if (signengelhour) {
+ 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;
@@ -12598,7 +12598,7 @@ function script F_UpdateSignVars {
}
// Unable to save when the Sign should be picked up from Metz
- if (signmetzhour) {
+ 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;
diff --git a/npc/re/cities/dicastes.txt b/npc/re/cities/dicastes.txt
index 9ef5b6df8..90130c3ab 100644
--- a/npc/re/cities/dicastes.txt
+++ b/npc/re/cities/dicastes.txt
@@ -4,6 +4,8 @@
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= El Dicastes Town Script
@@ -24,7 +26,7 @@ dicastes01,194,159,5 script Excited Galten#a 4_MAN_GALTUN1,{
mes "As long as we have him,";
mes "it will only be a matter of time before Sapha";
mes "will rule this land.";
- close;
+ close;
}
mes "¡ø¢²¢£ ¡Ð ¡ò¡ð¡ð";
mes "¡÷¡ø¡ñ ¡ü ¡ü";
@@ -47,7 +49,7 @@ dicastes01,202,86,3 script Sentinel#a 4_MAN_GALTUN1,{
next;
mes "[Sentinel]";
mes "Hey, you are an outsider!";
- close;
+ close;
}
mes "¡ô¢±¢± ¡û ¡ó¡Ð¡ñ ¢£ ¢¤¡ú";
mes "¡ø¡ó¢² ¢¤ ";
@@ -58,7 +60,7 @@ dicastes01,202,86,3 script Sentinel#a 4_MAN_GALTUN1,{
next;
mes "[Sentinel]";
mes "¡ñ¡ö¡ï ¡ú ¡ó¢³¡ô";
- close;
+ close;
}
dicastes01,194,95,5 script Sentinel#b 4_MAN_GALTUN,{
@@ -67,7 +69,7 @@ dicastes01,194,95,5 script Sentinel#b 4_MAN_GALTUN,{
mes "I permit your entry.";
mes "But if you dare to cause trouble";
mes "you won't know what hit you. Beware!";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø ¡ó";
mes "¡ø¡ï¡û ¡ó ¡û¢¤¢² ¡÷ ¢£";
@@ -82,8 +84,8 @@ dicastes01,234,158,0 script Training Galten#a 4_MAN_GALTUN,{
mes "if I keep up with my training every day.";
close;
}
- mes "ø¡ô¡ü ¡¡ø¡ô¡ü ¡ø";
- mes "ô ¡ø";
+ mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
+ mes "¡ô ¡ø";
next;
mes "Don't know what it means.";
close;
@@ -94,7 +96,7 @@ dicastes01,244,166,0 script Training Galten#b 4_MAN_GALTUN,{
if (isequipped(2782)) {
mes "I wonder if Ahat knows how";
mes "hard I am training.";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø";
mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
@@ -125,10 +127,10 @@ dicastes01,248,129,0 script Training Galten#d 4_MAN_GALTUN,{
mes "I heard this isn't training";
mes "equipment but a massager";
mes "for trainees like me.";
- close;
+ close;
}
mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü";
- mes "¡ø¡ô¡ü ¡ø¡ ø¡ô¡ü ¡ø";
+ mes "¡ø¡ô¡ü ¡ø ¡ø¡ô¡ü ¡ø";
next;
mes "Don't know what it means.";
close;
@@ -153,7 +155,7 @@ dic_in01,349,282,4 script Waiting Galten#in_1 4_MAN_GALTUN1,{
mes "[Waiting Galten]";
mes "Here is the Battle Station.";
mes "We are all tensed up to be ready for action.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ñ¡õ¡ü ¢£ ¡ó";
@@ -165,7 +167,7 @@ dic_in01,370,261,1 script Waiting Galten#in_2 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "Boring.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ù¢¤¢±";
@@ -176,7 +178,7 @@ dic_in01,381,261,1 script Waiting Galten#in_3 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "Zzzzz...";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ú¡ô";
@@ -187,7 +189,7 @@ dic_in01,370,282,4 script Waiting Galten#in_4 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Waiting Galten]";
mes "El Dicastes is the most peaceful place in this world as long as I am here.";
- close;
+ close;
}
mes "[¢²¡Ð¡û ¡ù ¡Ð]";
mes "¡ï¡ï¢³ ¡þ ¡ö¢³¢£ ¢± ¢³¡û¡õ ¡ø ¡þ¡ï¡ï ¡ø ¡û";
@@ -198,7 +200,7 @@ dic_in01,354,219,4 script Resting Galten#in_5 4_MAN_GALTUN1,{
if (isequipped(2782)) {
mes "[Resting Galten]";
mes "Resting is always so sweet.";
- close;
+ close;
}
mes "[¡õ¡ø¡ò ¡ü ¢¤]";
mes "¡ï¡õ¡ù ¡ö ¡ò¡ð¢² ¢³ ¡ö";
@@ -212,7 +214,7 @@ dic_in01,365,197,1 script Resting Galten#in_6 4_MAN_GALTUN1,{
next;
mes "[Resting Galten]";
mes "You say I don't look like I'm resting? But I'm already used to this.";
- close;
+ close;
}
mes "[¡õ¡ø¡ò ¡ü ¢¤]";
mes "¡ô¡ï¢¤ ¡ö ¡ù¡ð¡ñ ¡ü ¡ó¡û¡û";
@@ -228,7 +230,7 @@ dic_in01,29,119,4 script Resting Piom#04 4_MAN_PIOM6,{
if (isequipped(2782)) {
mes "[Resting Piom]";
mes "Why is it so noisy when I'm trying to get rest?";
- close;
+ close;
}
mes "[¢£¡ù¡ò ¢¤ ¡ù]";
mes "¡ü¢²¡ð ¡Ð ¡ò¡ø¢² ¡ô ¢²¡õ";
@@ -244,7 +246,7 @@ dic_in01,91,113,5 script Suspicious Piom#a 4_MAN_PIOM6,{
if(select("Nope!:You first.") == 1) {
mes "[Suspicious Piom]";
mes "Never mind.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "Oh, you do seem to know?";
@@ -256,11 +258,11 @@ dic_in01,91,113,5 script Suspicious Piom#a 4_MAN_PIOM6,{
mes "[Suspicious Piom]";
mes "I'm only a very curious";
mes "ordinary Piom.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "I am not going to say anything, either!";
- close;
+ close;
}
mes "¡ó¢³¡ó ¡ó ¡ó¡þ¡ö";
mes "¡õ ¢³¢²¡÷ ¡ó¡ó";
@@ -268,7 +270,7 @@ dic_in01,91,113,5 script Suspicious Piom#a 4_MAN_PIOM6,{
if(select("Can't tell what it means:Is it a curse??") == 2) {
mes "[Suspicious Piom]";
mes "Too bad.";
- close;
+ close;
}
mes "[Suspicious Piom]";
mes "Be on your";
@@ -283,7 +285,7 @@ dic_in01,168,116,5 script Tired Piom#c 4_MAN_PIOM5,{
mes "information, you'd have better";
mes "luck with the Cat Merchant than wandering around here.";
mes "But of course you'll have to pay the price.";
- close;
+ close;
}
mes "¡þ¡õ¡ð ¢³ ¢³¡þ";
mes "¡þ¡ø¡ð ¡ö ¡ñ¡ú¡ð ¡ò";
@@ -300,7 +302,7 @@ dic_in01,149,104,5 script Tired Piom#b 4_MAN_PIOM2,{
mes "I think the effects are weaker than before,";
mes "or is it just me?";
emotion e_what;
- close;
+ close;
}
mes "¡ð¡Ð¡ú ¡ø ¢²";
mes "¡ö¡õ¡ó ¢¤ ¡ò¡ò¢³ ¡ô ¡ô¡ó¡ñ";
@@ -325,7 +327,7 @@ dic_in01,341,113,3 script Tired Piom#a 4_MAN_PIOM5,{
emotion e_swt;
mes "[Tired Piom]";
mes "I'll be rejected again, right?";
- close;
+ close;
}
mes "¡÷¡ò¡û ¡ó ¡ó¡Ð¢±";
mes "¡ó¡õ¡ù ¡þ ¡ò¢±¡ñ ¡õ ¢£";
@@ -362,7 +364,7 @@ dic_in01,32,54,5 script Venknick#el_01 4_MAN_BENKUNI,{
mes "[Venknick]";
mes "Oh feels so refreshed.";
mes "The refined Bradium was the best ever. Do you want to try some?";
- close;
+ close;
}
mes "[¡ó¡ò¡ð]";
mes "¡ù¡ó¢¤ ¢± ¢£";
@@ -406,7 +408,7 @@ dic_in01,360,125,5 script Serious Venknicka 4_MAN_BENKUNI,{
mes "A sudden increase in Bradium production.";
mes "Why?";
mes "I will have to get more factory lines running.";
- close;
+ close;
}
mes "¡û¡õ¡ñ ¢² ¢²¢¤¡Ð ¢² ¡ü¡ñ¡õ";
mes "¡þ¡ó¡ö ¢²";
@@ -416,7 +418,7 @@ dic_in01,360,125,5 script Serious Venknicka 4_MAN_BENKUNI,{
dic_in01,42,250,5 script Guide#diel_1 4_MAN_PIOM6,{
if (isequipped(2782)) {
- if (ep13_3_invite > 5) {
+ if (ep13_3_invite > 5) {
mes "[Guide]";
mes "I'm Dior, your kind guide for El Dicastes.";
mes "How can I help you?";
@@ -435,7 +437,7 @@ dic_in01,42,250,5 script Guide#diel_1 4_MAN_PIOM6,{
mes "[Guide]";
mes "Oh, you didn't ask?";
mes "But since I'm Dior, the kind guide. He he.";
- close;
+ close;
}
mes "- The guide looks at you with an alert expression. -";
close;
@@ -463,14 +465,14 @@ dic_in01,42,250,5 script Guide#diel_1 4_MAN_PIOM6,{
dic_in01,335,34,5 script Talkative Piom#a 4_MAN_PIOM4,{
mes "[Talkative Piom]";
- if (isequipped(2782)) {
+ if (isequipped(2782)) {
mes "At my factory";
mes "we not only refine Bradium,";
mes "but we also produce various";
mes "tools for daily use.";
mes "We manufacture war supplies";
mes "here too.";
- close;
+ close;
}
mes "¡ü¡ù¢± ¢³";
mes "¡÷¡ø¡ï ¡þ ¡ó¡ó";
@@ -486,7 +488,7 @@ dic_in01,387,30,1 script Manuk Piom#a 4_MAN_PIOM,{
if (isequipped(2782)) {
mes "You! We met in Manuk, didn't we?";
mes "I've come to pick up the weapon I ordered.";
- close;
+ close;
}
mes "¡ü¡ó¡þ ¡ó ¡ï¡ð¢¤ ¡ü ¡ð¢±";
mes "¡ù¡ô¡ï ¡ú ¡ñ¡ù¢³ ¡ó ¡ò¡ö¡ó ¡ô¡ô";
@@ -501,7 +503,7 @@ dicastes01,282,210,4 script Free Knit#a 4_MAN_NITT,{
mes "Saphas can live forever.";
mes "Our childhood lasts 10 years,";
mes "which is short.";
- close;
+ close;
}
mes "¡ñ¡þ¡ð ¡ó ¡ü¡ò¡ö ¡÷";
mes "¢³¡ð¡ï ¢£ ¡ù¡ô¡ò ¡ô ¡ó¡þ¡ñ ¢² ¡ñ¡û¢£ ¢²";
@@ -525,7 +527,7 @@ dicastes01,246,210,3 script Free Venknick#a 4_MAN_BENKUNI,{
mes "[Free Venknick]";
mes "The thing rolling around is a gem,";
mes "but why are you interested in it?";
- close;
+ close;
}
mes "¡ô¡ï¢£ ¢¤ ¡÷¡õ¢± ¡ü ¡ñ¡õ";
mes "¡ü¢³";
@@ -547,7 +549,7 @@ dicastes01,235,245,4 script Excited Piom#a 4_MAN_PIOM4,{
mes "Have you seen Ahat?";
emotion e_ho;
mes "His popularity here in El Discastes is phenomenal!";
- close;
+ close;
}
mes "[Excited Piom]";
mes "¡ú¡þ¡ó ¢³ ¡ü¢²¡ñ ¢±";
@@ -564,7 +566,7 @@ dicastes01,284,262,3 script Favorable Knit#a 4_MAN_NITT,{
mes "We start by living together in common facilities after we are born.";
mes "That is why all Saphas are like family.";
mes "We never have any quarrels between classes.";
- close;
+ close;
}
mes "¡ô¢±¡ó ¡õ ¡ú¡÷¡Ð ¡õ";
mes "¡ü¡ï¡Ð ¡õ ¡ô¡ó¡ü ¡ó ¢³";
@@ -583,7 +585,7 @@ dicastes01,164,180,4 script Limpy Piom#a 4_MAN_PIOM6,{
mes "I hope it doesn't come all";
mes "the way to the capital city here.";
emotion e_dots;
- close;
+ close;
}
mes "¢²¡ô¡þ ¡ù ¡õ¡Ð";
mes "¢³¡ô¡û ¡ú ¡ø";
@@ -608,7 +610,7 @@ dicastes01,191,202,4 script Complaining Galten#fihs 4_MAN_GALTUN,{
mes "[Complaining Galten]";
mes "Then you don't know about the legend behind the statue?";
mes "Then, I don't know what to talk about with you.";
- close;
+ close;
}
emotion e_gg,0,"Crazy Venknick#fihsing1";
mes "[Complaining Galten]";
@@ -643,7 +645,7 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 4_MAN_BENKUNI,{
if(select("Give 5000 Zeny.:Don't give 5000 Zeny.") == 2) {
mes "[Crazy Venknick]";
mes "Don't come back with regrets.";
- close;
+ close;
}
if (Zeny < 5000) {
mes "[Crazy Venknick]";
@@ -651,7 +653,6 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 4_MAN_BENKUNI,{
mes "no legend to share with";
mes "the poor.";
close;
- close;
}
Zeny -= 5000;
mes "[Crazy Venknick]";
@@ -674,7 +675,7 @@ dicastes01,202,197,4 script Crazy Venknick#fihsing1 4_MAN_BENKUNI,{
sc_start SC_BLIND,20000,0;
next;
mes "You feel outraged at being tricked.";
- close;
+ close;
}
mes "[¡ö¡ú¡ù ¢³ ]";
mes "¢²¡û¡ó ¡ó ¡ù¢¤¡ø";
@@ -712,4 +713,4 @@ dic_in01,98,96,3 script Lost Galten#a 4_MAN_GALTUN1,{
mes "¡ü¡ø¡ñ ¢£ ";
mes "¡ö¡ï¢² ¡û ¡ö¡ó";
close;
-} \ No newline at end of file
+}
diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt
index ae5d8b48c..e8cfdb615 100644
--- a/npc/re/cities/malangdo.txt
+++ b/npc/re/cities/malangdo.txt
@@ -359,7 +359,7 @@ OnTouch:
case 3:
soundeffect "assassin_of_sunset.wav",0;
break;
- case 4:
+ case 4:
emotion e_ho;
emotion e_ho,0,"Wandering Minstrel#mal";
break;
diff --git a/npc/re/guides/guides_dicastes.txt b/npc/re/guides/guides_dicastes.txt
index e5b6f4133..9feca9df7 100644
--- a/npc/re/guides/guides_dicastes.txt
+++ b/npc/re/guides/guides_dicastes.txt
@@ -84,7 +84,7 @@ dicastes01,181,191,5 script Traveler Ichack#info 4_M_SHADOWCHASER,2,2,{
close;
}
OnTouch:
- if (ep13_3_invite == 6)
+ if (ep13_3_invite == 6)
emotion e_gasp,0;
end;
}
diff --git a/npc/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
index de076489e..b995092a1 100644
--- a/npc/re/instances/BangungotHospital.txt
+++ b/npc/re/instances/BangungotHospital.txt
@@ -392,7 +392,7 @@ OnInstanceInit:
disablenpc instance_npcname("#Memorial Start_time");
end;
OnEnable:
- specialeffect EF_BAT2,AREA,instance_npcname("#Memorial Start");
+ specialeffect EF_BAT2,AREA,instance_npcname("#Memorial Start");
initnpctimer;
end;
OnDisable:
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
index f20a7e3b5..0a26dab9c 100644
--- a/npc/re/instances/BuwayaCave.txt
+++ b/npc/re/instances/BuwayaCave.txt
@@ -142,7 +142,7 @@ OnTouch:
setquest 4229;
warp "1@ma_c",35,57;
end;
- }
+ }
case 2:
mes "[Guard]";
mes "You must value your life.";
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index c76fe2c46..0c32c73c6 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -111,8 +111,9 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
mes "but maybe you humans can.";
mes "Good luck!";
close;
- } else
+ } else {
instance_destroy(.@instance);
+ }
case 2:
mes "[Laphine Soldier]";
mes "Well, you've made the right decision.";
@@ -156,13 +157,13 @@ bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
mes "The world beyond the log tunnel looks dark and suffocating.";
mes "Your instinct is screaming that this forest is dangerous.";
close;
- } else {
+ } else {
if (checkquest(7211,PLAYTIME) == 2) erasequest 7211;
if (checkquest(7211,PLAYTIME) == -1) 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;
- }
+ }
}
// Instance Scripts
diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt
index 33027e830..4be3133bc 100644
--- a/npc/re/instances/OldGlastHeim.txt
+++ b/npc/re/instances/OldGlastHeim.txt
@@ -480,7 +480,7 @@ OnTimer35000:
end;
OnTimer45000:
donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk4";
- end;
+ end;
OnTimer50000:
donpcevent instance_npcname("Himmelmez#ghinstance1")+"::OnTalk5";
end;
@@ -517,7 +517,7 @@ OnTimer85000:
hideonnpc instance_npcname("Khalitzburg Crusader#22");
set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ set .@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$;
@@ -558,7 +558,7 @@ OnTimer88000:
hideonnpc instance_npcname(".#ghinstance22");
set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ set .@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$;
@@ -1771,7 +1771,7 @@ OnTalk1:
}
2@gl_k,158,252,3 script Himmelmez#ghinstance4 4_F_HIMEL,4,4,{
- end;
+ end;
OnInstanceInit:
donpcevent instance_npcname("Himmelmez#ghinstance4")+"::OnDisable";
end;
diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt
new file mode 100644
index 000000000..70cc81b8f
--- /dev/null
+++ b/npc/re/instances/WolfchevLaboratory.txt
@@ -0,0 +1,3296 @@
+//===== Hercules Script ========================================================
+//= Wolfchev's Laboratory
+//===== By: ====================================================================
+//= Kisuka (1.0)
+//===== Current Version: =======================================================
+//= 1.0.1
+//===== File Encoding ==========================================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
+//===== Description: ===========================================================
+//= Defeat Wolfchev's human experimentations.
+//===== Additional Comments: ===================================================
+//= 1.0.0 Initial Release. [Kisuka]
+//= 1.0.1 Some Clean-Up and Fixes. [Euphy]
+//==============================================================================
+
+1@lhz mapflag src4instance
+
+// Giacomo Girolam
+//==============================================================================
+lighthalzen,303,303,6 script Giacomo Girolamo#kiup2 4_M_KHMAN,3,3,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lhz_boss > 30) {
+ if (!lght_duk01) {
+ if (Sex) {
+ emotion e_pif, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "....a guy....?";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Ah! Hey! Man!";
+ next;
+ select("What's up?");
+ emotion e_what, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Have you ever heard of horrific human experimentation committed in Rekenber Corporation whose head office is here in Lighthalzen?";
+ next;
+ select("Whaaat?! human experimentation?");
+ emotion e_omg, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Yea! human experimentation!!";
+ mes "There are a lot of rumors that horrible human experimentation is actually performed, but these people in the slum....don't want to believe that due to the welfare movement from Rekenber.";
+ next;
+ emotion e_swt2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Well! and those rich people, seem to know something but they never mention that...";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Ahh!! And this is a secret that just SOME PEOPLE know. I heard that from Rekenber Lab.,.. a person named...um...Wol....";
+ next;
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Anyway!! A scientist named Wolf.. something suddenly got sacked. and he must be related with this rumor, I think...";
+ next;
+ select("You mean... Wolfchev?");
+ emotion e_gasp, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Ohhhh?! yeah Wolfchev!! That's right, the name was Wolfchev.. The mad scientist..";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I suppose you can then understand the story faster... I am sure that he's involved in the rumor. I swear.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "By the way..what about you? Is there anything that you know about him?";
+ next;
+ if(select("Pretend you know nothing.", "Tell him what you know.") == 1) {
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Not really. I've ever heard of his name, but I don't know anything about him..";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Hm.... You sound suspicious, dude! huh?";
+ next;
+ } else {
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "He happens to research into Human 'Homunculus' without telling that to Rekenber Corp., and there was a whistle-blower who reported to the corp. so he was fired.";
+ next;
+ emotion e_no1, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh! Man..! You seem to know pretty much! By any chance, are you concerned with Rekenber??";
+ next;
+ emotion e_dots;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ }
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Don't worry. I didn't mean anything.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Well! I am just curious only because some people in the slum and some adventurers were missing,";
+ mes "and I heard that Rekenber was doing human experimentation with those missing people. Hope you don't get me wrong.";
+ next;
+ lght_duk01 = 1;
+ setquest 5109;
+ mes "Actually, it is not a funny rumor.";
+ mes "Should investigate the lab where the experiment was carried out.";
+ close;
+ } else {
+ emotion e_lv, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh! What a beautiful lady!!";
+ next;
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "How come a beauty is here, in a place with dangerous rumor?";
+ next;
+ switch(select("Walking..", "To hang out..", "Shopping..")) {
+ case 1:
+ mes "[Giacomo Girolamo]";
+ mes "Ahh.. Lady, you are so graceful even when you are just walking.....";
+ next;
+ break;
+ case 2:
+ mes "[Giacomo Girolamo]";
+ mes "Lady. You are a dignified lady even if you hang out in this poor town...";
+ next;
+ break;
+ case 3:
+ mes "[Giacomo Girolamo]";
+ mes "Ahh.. Lady.. Shopping in the slum!!.. Are you a type who needs to look around every single shop?";
+ next;
+ break;
+ }
+ }
+ select("... .... ... ....");
+ mes "[Giacomo Girolamo]";
+ mes "Well, how dare I ask you and be interested in what the lady does...";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I just hope that the lady gets out of this town with dangerous rumors..";
+ next;
+ select("Dangerous rumors?");
+ emotion e_what, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Ah... Lady may not have heard of the rumor.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Recently, some people from this town, actually from the slum...and some adventurers are missing...";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "and then the rumor came up, since disappearance cases happen pretty often, that Rekenber is committing a horrible human experimentation in their secret lab.";
+ next;
+ select("Excuse me?! human experimentation?");
+ emotion e_omg, 1;
+ mes "[Giacomo Girolamo]";
+ mes "Yea! human experimentation!!";
+ mes "There are a lot of rumors that horrible human experimentation is actually performed, but these people in the slum....don't want to believe that due to the welfare movement from Rekenber.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Well! the rich people either want to believe..I think.. Ah!! And couple of weeks ago. um. what's his name? Wolfchev??";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Anyway!! that research got fired from the lab. I think he must be involved with this rumor.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "So, please, lady. Please don't be in a place like this and stay in safe ways.";
+ next;
+ lght_duk01 = 1;
+ setquest 5109;
+ mes "............ It seems a pretty serious matter.";
+ mes "Should investigate the lab where the experiment was carried out.";
+ close;
+ } else {
+ mes "[Giacomo Girolamo]";
+ if (Sex) {
+ emotion e_paper, "Giacomo Girolamo#kiup2";
+ mes "Take care yourself and don't disappear!";
+ } else {
+ emotion e_lv2, "Giacomo Girolamo#kiup2";
+ mes "Be careful, Lady.";
+ }
+ close;
+ }
+ } else {
+ if (Sex) {
+ emotion e_ho, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Only those beautiful ladies are the reason of my life~!";
+ mes "I, Giacomo Girolamo Casanova de Seingalt am never interested in guys like you though!!";
+ next;
+ emotion e_an, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "but I can listen to you...you wanna say anything to me?";
+ next;
+ switch(select("No..?", "About ladies..", "You Womanizer!!", "Envy you...", "What's the rumor lately?")) {
+ case 1:
+ emotion e_hmm, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Hey you, get out of my way then..";
+ close;
+ case 2:
+ emotion e_an, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "I don't feel like talking about my precious ladies making fun of them. You do it with your friends.";
+ close;
+ case 3:
+ mes "[Giacomo Girolamo]";
+ mes "Hey.. Excuse me!!! but I'm not a 'Womanizer', I am just a person who adores ladies.";
+ next;
+ emotion e_ok, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Of course..... Yea... If I'm a womanizer, all the men on earth are too! I'm just Casanova. umhahahaha.";
+ close;
+ case 4:
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Haa.. Do you....? not have any woman but your sister and mother around you?";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "... .... ...";
+ next;
+ emotion e_swt2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Oh...... sorry.. I got your point....";
+ close;
+ case 5:
+ mes "[Giacomo Girolamo]";
+ mes "You.. are not like how you seem? Interesting..";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "Yea, actually recently a lot of people from the slum and some wandering adventurers got disappeared. and I don't know why.";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "You gotta be careful too..";
+ close;
+ }
+ } else {
+ emotion e_what, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Hey, lady?";
+ next;
+ mes "[Giacomo Girolamo]";
+ switch(rand(1,10)) {
+ case 1:
+ mes "Wasn't it painful when you fell down from Heaven, my Angel?";
+ next;
+ break;
+ case 2:
+ mes "You must be tired. Because you are always wandering my mind.";
+ next;
+ break;
+ case 3:
+ mes "Are you not tired of walking around in my dream last night?";
+ next;
+ break;
+ case 4:
+ mes "Excuse me. But I think I lost my heart. Could you please borrow me yours?";
+ next;
+ break;
+ case 5:
+ mes "Do you believe in love at first sight?? Or can we start again..?";
+ next;
+ break;
+ case 6:
+ mes "I am so sorry but, can you kiss with a person who just met?? Noo? Ok then let me introduce myself.";
+ next;
+ break;
+ case 7:
+ mes "I'm so lost here since it's the first time. Can you let me know which is the way to your heart?";
+ next;
+ break;
+ case 8:
+ mes "Give me a map please.. To get a way....I'm fallen in your eyes.";
+ next;
+ break;
+ case 9:
+ mes "Your eyes....I wanna be forever there.";
+ next;
+ break;
+ case 10:
+ mes "I promise that I will be your everything in any case, in any difficult situation.";
+ next;
+ break;
+ }
+ emotion e_lv2, "Giacomo Girolamo#kiup2";
+ mes "[Giacomo Girolamo]";
+ mes "Today is the first day we met, but I love you, Lady <3 ";
+ next;
+ mes "[Giacomo Girolamo]";
+ mes "And I am telling you this because I'm just worried about you. You need to get out of this town which is full of disappearance cases.";
+ close;
+ }
+ }
+
+ OnTouch:
+ if (!lght_duk01)
+ emotion (Sex ? e_pif : e_lv2), "Giacomo Girolamo#kiup2";
+ end;
+}
+
+// Weird Old Man (Rewards)
+//==============================================================================
+lighthalzen,342,291,4 script Weird old man#Bio4Reward 4_M_EINOLD,{
+ if ((MaxWeight - Weight) < 2800 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ mes "[Weird old man]";
+ mes "Phew, those young people nowadays, are so rude and have no manners.";
+ next;
+ if(select("Ignore him", "Talk with him") == 1) {
+ mes "[Weird old man]";
+ mes "You, Very bad young man!";
+ close;
+ }
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Sir, Are you alright??";
+ next;
+ mes "[Weird old man]";
+ mes "....?? You are not like other young people. You have good manners! You know what happened to me..?";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "I was on the way to visit my son who lives in Rune Midgarts. It's really far away, so I took the airplane, and..";
+ next;
+ mes "[Weird old man]";
+ mes "those young people...so noisy.... I was standing but non of them offered me a seat..and they were just talking in loud voices which bothered everyone.";
+ next;
+ mes "[Weird old man]";
+ mes "I could lecture them if I were 10 years younger than now..";
+ next;
+ mes "[Weird old man]";
+ mes "Pffff.. Never like the time passing....";
+ next;
+ mes "[Weird old man]";
+ mes "So, you... what would you do??";
+ next;
+ mes "[Weird old man]";
+ mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm.";
+ next;
+ break;
+ case 2:
+ mes "[Weird old man]";
+ mes "I was on the way to visit my son who lives in Rune Midgarts. It's really far away, so I took the airplane, and..";
+ next;
+ mes "[Weird old man]";
+ mes "those young people...so noisy.... I was standing but non of them offered me a seat..and they were just talking in loud voices which bothered everyone.";
+ next;
+ mes "[Weird old man]";
+ mes "I could lecture them if I were 10 years younger than now..";
+ next;
+ mes "[Weird old man]";
+ mes "Pffff.. Never like the time passing....";
+ next;
+ mes "[Weird old man]";
+ mes "So, you... what would you do??";
+ next;
+ mes "[Weird old man]";
+ mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm. Right?";
+ next;
+ mes "[Weird old man]";
+ mes "Isn't that right?!";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ mes "[Weird old man]";
+ mes "Once I was walking in the town, and some boy were spitting on the street, and were bothering girls who were passing by...tut tut!";
+ next;
+ mes "[Weird old man]";
+ mes "The world is going to the dogs.. How will it be?? It was even a day time when they were doing it..tut tut.";
+ next;
+ switch(rand(1,2)) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ case 2:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ mes "[Weird old man]";
+ mes "Lately young people are not so patient!!!!";
+ next;
+ mes "[Weird old man]";
+ mes "That often, they say they will quit.. they say they can't more. How will they live all the lift with that kind of mentality..tut tut.";
+ next;
+ mes "[Weird old man]";
+ mes "It's not easy to find a job, it is very difficult to be hired. But then they even cannot stand a week there, and leave the work already.";
+ next;
+ mes "[Weird old man]";
+ mes "How impatient and irresponsible!!";
+ next;
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ }
+ case 2:
+ mes "[Weird old man]";
+ mes "Oh, and then! you know what...?";
+ next;
+ break;
+ }
+ }
+ mes "^E7A43DThe old man talked over and over again.^000000";
+ next;
+ mes "[Weird old man]";
+ mes "Hm......You are not like common young people, you seem pretty patient too. I like that!!!";
+ next;
+ mes "[Weird old man]";
+ mes "Now I am just an old, weak man but when I was young, I was a famous merchant in the town.";
+ next;
+ mes "[Weird old man]";
+ mes "It's been a while since I stopped the business,";
+ mes "but a former client of mine contacted me and asked me";
+ next;
+ mes "[Weird old man]";
+ mes "If I could get him some unknown objects named 'Will of Warrior', 'Thirst for Blood', 'Chill of the Dead'.";
+ next;
+ mes "[Weird old man]";
+ mes "I liked your politeness which is not like most of young people, so if you get me those, I will dare to give you some stuffs that I consider as my treasures.";
+ next;
+ while(1) {
+ switch(select("When I gather them, I will come back", "Show me the armors", "Show me the weapons")) {
+ case 1:
+ mes "[Weird old man]";
+ mes "OK, young man. See you later";
+ close;
+ case 2:
+ mes "[Weird old man]";
+ mes "So, you are interested in armors.";
+ next;
+ mes "[Weird old man]";
+ mes "These are the armors I have.";
+ next;
+ for(.@i = 1; .@i < 8; .@i++) {
+ if(((.@i == 1 || .@i == 5) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 35)) ||
+ ((.@i == 2 || .@i == 3) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 22)) ||
+ ((.@i == 4 || .@i == 7) && (countitem(Will_Of_Warrior) >= 300) && (countitem(Blood_Thirst) >= 300) && (countitem(Goast_Chill) >= 400)) ||
+ ((.@i == 6) && (countitem(Will_Of_Warrior) >= 100) && (countitem(Blood_Thirst) >= 50) && (countitem(Goast_Chill) >= 30))) {
+ .@armor$[.@i] = "^0000FF";
+ } else {
+ .@armor$[.@i] = "^FF0000";
+ }
+ }
+ while(1) {
+ switch(select(
+ "Show me other items.",
+ ""+.@armor$[1]+"Giant Shield^000000",
+ ""+.@armor$[2]+"Acient Book of Geffenia-Water^000000",
+ ""+.@armor$[3]+"Bible of Promise(2nd Vol.)^000000",
+ ""+.@armor$[4]+"Salvage Cape^000000",
+ ""+.@armor$[5]+"Assassin's Handcuffs^000000",
+ ""+.@armor$[6]+"Green Operating Gown^000000",
+ ""+.@armor$[7]+"Ancient Gold Decoration^000000"
+ )) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Have a look.";
+ next;
+ .@break = 1;
+ break;
+ case 2:
+ mes "<<Giant Shield[1]>>";
+ mes "Decrease 5% of Damage from Large Monsters, if Refine Lv is 9, decrease 5% more of the Damage.";
+ mes "Shield / Def 130 / Weight 280 / Required Lv 100 / Socket 1 / for 3rd Swordman Classes";
+ callsub L_Reward, Giant_Shield, 100, 50, 35;
+ break;
+ case 3:
+ mes "<<Acient Book of Geffenia-Water[1]>>";
+ mes "INT + 1, MDEF + 2. If Original INT point is 120, MATK + 10, MHP + 800.";
+ mes "When equipping with Lacryma Stick, the casting % from Storm Gust, Frost Misty and Jack frost will discount equivalent to 4 times Refine Lv.";
+ mes "Shield / Def 30 / Weight 100 / Required Lv 100 / Socket 1 / for Warlock";
+ callsub L_Reward, Geffenia_Book_Water, 100, 50, 22;
+ break;
+ case 4:
+ mes "<<Bible of Promise(2nd Vol.)[1]>>";
+ mes "MDEF + 5, Allow to use 'Odin's Power'(Lv 2). Increase 5% more for Heal skill.";
+ mes "Shield / Def 20 / Weight 50 / Required Lv 140 / Socket 1 / for Archbishop";
+ callsub L_Reward, Bible_Of_Promise2, 100, 50, 22;
+ break;
+ case 5:
+ mes "<<Salvage Cape[0]>>";
+ mes "Allow to use 'Cicada Skin Shed'(Lv 1). Cool time for this skill will be 30 seconds. When equiping it, SP consumption for using any skill will be doubled, When taking it off, SP - 1200.";
+ mes "Garment / Def 1 / Weight 40 / Required Lv 130 / Socket 0 / for Archbishop";
+ callsub L_Reward, Salvage_Cape, 100, 50, 35;
+ break;
+ case 6:
+ mes "<<Assassin's Handcuffs[1]>>";
+ mes "MSP + 20, CRI + 3. When equipping with Krishna, ATK + 50, ATK power from 'Sonic Blow' 50% increased, FLEE - 30. When equipping with Cakram CRI + 4, Critical ATK power 40% increased, MHP - 10%.";
+ mes "Accessory / Def 3 / Weight 40 / Required Lv 100 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Assassin_Handcuffs, 300, 300, 400;
+ break;
+ case 7:
+ mes "<<Green Operating Gown[1]>>";
+ mes "DEX + 1, MSP + 30. Equipping with Scalpel will let to drop 'Immortal Heart', 'Alcohol' with a certain chance when hunting Human, Animal type monsters. Refine Lv affects the drop rate.";
+ mes "Armor / Def 66 / Weight 66 / Required Lv 100 / Socket 1 / for Generic";
+ callsub L_Reward, Green_Operation_Coat, 100, 50, 30;
+ break;
+ case 8:
+ mes "<<Green Operating Gown[1]>>";
+ mes "DEX + 1, MSP + 30. Equipping with Scalpel will let to drop 'Immortal Heart', 'Alcohol' with a certain chance when hunting Human, Animal type monsters. Refine Lv affects the drop rate.";
+ mes "Armor / Def 66 / Weight 66 / Required Lv 100 / Socket 1 / for Generic";
+ callsub L_Reward, Ancient_Gold_Deco, 300, 300, 400;
+ break;
+ }
+ if(.@break)
+ break;
+ }
+ case 3:
+ mes "[Weird old man]";
+ mes "So, you are interested in weapons.";
+ next;
+ mes "[Weird old man]";
+ mes "These are the weapons I've got.";
+ next;
+ for(.@i = 1; .@i < 15; .@i++) {
+ if(((.@i == 1) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100) &&
+ (countitem(Goast_Chill) >= 10)) ||
+ ((.@i == 2) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100) &&
+ (countitem(Goast_Chill) >= 85)) ||
+ ((.@i == 3 || .@i == 4 || (.@i >= 8 && .@i < 11) || .@i >= 12) && (countitem(Will_Of_Warrior) >= 50) &&
+ (countitem(Blood_Thirst) >= 100) && (countitem(Goast_Chill) >= 35)) ||
+ ((.@i == 5 || .@i == 7 || .@i == 11) && (countitem(Will_Of_Warrior) >= 50) && (countitem(Blood_Thirst) >= 100)
+ && (countitem(Goast_Chill) >= 40)) ||
+ ((.@i == 6) && (countitem(Will_Of_Warrior) >= 300) && (countitem(Blood_Thirst) >= 300) &&
+ (countitem(Goast_Chill) >= 400))) {
+ .@weapon$[.@i] = "^0000FF";
+ } else {
+ .@weapon$[.@i] = "^FF0000";
+ }
+ }
+ while(1) {
+ switch(select(
+ "Show me other items.",
+ ""+.@weapon$[1]+"Agent Katar^000000",
+ ""+.@weapon$[2]+"Guillotine Katar^000000",
+ ""+.@weapon$[3]+"Ygnus Stale^000000",
+ ""+.@weapon$[4]+"End Sektura^000000",
+ ""+.@weapon$[5]+"Cannon Spear^000000",
+ ""+.@weapon$[6]+"Giant Lance^000000",
+ ""+.@weapon$[7]+"Chilly Spell Book^000000",
+ ""+.@weapon$[8]+"Recovery Light^000000",
+ ""+.@weapon$[9]+"Aztoe Nail^000000",
+ ""+.@weapon$[10]+"Scarletto Nail^000000",
+ ""+.@weapon$[11]+"Bloody Cross^000000",
+ ""+.@weapon$[12]+"Catapult^000000",
+ ""+.@weapon$[13]+"Big CrossBow^000000",
+ ""+.@weapon$[14]+"Creeper Bow^000000"
+ )) {
+ case 1:
+ mes "[Weird old man]";
+ mes "Have a look.";
+ next;
+ .@break = 1;
+ break;
+ case 2:
+ mes "<<Agent Katar[1]>>";
+ mes "Every 2 Original LUK points gets additional 1 HIT point";
+ mes "Katar / ATK 170 / Weight 120 / Weapon Lv 3 / Required Lv 100 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Agent_Katar, 50, 100, 10;
+ break;
+ case 3:
+ mes "<<Guillotine Katar[1]>>";
+ mes "DEX + 2. FLEE - 30. 50% more damage to Human monsters. Add 30% more damage for Cross Impact skill.";
+ mes "Katar / ATK 200 / Weight 150 / Weapon Lv 4 / Required Lv 140 / Socket 1 / for Guillotine Cross";
+ callsub L_Reward, Guillotine_Katar, 50, 100, 85;
+ break;
+ case 4:
+ mes "<<Ygnus Stale[1]>>";
+ // FIXME[Haru]: Anyone knows what ¹ßÈ­ means?
+ mes "When doing short distance attack, cast ¹ßÈ­ to the player and to the enemy with a certain chance.";
+ mes "Two-Handed Axe / ATK 250 / Weight 190 / Fire Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
+ callsub L_Reward, Ygnus_Stale, 50, 100, 35;
+ break;
+ case 5:
+ mes "<<End Sektura[1]>>";
+ mes "When doing short distance attack, cast Freezing to the player and to the enemy with a certain chance.";
+ mes "Two-Handed Axe / ATK 250 / Weight 190 / Water Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
+ callsub L_Reward, End_Sektura, 50, 100, 35;
+ break;
+ case 6:
+ mes "<<Cannon Spear[1]>>";
+ mes "MSP - 100, Increases 10% of Damage impacted with Cannon Spear, Additional ATK power of Cannon Spear equivalent to 3 times Refine Lv.";
+ mes "One-Handed Spear / ATK 180 / Weight 160 / Weapon Lv 4 / Required Lv 100 / Socket 1 / for Royal Guard";
+ callsub L_Reward, Cannon_Spear, 50, 100, 40;
+ break;
+ case 7:
+ mes "<<Giant Lance[0]>>";
+ mes "ASPD - 10, When it's taken off, the character gets SP - 600. 20 more seconds of Delay time exists before using back the Clashing Spiral. If the original STR points are 120, + ATK 300.";
+ mes "Two-Handed Lance / ATK 20 / Weight 2000 / Weapon Lv 4 / Required Lv 140 / Socket 0 / for Rune Knight";
+ callsub L_Reward, Giant_Lance, 300, 300, 400;
+ break;
+ case 8:
+ mes "<<Chilly Spell Book[2]>>";
+ mes "MATK + 160, DEX + 1. Increases ATK % of Cold Bolt, Diamond Dust equivalent to 3 times Refine Lv, also SP consumption from those skills increased equivalent to 5 times Refine Lv. Undestroyable.";
+ mes "Book / ATK 100 / Weight 100 / Water Property / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Sorcerer";
+ callsub L_Reward, Chilly_Spell_Book, 50, 100, 40;
+ break;
+ case 9:
+ mes "<<Recovery Light[1]>>";
+ mes "MATK + 160. Depending on its Refine Lv, Heal Ability and SP consumption for the skill increased. Indestructible.";
+ mes "One-Handed Staff / ATK 30 / Weight 40 / Saint Property / Weapon Lv 4 / Required Lv 110 / Socket 1 / for Archbishop.";
+ callsub L_Reward, Recovery_Light, 50, 100, 35;
+ break;
+ case 10:
+ mes "<<Aztoe Nail[0]>>";
+ mes "MATK + 80. For Physical Melee Attack, cast Freezing to the target with a certain chance. The chance is affected by Refine Lv.";
+ mes "Dagger / ATK 160 / Weight 50 / Wind Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Theif Classes";
+ callsub L_Reward, Aztoe_Nail, 50, 100, 35;
+ break;
+ case 11:
+ mes "<<Scarletto Nail[0]>>";
+ mes "MATK + 80. For Physical Melee Attack, cast Stone curse to the target with a certain chance. The chance is affected by Refine Lv.";
+ mes "Dagger / ATK 160 / Weight 50 / Fire Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Theif Classes";
+ callsub L_Reward, Scarletto_Nail, 50, 100, 35;
+ break;
+ case 12:
+ mes "<<Bloody Cross[0]>>";
+ mes "For Physical Melee Attack, autocast 'Hell Inferno'(Lv 1) with a certain chance. The chance is affected by Refine Lv.";
+ mes "Mace / ATK 170 / Weight 150 / Darkness Property / Weapon Lv 4 / Required Lv 100 / Socket 0 / for High Acolyte Classes";
+ callsub L_Reward, Bloody_Cross, 50, 100, 40;
+ break;
+ case 13:
+ mes "<<Catapult[2]>>";
+ mes "Increases ATK % of 'Triangle Shot' equivalent to 2 times Refine Lv, Also SP consumption from the skill increased.";
+ mes "Bow / ATK 150 / Weight 110 / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Shadow Chaser";
+ callsub L_Reward, Catapult, 50, 100, 35;
+ break;
+ case 14:
+ mes "<<Big CrossBow[2]>>";
+ mes "Increases ATK % of 'Arrow Storm' equivalent to 5 times Refine Lv. Also SP consumption from the skill increased, If the Original AGI points are 120, ASPD + 1.";
+ mes "Bow / ATK 160 / Weight 90 / Weapon Lv 4 / Required Lv 110 / Socket 2 / for Ranger";
+ callsub L_Reward, Big_CrossBow, 50, 100, 35;
+ break;
+ case 15:
+ mes "<<Creeper Bow[2]>>";
+ mes "DEX + 1, For Physical Attack, auto-cast 'Fiber Lock'(Lv 1) with a certain chance.";
+ mes "Bow / ATK 150 / Weight 150 / Weapon Lv 3 / Required Lv 120 / Socket 2 / for 3rd Archer Classes";
+ callsub L_Reward, Creeper_Bow, 50, 100, 35;
+ break;
+ }
+ if(.@break)
+ break;
+ }
+ }
+ }
+
+ L_Reward:
+ next;
+ mes ""+getarg(1)+" Will of Warrior, "+getarg(2)+" Thirst for Blood, "+getarg(3)+" Chill of the Dead are needed for the exchange";
+ next;
+ if(countitem(Will_Of_Warrior) >= getarg(1) && countitem(Blood_Thirst) >= getarg(2) && countitem(Goast_Chill) >= getarg(3)) {
+ if(select("Don't exchange", "Exchange") == 1) {
+ mes "[Weird old man]";
+ mes "Okay..";
+ close;
+ }
+ emotion e_swt2, "Weird old man#Bio4Reward";
+ progressbar "FF00FF", 2;
+ delitem Will_Of_Warrior, getarg(1);
+ delitem Blood_Thirst, getarg(2);
+ delitem Goast_Chill, getarg(3);
+ getitem getarg(0), 1;
+ mes "[Weird old man]";
+ mes "There you go. Visit me sometimes and we could talk.";
+ close;
+ }
+ return;
+}
+
+// Sorcerer (Rewards)
+//==============================================================================
+lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
+ if ((MaxWeight - Weight) < 1200 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ disable_items;
+ mes "[Pudding]";
+ mes "... .... ...";
+ next;
+ switch(select("Umba umba humbaa", "What are you doing here?", "Which are the equipments found so far?", "Here you are, Sir.")) {
+ case 1:
+ emotion e_an;
+ mes "[Pudding]";
+ mes "Hey, excuse me, but I'm not from Umbala! You are so rude.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ mes "[Pudding]";
+ mes "As you can see, I'm a training Sorcerer, and my name is Pudding.";
+ next;
+ select("....?");
+ emotion e_an;
+ mes "[Pudding]";
+ mes "... What's that face? I'm starting to feel unpleasant..";
+ next;
+ emotion e_ok;
+ mes "[Pudding]";
+ mes "Couple of days ago, while I was undergoing discipline, I felt a strange, bizzare tinge. So I followed that and it brought me here.";
+ next;
+ select("I see.");
+ mes "[Pudding]";
+ mes "OK, let me continue. I am so bothered if you disturb me while I'm talking.";
+ next;
+ mes "[Pudding]";
+ mes "And I entered to the laboratory here in order to investigate, and oh gosh! I found those monsters which were like doppelgangers from 'Geffen Dungeon'. It was full of them.";
+ next;
+ mes "[Pudding]";
+ mes "From those monsters, I could find rare items like '^F2766EWill of Warrior^000000' '^952420Thirst for Blood^000000' '^88C6F7Chill of the Dead^000000' which you cannot find from any other place.";
+ next;
+ emotion e_what, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "And after many hours of research on my own, I finally figured out a way to use those items. Do you wanna know?";
+ next;
+ switch(select("Oh....pardon?!", "Of course, I really wanna know.")) {
+ case 1:
+ emotion e_omg, 1;
+ emotion e_an, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "Oh my! You fell asleep after you asked me something? Well, anyway I feel lazy to explain again so I will just continue.";
+ next;
+ break;
+ case 2:
+ emotion e_heh, "Sorcerer#Bio4Reward";
+ mes "[Pudding]";
+ mes "Good, I am content that you are listening to my story carefully. Then I will keep explaining.";
+ next;
+ break;
+ }
+ mes "[Pudding]";
+ mes "Those '^F2766EWill of Warrior^000000' and '^952420Thirst for Blood^000000'..... are aggresive but warm materials.";
+ next;
+ mes "[Pudding]";
+ mes "So '^F2766EWill of Warrior^000000' can dwell a special power to the 4th slot of an equipment,";
+ next;
+ mes "[Pudding]";
+ mes "and '^952420Thirst for Blood^000000' can dwell a special power to the 3rd slot.";
+ next;
+ mes "[Pudding]";
+ mes "Whereas!!!";
+ mes "'^88C6F7Chill of the Dead^000000' is a cold type material.";
+ mes "which allows to return the power from '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000' so it let the equipment to be 'ZERO'.";
+ next;
+ mes "[Pudding]";
+ mes "What do you say? Doesn't it sound interesting? But, there's a problem...";
+ next;
+ mes "[Pudding]";
+ mes "Since those materials can only be found from the monsters in the Lab., the special power also can be dwelt into certain equipments which can be obtained from the Lab.";
+ next;
+ select("So what's the conclusion?");
+ emotion e_what, 1;
+ emotion e_an;
+ mes "[Pudding]";
+ mes "Gee.. I told you not to cut while I talk, didn't I? Well, I will answer that becuase that's important.";
+ next;
+ mes "[Pudding]";
+ mes "If you bring me 10 '^F2766EWill of Warrior^000000' or 10 '^952420Thirst for Blood^000000', I will dwell some power to certain equipments that you can find in the Lab..";
+ next;
+ mes "[Pudding]";
+ mes "And if you are not satisfied with the power you got, bring me 10 '^88C6F7Chill of the Dead^000000', and I will take off that power.";
+ next;
+ mes "[Pudding]";
+ mes "WHat do you say? Having both options.....quite nice, huh?";
+ next;
+ mes "[Pudding]";
+ mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
+ close2;
+ enable_items;
+ end;
+ case 3:
+ mes "[Pudding]";
+ mes "Hm.... Equipment which are discovered so far are....";
+ next;
+ mes "- checking -";
+ mes "Pudding takes some paper out from a pocket.";
+ next;
+ mes "[Pudding]";
+ mes "Let me see.. the equipments discovered until now are....";
+ mes "6 Armors, 14 Weapons.";
+ next;
+ while(1) {
+ switch(select("Ok, I don't have to know more.", "6 Armors", "14 Weapons")) {
+ case 1:
+ mes "[Pudding]";
+ mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ mes "< Armor List >";
+ mes "Giant Shield[1]";
+ mes "Acient Book of Geffenia-Water[1]";
+ mes "Bible of Promise(2nd Vol.)[1]";
+ mes "Salvage Cape[0]";
+ mes "Assassin's Handcuffs[1]";
+ mes "Green Operating Gown[1]";
+ mes "Ancient Gold Decoration[1]";
+ next;
+ mes "[Pudding]";
+ mes "So far these are the Armors discovered. Do you wanna see other things?";
+ next;
+ break;
+ case 3:
+ mes "< Weapon List >";
+ mes "Agent Katar[1]";
+ mes "Guillotine Katar[1]";
+ mes "Ygnus Stale[1]";
+ mes "End Sektura[1]";
+ mes "Cannon Spear[1]";
+ mes "Giant Lance[0]";
+ mes "Chilly Spell Book[2]";
+ mes "Recovery Light[1]";
+ mes "Aztoe Nail[0]";
+ mes "Scarletto Nail[0]";
+ mes "Bloody Cross[0]";
+ mes "Catapult[2]";
+ mes "Big CrossBow[2]";
+ mes "Creeper Bow[2]";
+ next;
+ mes "[Pudding]";
+ mes "So far these are the Weapons discovered. Do you wanna see other things?";
+ next;
+ break;
+ }
+ }
+ case 4:
+ emotion e_flash;
+ mes "[Pudding]";
+ mes "Ohhhhh Have you brought them?";
+ next;
+ break;
+ }
+ mes "[Pudding]";
+ mes "OKAY! In which equipment you want to dwell the power?";
+ next;
+ setarray .@parts[0], EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_LOW;
+ for(.@i = 0; .@i < 7; .@i++) {
+ if(!getequipisequiped(.@parts[.@i])) {
+ switch(.@i) {
+ case 0:
+ .@equipped$[.@i] = "^999999Armor-[Not equipped]^000000";
+ break;
+ case 1:
+ .@equipped$[.@i] = "^999999Left Hand-[Not equipped]^000000";
+ break;
+ case 2:
+ .@equipped$[.@i] = "^999999Right Hand-[Not equipped]^000000";
+ break;
+ case 3:
+ .@equipped$[.@i] = "^999999Garment-[Not equipped]^000000";
+ break;
+ case 4:
+ .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
+ break;
+ case 5:
+ .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
+ break;
+ case 6:
+ .@equipped$[.@i] = "^999999Helm-[Not equipped]^000000";
+ break;
+ }
+ } else {
+ .@equipped$[.@i] = getequipname(.@parts[.@i]);
+ }
+ }
+ switch(select("I changed my mind.", .@equipped$[0], .@equipped$[1], .@equipped$[2], .@equipped$[3], .@equipped$[4],
+ .@equipped$[5], .@equipped$[6])) {
+ case 1:
+ mes "[Pudding]";
+ mes "Well, I was looking forward to doing it, but I cannot help then.";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ if(!getequipisequiped(EQI_ARMOR)) {
+ mes "[Pudding]";
+ mes "Hey..Where is the armor?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ARMOR;
+ break;
+ case 3:
+ if(!getequipisequiped(EQI_HAND_L)) {
+ mes "[Pudding]";
+ mes "Well.. You are not equipping anything on the left hand.";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HAND_L;
+ break;
+ case 4:
+ if(!getequipisequiped(EQI_HAND_R)) {
+ mes "[Pudding]";
+ mes "Well.. You are not equipping anything on the right hand.";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HAND_R;
+ break;
+ case 5:
+ if(!getequipisequiped(EQI_GARMENT)) {
+ mes "[Pudding]";
+ mes "Um.... Where's your robe?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_GARMENT;
+ break;
+ case 6:
+ if(!getequipisequiped(EQI_ACC_L)) {
+ mes "[Pudding]";
+ mes ".....Where's the accessory?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ACC_L;
+ break;
+ case 7:
+ if(!getequipisequiped(EQI_ACC_R)) {
+ mes "[Pudding]";
+ mes ".....Where's the accessory?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_ACC_R;
+ break;
+ case 8:
+ if(!getequipisequiped(EQI_HEAD_LOW)) {
+ mes "[Pudding]";
+ mes "Hey.. Are you not wearing any Helm?";
+ close2;
+ enable_items;
+ end;
+ }
+ .@position = EQI_HEAD_LOW;
+ break;
+ }
+ .@refine_count = getequiprefinerycnt(.@position);
+ .@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 == Aztoe_Nail || .@equip_item == Scarletto_Nail || .@equip_item == Bloody_Cross) {
+ .@type = 1;
+ if(.@equip_item == Giant_Lance)
+ .@lhz_max_num = 4200;
+ } else if (.@equip_item == Catapult || .@equip_item == Big_CrossBow || .@equip_item == Creeper_Bow) {
+ .@type = 2;
+ } else if (.@equip_item == Chilly_Spell_Book || .@equip_item == Recovery_Light) {
+ .@type = 3;
+ } else if (.@equip_item== Giant_Shield || .@equip_item == Geffenia_Book_Water || .@equip_item == Bible_Of_Promise2 ||
+ .@equip_item == Salvage_Cape || .@equip_item == Assassin_Handcuffs || .@equip_item == Green_Operation_Coat ||
+ .@equip_item == Ancient_Gold_Deco) {
+ if(.@equip_item == Salvage_Cape || .@equip_item == Ancient_Gold_Deco)
+ .@lhz_max_num = 4200;
+ } else {
+ mes "[Pudding]";
+ mes "Before! I need to check if this equipment can accept the power.";
+ next;
+ specialeffect2 EF_SPHERE;
+ progressbar "ffff00", 2;
+ specialeffect2 EF_SUI_EXPLOSION;
+ emotion e_sob;
+ mes "[Pudding]";
+ mes "Hm.... This equipment cannot accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
+ close2;
+ enable_items;
+ end;
+ }
+ emotion e_ho;
+ mes "[Pudding]";
+ mes "OHHH.. This equipment could accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
+ next;
+ if (countitem(Will_Of_Warrior) >= 10)
+ .@menu_in$[1] = "Dwell the power of '^F2766EWill of Warrior^000000'";
+ else
+ .@menu_in$[1] = "Not enough ^999999'Will of Warrior'^000000";
+
+ if (countitem(Blood_Thirst) >= 10)
+ .@menu_in$[2] = "Dwell the power of '^952420Thirst for Blood^000000'";
+ else
+ .@menu_in$[2] = "Not enough ^999999'Thirst for Blood'^000000";
+
+ if (countitem(Goast_Chill) >= 10)
+ .@menu_in$[3] = "Consume the '^88C6F7Chill of the Dead^000000'";
+ else
+ .@menu_in$[3] = "Not enough ^999999'Chill of the Dead'^000000";
+ mes "[Pudding]";
+ mes "OK! Which power do you want to dwell in your equipment?";
+ next;
+ switch(select("I say no! I don't need that!!", .@menu_in$[1], .@menu_in$[2], .@menu_in$[3])) {
+ case 1:
+ mes "[Pudding]";
+ mes "Ohhh.. I was looking forward to doing it, but it's all up to you......";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ if (countitem(Will_Of_Warrior) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^F2766EWill of Warrior^000000', You need to bring 10 '^F2766EWill of Warrior^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ else if (getequipcardid(.@position, 3) > 0) {
+ mes "[Pudding]";
+ mes "This equipment already got the power of '^F2766EWill of Warrior^000000'.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ .@socket_type = 4;
+ }
+ break;
+ case 3:
+ if (countitem(Blood_Thirst) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^952420Thirst for Blood^000000', You need to bring 10 '^952420Thirst for Blood^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ else if (getequipcardid(.@position, 2) > 0) {
+ mes "[Pudding]";
+ mes "This equipment already got the power of '^952420Thirst for Blood^000000'.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ .@socket_type = 3;
+ }
+ break;
+ case 4:
+ //---------- Enchant Removal Script ----------//
+ if (countitem(Goast_Chill) < 10) {
+ .@menu_clear$[1] = "^999999Not enough 'Chill of the Dead'^000000";
+ .@menu_clear$[2] = "^999999Not enough 'Chill of the Dead'^000000";
+ .@4thzptsodyd = 1;
+ .@3thzptsodyd = 1;
+ } else {
+ if (getequipcardid(.@position, 3) > 0) {
+ .@menu_clear$[1] = "Remove the power of '^F2766EWill of Warrior^000000'";
+ } else {
+ .@menu_clear$[1] = "^999999There's no power to remove^000000";
+ .@4thzptsodyd = 1;
+ }
+ if (getequipcardid(.@position, 2) > 0) {
+ .@menu_clear$[2] = "Remove the power of '^952420Thirst for Blood^000000'";
+ } else {
+ .@menu_clear$[2] = "^999999There's no power to remove^000000";
+ .@3thzptsodyd = 1;
+ }
+ }
+ mes "[Pudding]";
+ mes "Alright, which power do you want to remove?";
+ next;
+ .@menu = select("No, I don't wannna remove any.", .@menu_clear$[1], .@menu_clear$[2]);
+ switch(.@menu){
+ case 1:
+ mes "[Pudding]";
+ mes "Really? Ok. I got it..";
+ close2;
+ enable_items;
+ end;
+ case 2:
+ case 3:
+ if (countitem(Goast_Chill) < 10) {
+ mes "[Pudding]";
+ mes "Not enough '^88C6F7Chill of the Dead^000000', You need to bring 10 '^88C6F7Chill of the Dead^000000'";
+ close2;
+ enable_items;
+ end;
+ }
+ if ( (.@menu==3 && .@3thzptsodyd == 1) || (.@menu==2 && .@4thzptsodyd == 1) ) {
+ mes "[Pudding]";
+ mes "This equipment didn't get any special power.";
+ close2;
+ enable_items;
+ end;
+ }
+ setarray .@equip_card[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3);
+ if (.@menu==2){ .@equip_card[3] = 0; }
+ else { .@equip_card[2] = 0; }
+ .@equip_item = getequipid(.@position);
+ specialeffect EF_BEGINSPELL2, AREA, "Sorcerer#Bio4Reward";
+ progressbar "ffff00", 2;
+ specialeffect2 EF_FROSTWEAPON;
+ delitem Goast_Chill, 10;
+ delequip .@position;
+ getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
+ mes "[Pudding]";
+ if(.@menu==3)
+ mes "The power of '^952420Thirst for Blood^000000' has been perfectly removed.";
+ else
+ mes "The power of '^F2766EWill of Warrior^000000' has been perfectly removed.";
+ close2;
+ enable_items;
+ end;
+ }
+ }
+ mes "[Pudding]";
+ mes "Before I dwell the power, let me explain to you cautions.";
+ next;
+ mes "[Pudding]";
+ mes "While dwelling the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', the equipment would be not capable to accept that and will be destryed..";
+ next;
+ mes "[Pudding]";
+ mes "^9D2628If the equipment is destroyed, you will also lose the cards you inserted in it, and the refine Lv will be removed too.^000000";
+ next;
+ mes "[Pudding]";
+ mes "Alright. will you really wish to dwell the power into the equipment?";
+ next;
+ if(select("Wait, I will think again.", "Sure, carry on.") == 1) {
+ mes "[Pudding]";
+ mes "OK. I will be hoping to see you again.";
+ close2;
+ enable_items;
+ end;
+ }
+ mes "[Pudding]";
+ mes "I wish you made a correct decision...";
+ next;
+ if(.@socket_type >= 3) {
+ switch(.@type){
+ case 1:
+ // Short Distance
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 401) .@enchant = Strength1;
+ else if (.@i < 441) .@enchant = Strength2;
+ else if (.@i < 445) .@enchant = Strength3;
+ else if (.@i < 845) .@enchant = Agility1;
+ else if (.@i < 885) .@enchant = Agility2;
+ else if (.@i < 889) .@enchant = Agility3;
+ else if (.@i < 1289) .@enchant = Vitality1;
+ else if (.@i < 1329) .@enchant = Vitality2;
+ else if (.@i < 1333) .@enchant = Vitality3;
+ else if (.@i < 1523) .@enchant = Inteligence1;
+ else if (.@i < 1542) .@enchant = Inteligence2;
+ else if (.@i < 1544) .@enchant = Inteligence3;
+ else if (.@i < 1844) .@enchant = Dexterity1;
+ else if (.@i < 1874) .@enchant = Dexterity2;
+ else if (.@i < 1877) .@enchant = Dexterity3;
+ else if (.@i < 2067) .@enchant = Luck1;
+ else if (.@i < 2086) .@enchant = Luck2;
+ else if (.@i < 2088) .@enchant = Luck3;
+ else if (.@i < 2491) .@enchant = 0;
+ else if (.@i < 2891) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2931) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2935) .@enchant = Fighting_Spirit3;
+ else if (.@i < 3125) .@enchant = Spell1;
+ else if (.@i < 3144) .@enchant = Spell2;
+ else if (.@i < 3146) .@enchant = Spell3;
+ else if (.@i < 3148) .@enchant = Atk_Speed1;
+ else if (.@i < 3348) .@enchant = Sharp1;
+ else if (.@i < 3368) .@enchant = Sharp2;
+ else if (.@i < 3370) .@enchant = Sharp3;
+ else if (.@i < 3560) .@enchant = Expert_Archer1;
+ else if (.@i < 3579) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 2:
+ // Long Distance
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 191) .@enchant = Strength1;
+ else if (.@i < 210) .@enchant = Strength2;
+ else if (.@i < 212) .@enchant = Strength3;
+ else if (.@i < 612) .@enchant = Agility1;
+ else if (.@i < 652) .@enchant = Agility2;
+ else if (.@i < 656) .@enchant = Agility3;
+ else if (.@i < 846) .@enchant = Vitality1;
+ else if (.@i < 865) .@enchant = Vitality2;
+ else if (.@i < 867) .@enchant = Vitality3;
+ else if (.@i < 1167) .@enchant = Inteligence1;
+ else if (.@i < 1197) .@enchant = Inteligence2;
+ else if (.@i < 1200) .@enchant = Inteligence3;
+ else if (.@i < 1600) .@enchant = Dexterity1;
+ else if (.@i < 1640) .@enchant = Dexterity2;
+ else if (.@i < 1644) .@enchant = Dexterity3;
+ else if (.@i < 1834) .@enchant = Luck1;
+ else if (.@i < 1853) .@enchant = Luck2;
+ else if (.@i < 1855) .@enchant = Luck3;
+ else if (.@i < 2258) .@enchant = 0;
+ else if (.@i < 2448) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2467) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2469) .@enchant = Fighting_Spirit3;
+ else if (.@i < 2669) .@enchant = Spell1;
+ else if (.@i < 2689) .@enchant = Spell2;
+ else if (.@i < 2691) .@enchant = Spell3;
+ else if (.@i < 2693) .@enchant = Atk_Speed1;
+ else if (.@i < 3093) .@enchant = Sharp1;
+ else if (.@i < 3133) .@enchant = Sharp2;
+ else if (.@i < 3137) .@enchant = Sharp3;
+ else if (.@i < 3537) .@enchant = Expert_Archer1;
+ else if (.@i < 3577) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 3:
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 301) .@enchant = Strength1;
+ else if (.@i < 331) .@enchant = Strength2;
+ else if (.@i < 334) .@enchant = Strength3;
+ else if (.@i < 534) .@enchant = Agility1;
+ else if (.@i < 554) .@enchant = Agility2;
+ else if (.@i < 556) .@enchant = Agility3;
+ else if (.@i < 956) .@enchant = Vitality1;
+ else if (.@i < 996) .@enchant = Vitality2;
+ else if (.@i < 1000) .@enchant = Vitality3;
+ else if (.@i < 1400) .@enchant = Inteligence1;
+ else if (.@i < 1440) .@enchant = Inteligence2;
+ else if (.@i < 1444) .@enchant = Inteligence3;
+ else if (.@i < 1844) .@enchant = Dexterity1;
+ else if (.@i < 1884) .@enchant = Dexterity2;
+ else if (.@i < 1888) .@enchant = Dexterity3;
+ else if (.@i < 2078) .@enchant = Luck1;
+ else if (.@i < 2097) .@enchant = Luck2;
+ else if (.@i < 2099) .@enchant = Luck3;
+ else if (.@i < 2502) .@enchant = 0;
+ else if (.@i < 2692) .@enchant = Fighting_Spirit1;
+ else if (.@i < 2711) .@enchant = Fighting_Spirit2;
+ else if (.@i < 2713) .@enchant = Fighting_Spirit3;
+ else if (.@i < 3113) .@enchant = Spell1;
+ else if (.@i < 3153) .@enchant = Spell2;
+ else if (.@i < 3157) .@enchant = Spell3;
+ else if (.@i < 3159) .@enchant = Atk_Speed1;
+ else if (.@i < 3349) .@enchant = Sharp1;
+ else if (.@i < 3368) .@enchant = Sharp2;
+ else if (.@i < 3370) .@enchant = Sharp3;
+ else if (.@i < 3560) .@enchant = Expert_Archer1;
+ else if (.@i < 3579) .@enchant = Expert_Archer2;
+ else if (.@i < 3581) .@enchant = Expert_Archer3;
+ else .@enchant = 0;
+ break;
+ case 4:
+ // Armor
+ .@i = rand(1, .@lhz_max_num);
+ if (.@i < 301) .@enchant = Strength1;
+ else if (.@i < 331) .@enchant = Strength2;
+ else if (.@i < 334) .@enchant = Strength3;
+ else if (.@i < 634) .@enchant = Agility1;
+ else if (.@i < 664) .@enchant = Agility2;
+ else if (.@i < 667) .@enchant = Agility3;
+ else if (.@i < 967) .@enchant = Vitality1;
+ else if (.@i < 997) .@enchant = Vitality2;
+ else if (.@i < 1000) .@enchant = Vitality3;
+ else if (.@i < 1300) .@enchant = Inteligence1;
+ else if (.@i < 1330) .@enchant = Inteligence2;
+ else if (.@i < 1333) .@enchant = Inteligence3;
+ else if (.@i < 1633) .@enchant = Dexterity1;
+ else if (.@i < 1663) .@enchant = Dexterity2;
+ else if (.@i < 1666) .@enchant = Dexterity3;
+ else if (.@i < 1966) .@enchant = Luck1;
+ else if (.@i < 1996) .@enchant = Luck2;
+ else if (.@i < 1999) .@enchant = Luck3;
+ else if (.@i < 2399) .@enchant = 0;
+ else if (.@i < 2549) .@enchant = Mdef2;
+ else if (.@i < 2599) .@enchant = Mdef4;
+ else if (.@i < 2609) .@enchant = Mdef6;
+ else if (.@i < 2614) .@enchant = Mdef8;
+ else if (.@i < 2616) .@enchant = Mdef10;
+ else if (.@i < 2766) .@enchant = Def3;
+ else if (.@i < 2866) .@enchant = Def6;
+ else if (.@i < 2876) .@enchant = Def9;
+ else if (.@i < 2878) .@enchant = Def12;
+ else if (.@i < 3278) .@enchant = 0;
+ else if (.@i < 3428) .@enchant = Evasion1;
+ else if (.@i < 3478) .@enchant = Evasion3;
+ else if (.@i < 3488) .@enchant = Evasion6;
+ else if (.@i < 3498) .@enchant = SP50;
+ else if (.@i < 3734) .@enchant = HP100;
+ else if (.@i < 3834) .@enchant = HP200;
+ else if (.@i < 3884) .@enchant = HP300;
+ else .@enchant = 0;
+ break;
+ }
+ setarray .@equip_card[0], getequipcardid(.@position,0),getequipcardid(.@position,1),getequipcardid(.@position,2),getequipcardid(.@position,3);
+ .@equip_card[(.@socket_type-1)] = .@enchant;
+ .@equip_item = getequipid(.@position);
+ specialeffect EF_BEGINSPELL3, AREA, "Sorcerer#Bio4Reward";
+ progressbar "ffff00", 2;
+ if (.@socket_type == 3)
+ delitem Blood_Thirst, 10;
+ else
+ delitem Will_Of_Warrior, 10;
+ delequip .@position;
+ if (.@enchant == 0) {
+ specialeffect2 EF_SUI_EXPLOSION;
+ emotion e_otl;
+ mes "[Pudding]";
+ mes "...Well....the equipment could not accept the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" and it got destroyed.";
+ close2;
+ enable_items;
+ end;
+ } else {
+ specialeffect2 EF_FIREHIT;
+ getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
+ emotion e_ho;
+ mes "[Pudding]";
+ mes "Fortunately the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" has been dwelt well in your equipment..";
+ close2;
+ enable_items;
+ end;
+ }
+ }
+ enable_items;
+ end;
+}
+
+// Warp portal to the 4th Fl.
+//==============================================================================
+lhz_dun03,239,78,1 script lhz_dun03_lhz_dun04 WARPNPC,1,1,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 > 0 && lght_duk01 < 6) {
+ mes "In order to investigate human experimentation, I had to go down whilst I didn't want to because of gruesome sound.";
+ close2;
+ if (lght_duk01 < 3) {
+ warp "que_lhz", 245, 56;
+ } else if (lght_duk01 == 3) {
+ warp "que_lhz", 96, 136;
+ } else {
+ warp "que_lhz", 148, 215;
+ }
+ } else {
+ if (lhz_boss < 31) {
+ mes "- Whistling sound -";
+ mes "From below, there comes a gruesome sound mingling with the wind.";
+ close2;
+ }
+ warp "lhz_dun04", 245, 56;
+ }
+ end;
+}
+
+// Warp Portal to the 3rd Fl.
+//==============================================================================
+lhz_dun04,244,61,1 warp lhz_dun04_lhz_dun03 1,1,lhz_dun03,240,75
+
+// Inside the Lab
+//==============================================================================
+que_lhz,242,50,0 script #01Startpoint -1,3,3,{
+ end;
+
+ OnInit:
+ initnpctimer;
+ end;
+
+ OnTimer60000:
+ mapannounce "que_lhz", "Man's whisper: Pl.. please.. save me.. I don't wanna die.. wouaaaa..", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer120000:
+ mapannounce "que_lhz", "Woman's whisper: .. Save.. aaaah.. us...", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer180000:
+ mapannounce "que_lhz", "Kid's whisper: Bawwww~ Where am I? Mama......aaaa....", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer240000:
+ mapannounce "que_lhz", "Oldman's whisper: Kirk...hel...help......", bc_map, "0x7DCBF0";
+ end;
+
+ OnTimer300000:
+ stopnpctimer;
+ initnpctimer;
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 1) {
+ mes "I arrived at a research facility which seems it has been used till these days.";
+ next;
+ mes "There are some destroyed part, but the basic facility seem fine.";
+ next;
+ lght_duk01 = 2;
+ mes "Get around a little more..";
+ close;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,206,74,4 script Researcher#02 4_LGTSCIENCE,3,3,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 2) {
+ emotion e_omg, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "You!!!! are Wolfchev?";
+ next;
+ emotion e_gg, "Researcher#02";
+ mes "[Wolfchev]";
+ mes "A Human! kaahaha. People tend to hate this place, why are you here?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "You!!! I heard that you were committing human experimentation. Wolfchev!!";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "And I see that you are still committing that!!!";
+ next;
+ emotion e_gg, "Researcher#02";
+ mes "[Wolfchev]";
+ mes "Kihihihi. I can see that you know something about me. Is that you who accused me?";
+ mes "How dare you come back to me after you did that. Kihihih";
+ next;
+ mes "[Wolfchev]";
+ mes "I feel good to see a human";
+ mes "in a long time, but I gotta go. Kihihihi.";
+ next;
+ mes "- Wolfchev ran away giving a awkward laughing sound. -";
+ next;
+ erasequest 5109;
+ setquest 5110;
+ lght_duk01 = 3;
+ emotion e_omg, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Whoa! Wolfchev, stop!";
+ close2;
+ warp "que_lhz", 96, 136;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,94,119,4 script Researcher#03 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lght_duk01 == 3) {
+ emotion e_swt2, "Researcher#03";
+ mes "[Wolfchev]";
+ mes "(Gasping) Pshaw... you are still following me. Hey, why do you keep following me?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Wolfchev.. You said before. that you are doing research for everybody.";
+ next;
+ mes "[Wolfchev]";
+ mes "I might have said that.... so what?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "But, your experiment seem really dangerous. How come this is what everybody wants?";
+ next;
+ emotion e_gg, "Researcher#03";
+ mes "[Wolfchev]";
+ mes "Everyone has a desire to be stronger and wants to dominate others so those other people obey and admire you. Do you not have that desire?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ mes "[Wolfchev]";
+ mes "If you want to save yourself, should stop following me. Bugger off.";
+ next;
+ mes "Wolfchev is again running away with a strange sound.";
+ next;
+ lght_duk01 = 4;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Awwww!! You!! running away again..... Stop!";
+ close2;
+ warp "que_lhz", 148, 215;
+ }
+ end;
+}
+
+// Wolfchev
+//==============================================================================
+que_lhz,147,224,4 script Researcher#04 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ if (lght_duk01 == 4) {
+ mes "[Wolfchev]";
+ mes "You are pretty persistent, aren't you? Or I think.......that you like me, huh? Kihihii.";
+ next;
+ emotion e_dots;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ specialeffect EF_SIGHTRASHER;
+ mes "Wolfchev mocked you at your silence and pressed a button in his hand. Then guinea pigs woken up around him.";
+ next;
+ for(.@i = 1; .@i < 9; .@i++)
+ donpcevent "Human Guinea pig#0"+.@i+"::OnEnable";
+ mes "[Wolfchev]";
+ mes "Again.. it's time to say goodbye.";
+ next;
+ emotion e_gasp, "Researcher#04";
+ mes "[Wolfchev]";
+ mes "Well! May be....";
+ next;
+ mes "[Wolfchev]";
+ mes "If you come to me for the experimentation, I can treat you better.";
+ next;
+ donpcevent "#Eventctrl::OnEnable";
+ progressbar "FF00FF", 5;
+ emotion e_omg, "Researcher#04";
+ mes "[Wolfchev]";
+ mes "Oh my,... What happened?";
+ next;
+ donpcevent "#Eventctrl::OnEnable2";
+ for(.@i = 1; .@i < 9; .@i++)
+ donpcevent "Human Guinea pig#0"+.@i+"::OnDisable";
+ mes "[Wolfchev]";
+ mes "No! Don't come to me! Don't!!";
+ next;
+ lght_duk01 = 5;
+ mes "First of all, I gotta handle those guinea pigs!";
+ close;
+ } else if (lght_duk01 == 5) {
+ .@i = rand(1,3);
+ if (.@i == 2) {
+ mes "Wolfchev is confused and has no idea now since those monsters are attacking him too.";
+ next;
+ specialeffect EF_STUNATTACK;
+ specialeffect EF_STUNATTACK;
+ mes "- Hit him to wake him up -";
+ next;
+ specialeffect EF_DARKBREATH;
+ emotion e_no;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey Dude! Anyway let's get out of here first! Isn't there any place where they cannot reach?";
+ next;
+ mes "[Wolfchev]";
+ mes "Oooops.. then my....my lab....to my lab...";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Your lab?? Okay, where's that?";
+ next;
+ mes "[Wolfchev]";
+ mes "to the north....... . Not so far from here..";
+ next;
+ erasequest 5110;
+ setquest 5111;
+ lght_duk01 = 6;
+ mes "Go to '^0000FFWolfchev's Lab^000000' at the 12 o'clock direction...";
+ close;
+ } else {
+ emotion e_spin, "Researcher#04";
+ mes "Wolfchev is confused and has no idea now since those monsters are attacking him too.";
+ close;
+ }
+ } else if (lght_duk01 == 6) {
+ mes "Go to '^0000FFWolfchev's Lab^000000' at the 12 o'clock direction...";
+ close;
+ }
+ end;
+}
+
+// Warp to lhz_dun04 from Wolfchev's Lab
+//==============================================================================
+que_lhz,148,251,0 script #Move2lab -1,12,0,{
+ end;
+
+ OnTouch:
+ if (lght_duk01 == 6) {
+ mes "I arrived at '^0000FFWolfchev's Lab^000000'.";
+ close2;
+ warp "lhz_dun04", 148, 269;
+ end;
+ } else {
+ mes "I still have something to do with Wolfchev.";
+ close;
+ }
+}
+
+// Event Controller
+//==============================================================================
+que_lhz,1,1,0 script #Eventctrl -1,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnEnable2:
+ monster "que_lhz", 139, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 147, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 232, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 224, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 156, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 147, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 139, 215, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ monster "que_lhz", 139, 224, "Human Guinea pig", QUEST_CHEN, 1, "#Eventctrl::OnMyMobDead";
+ end;
+
+ OnTimer1000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#01";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#01";
+ end;
+
+ OnTimer2000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#02";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#02";
+ end;
+
+ OnTimer3000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#03";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#03";
+ end;
+
+ OnTimer4000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#04";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#04";
+ end;
+
+ OnTimer5000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#05";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#05";
+ end;
+
+ OnTimer6000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#06";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#06";
+ end;
+
+ OnTimer7000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#07";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#07";
+ end;
+
+ OnTimer8000:
+ specialeffect EF_SUI_EXPLOSION,AREA, "#08";
+ specialeffect EF_BEGINASURA, "Human Guinea pig#08";
+ stopnpctimer;
+ end;
+
+ OnMyMobDead:
+ if(mobcount("que_lhz", "#Eventctrl::OnMyMobDead") < 4)
+ killmonster "que_lhz", "#Eventctrl::OnMyMobDead";
+}
+
+que_lhz,139,232,0 script #01 -1,{ end; }
+que_lhz,147,232,0 script #02 -1,{ end; }
+que_lhz,156,232,0 script #03 -1,{ end; }
+que_lhz,156,224,0 script #04 -1,{ end; }
+que_lhz,156,215,0 script #05 -1,{ end; }
+que_lhz,147,215,0 script #06 -1,{ end; }
+que_lhz,139,215,0 script #07 -1,{ end; }
+que_lhz,139,224,0 script #08 -1,{ end; }
+
+// Human Guinea pigs
+//==============================================================================
+que_lhz,140,231,1 script Human Guinea pig#01 CHEN,{
+ end;
+
+ OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+
+ OnEnable:
+ enablenpc strnpcinfo(0);
+ end;
+
+ OnDisable:
+ specialeffect EF_FLASHER;
+ disablenpc strnpcinfo(0);
+ end;
+}
+
+que_lhz,147,231,0 duplicate(Human Guinea pig#01) Human Guinea pig#02 CHEN
+que_lhz,155,231,7 duplicate(Human Guinea pig#01) Human Guinea pig#03 CHEN
+que_lhz,155,224,6 duplicate(Human Guinea pig#01) Human Guinea pig#04 CHEN
+que_lhz,155,216,5 duplicate(Human Guinea pig#01) Human Guinea pig#05 CHEN
+que_lhz,147,216,4 duplicate(Human Guinea pig#01) Human Guinea pig#06 CHEN
+que_lhz,140,216,3 duplicate(Human Guinea pig#01) Human Guinea pig#07 CHEN
+que_lhz,140,224,2 duplicate(Human Guinea pig#01) Human Guinea pig#08 CHEN
+
+// Wolfchev
+//==============================================================================
+lhz_dun04,151,276,3 script Researcher#memo 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ 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)
+ .@killed_bosses = false;
+ }
+ if (lght_duk01 < 6) {
+ mes "[Researcher]";
+ mes "What! Do you have any business here?";
+ next;
+ if(select("Yes I do!!", "Umm.. No..") == 1) {
+ mes "[Researcher]";
+ mes "Why don't stop staring at other's laboratory, and be on your way?";
+ close;
+ }
+ mes "[Researcher]";
+ mes "Stop wondering here, and be on your way. Will you? Khh Khh.";
+ close;
+ } else if (lght_duk01 == 6) {
+ mes "It seems experimental creatures cannot come near the laboratory, just like Wolfchev said.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey, is there any way to stop those creatures? You should know something, you made those things!";
+ next;
+ mes "[Wolfchev]";
+ mes "Urrgg.. I didn't expect them to loose control like that...";
+ next;
+ mes "[Wolfchev]";
+ mes "What is wrong with this whole thing?";
+ next;
+ mes "[Wolfchev]";
+ mes "Urr.. I think they will ruin my whole laboratory!";
+ next;
+ emotion e_loud, 1;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Hey! Wolfchev!!";
+ next;
+ mes "[Wolfchev]";
+ mes "You!? Hey, please stop them!";
+ mes "Creatures are ^9f6077organically connected with same job field^000000.";
+ next;
+ mes "[Wolfchev]";
+ mes "There is one special creature being their ^46B951boss position^000000...";
+ mes "If you could deactivate that creature, all ^A1BB44slave creatures^000000 walking around here will stop moving right away.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "Boss creature?";
+ mes "Hey! Wolfchev! Where is that ^46B951Boss creature^000000?";
+ next;
+ mes "[Wolfchev]";
+ mes "Inside.. of laboratory.. It should be waken up now. It's sad to destroy my life of work, but I can't take this any more.. ...";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "How can I get into the Wolfchev's laboratory?";
+ next;
+ mes "[Wolfchev]";
+ mes "Oh.. Wait!";
+ mes "I will help you get in there.";
+ next;
+ mes "[Wolfchev]";
+ mes "Good news is that boss creatures are not set up to wake up all at once, even though slaves are.";
+ next;
+ erasequest 5111;
+ lght_duk01 = 7;
+ for(.@i = 5113; .@i <= 5125; .@i++)
+ setquest .@i;
+ mes "[Wolfchev]";
+ mes "But still, it is really dangerous since we don't know when they will escape from there.";
+ mes "So, please prepare your party members, and take care of those boss creatures. I'm not sure how long this place can hold.";
+ close;
+ } else if (lght_duk01 > 6) {
+ if (getcharid(1) > 0) {
+ mes "[Wolfchev]";
+ mes "Are you all set there? I will prepare the entrance if you are the leader of that party.";
+ next;
+ switch(select("Any warnings?", "Going into the laboratory", "Do not enter")) {
+ case 1:
+ mes "[Wolfchev]";
+ mes "I didn't know pressing the emergency alarm would cause such problem. The management system seems to be changed to emergency mode.";
+ next;
+ mes "[Wolfchev]";
+ mes "There are so many systems set up inside of the laboratory, so eve I cannot be sure how systems are twisted by now.";
+ next;
+ mes "[Wolfchev]";
+ mes "Ah! If the emergency system is activating, only the leader of party should control everything. It is a lot of pressure I understand.";
+ next;
+ mes "[Wolfchev]";
+ 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) {
+ 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)
+ erasequest 5112;
+ if (!.@killed_bosses) {
+ if (lght_duk01 == 9) {
+ mes "[Wolfchev]";
+ mes "You came back, Ka Ha Ha.";
+ next;
+ mes "[Wolfchev]";
+ mes "After you left, I was fixing some system parts. And then suddenly strange thing happened.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "What was that?";
+ next;
+ mes "[Wolfchev]";
+ mes "All those boss creatures you took care of started to regenerate themselves..";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "What.. How is that possible...?!";
+ next;
+ mes "[Wolfchev]";
+ mes "I am also completely lost here.. But, this should not be happening..";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ...";
+ next;
+ mes "[Wolfchev]";
+ mes "As you can see, you are the only one I can trust. Would you and your party help me once again deactivating those creatures?";
+ next;
+ if(select("I am not sure", "Why not") == 1) {
+ mes "[Wolfchev]";
+ mes "I see. I understand why you are hesitating, and don't want to press you any more. But, still I'm not sure why you want go there anyways,";
+ next;
+ } else {
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ setquest .@i;
+ }
+ lght_duk01 = 10;
+ mes "[Wolfchev]";
+ mes "Thank you very much. "+strcharinfo(PC_NAME)+"";
+ mes "I will help you get in the laboratory right away.";
+ next;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Hmm.. Those boss creatures regenerating once again..";
+ next;
+ mes "[Wolfchev]";
+ mes "Can you help me just one more time?";
+ next;
+ if(select("I am not sure", "Why not") == 1) {
+ mes "[Wolfchev]";
+ mes "I see. I understand why you are hesitating, and don't want to press you any more. But, still I'm not sure why you want go there anyways,";
+ next;
+ } else {
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ setquest .@i;
+ }
+ lght_duk01 = 10;
+ mes "[Wolfchev]";
+ mes "Thank you. "+strcharinfo(PC_NAME)+"";
+ mes "You want to get in there fast, right?";
+ next;
+ }
+ }
+ }
+ }
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ .@instance = instance_create("Worsef", getcharid(1));
+ if (.@instance < 0) {
+ mes "[Wolfchev]";
+ mes "Hmm.. Lab entering system is a bit weird. Would wait for me to check the system?";
+ } else {
+ mes "[Wolfchev]";
+ mes "Please hold on..";
+ next;
+ mes "Wolfchev starts to control certain gear.";
+ next;
+ progressbar "FF00FF", 2;
+ if (instance_attachmap("1@lhz", .@instance) != "") {
+ instance_set_timeout 14400, 300, .@instance;
+ instance_init(.@instance);
+ mes "[Wolfchev]";
+ mes "Alright! I have marked lan entering system code as";
+ mes "^0000ff"+ strcharinfo(1) +"^000000 party leader's name ^0000ff"+ strcharinfo(PC_NAME) +"^000000!!.";
+ next;
+ mes "[Wolfchev]";
+ mes "Now, your party is free to pass the entrance.";
+ } else {
+ instance_destroy(.@instance);
+ }
+ }
+ close;
+ } else {
+ mes "[Wolfchev]";
+ mes "You are not the ^0000ffLeader of the party^000000, are you? Please go get the leader.";
+ close;
+ }
+ case 3:
+ mes "[Wolfchev]";
+ mes "Need more preparation? Please, we don't have all day.";
+ close;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Are you trying to go there along? That is a suicide! Our lab entering system is not as easy as you thinkz`.";
+ close;
+ }
+ } else {
+ mes "[Wolfchev]";
+ mes "Woot! Something weird just happen. If this keep happening, maybe we should try other way..";
+ close;
+ }
+}
+
+//
+//==============================================================================
+lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000You cannot continue the process due to possessing too many belongings.^000000";
+ close;
+ }
+ .@lhz_time = checkquest(5112, PLAYTIME);
+ if (lght_duk01 < 7) {
+ mes "It says,";
+ mes "'^0000FF****'s laboratory member only^000000'";
+ close;
+ }
+ if (.@lhz_time == -1) {
+ 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) {
+ mes "You have stopped entering to Wolfchev's laboratory.";
+ close;
+ }
+ if (has_instance("1@lhz") == "") {
+ mes "^FF0000Warning^000000";
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Unregistered personnel^000000";
+ next;
+ pushpc 0, 10;
+ percentheal -5,0;
+ specialeffect EF_AUTOCOUNTER;
+ specialeffect2 EF_BASH;
+ mes "You have been wounded by laboratory entrance system attack.";
+ close;
+ } else {
+ mapannounce "lhz_dun04","Laboratory entrance system ["+ strcharinfo(1) +"] member ["+ strcharinfo(PC_NAME) +"] access granted..",bc_map,"0x0DF297";
+ setquest 5112;
+ warp "1@lhz.gat", 45, 148;
+ close;
+ }
+ } else if (.@lhz_time == 0) {
+ mes "Di Rit- Di- Di- Dit-";
+ next;
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Forbidden personnel^000000";
+ next;
+ mes "The system denied your entrance.";
+ close;
+ } else if (.@lhz_time >= 1) {
+ mes "Di Rit- Di- Di- Dit-";
+ next;
+ //if (.@lhz_time == 2)
+ //recall_completequest 5112;
+ erasequest 5112;
+ mes ""+ strcharinfo(PC_NAME) +". . .";
+ mes "^FF0000Access denial has been deactivated.^000000";
+ close;
+ } else {
+ mes "^FF0000Error! Error!^000000";
+ mes "^FF0000Please try again.^000000";
+ close;
+ }
+}
+
+// The Lab No.1 : System 1_1
+//==============================================================================
+1@lhz,35,108,4 script Lab1#1_1 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnType_02:
+ donpcevent instance_npcname("Manual Sheet#1_1")+"::OnEnable";
+ donpcevent instance_npcname("Valve#1_2")+"::OnEnable";
+ donpcevent instance_npcname("Valve#1_3")+"::OnEnable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] the persons concerned, access with the emergency access method.",bc_map,"0xff9977";
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice! Intruder Detected.",bc_map,"0xff9977";
+ end;
+
+ OnTimer2000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Lab No.1's security system will be activated.",bc_map,"0xff9977";
+ end;
+
+ OnTimer7000:
+ donpcevent instance_npcname("MobCtrl1#mob01")+"::OnEnable";
+ end;
+}
+
+// The Lab No.1 Monster Control
+//==============================================================================
+1@lhz,37,108,4 script MobCtrl1#mob01 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ .@map$ = instance_mapname("1@lhz");
+ mapannounce .@map$,"[Security System] Security system Activated !! Experimental animals are released. The persons concerned have to evacuate.",bc_map,"0xff9977";
+ areamonster .@map$,35,159,50,169,"Starving Lab animal",MD_DESERT_WOLF,rand(10,15),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ initnpctimer;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ end;
+
+ OnTimer180000:
+ stopnpctimer;
+ if(mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("Lab1#1_1")+"::OnType_02";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Lab No.1's security system has been stopped.",bc_map,"0xff9977";
+ } else {
+ initnpctimer;
+ }
+ end;
+
+ OnMyMobDead:
+ if(mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("Lab1#1_1")+"::OnType_02";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Lab No.1's security system has been stopped.",bc_map,"0xff9977";
+ stopnpctimer;
+ }
+ end;
+}
+
+// Emergency Access Valve Manual
+//==============================================================================
+1@lhz,39,168,0 script Manual Sheet#1_1 CLEAR_NPC,{
+ mes "There are valve manual sheets littered on the floor.";
+ next;
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ mes "You the party leader, started to read the manual.";
+ next;
+ mes "[Emergency Access Valve Manual]";
+ switch(lght_duk02) {
+ case 0:
+ switch(rand(1,6)) {
+ case 1:
+ lght_duk02 = 1;
+ mes "Turn the left valve Clockwise twice, Counterclockwise once, Clockwise once";
+ break;
+ case 2:
+ lght_duk02 = 2;
+ mes "Turn the left valve Clockwise once, Counterclockwise twice, Clockwise once";
+ break;
+ case 3:
+ lght_duk02 = 3;
+ mes "Turn the left valve Clockwise once, Counterclockwise once, Clockwise twice";
+ break;
+ case 4:
+ lght_duk02 = 4;
+ mes "Turn the right valve Counterclockwise twice, Clockwise once, Counterclockwise once";
+ break;
+ case 5:
+ lght_duk02 = 5;
+ mes "Turn the right valve Counterclockwise once, Clockwise twice, Counterclockwise once";
+ break;
+ case 6:
+ lght_duk02 = 6;
+ mes "Turn the right valve Counterclockwise once, Clockwise once, Counterclockwise twice";
+ break;
+ default:
+ mes "This is a unknown Error. If you get the same problem after trying one more time, contact GM.";
+ break;
+ }
+ break;
+ case 1:
+ mes "Turn the left valve Clockwise twice, Counterclockwise once, Clockwise once";
+ break;
+ case 2:
+ mes "Turn the left valve Clockwise once, Counterclockwise twice, Clockwise once";
+ break;
+ case 3:
+ mes "Turn the left valve Clockwise once, Counterclockwise once, Clockwise twice";
+ break;
+ case 4:
+ mes "Turn the right valve Counterclockwise twice, Clockwise once, Counterclockwise once";
+ break;
+ case 5:
+ mes "Turn the right valve Counterclockwise once, Clockwise twice, Counterclockwise once";
+ break;
+ case 6:
+ mes "Turn the right valve Counterclockwise once, Clockwise once, Counterclockwise twice";
+ break;
+ default:
+ mes "This is a unknown Error. If you get the same problem after trying one more time, contact GM.";
+ break;
+ }
+ } else {
+ mes "Let your party leader handle the valve.";
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Manual Sheet#1_1");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Manual Sheet#1_1");
+ end;
+}
+
+// Left Valve
+//==============================================================================
+1@lhz,41,172,0 script Valve#1_2 CLEAR_NPC,{
+ .@open_portal = 0;
+ mes "This is the left valve for the emergency access.";
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ next;
+ mes "To which direction do you wish to turn?";
+ next;
+ if(lght_duk02 < 1 || lght_duk02 > 3) {
+ for(.@i = 1; .@i <= 4; .@i++) {
+ select("Clockwise", "Counterclockwise");
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ } else {
+ // lght_duk02 == 1 : Clockwise, Clockwise, Counterclockwise, Clockwise
+ // lght_duk02 == 2 : Clockwise, Counterclockwise, Counterclockwise, Clockwise
+ // lght_duk02 == 3 : Clockwise, Counterclockwise, Clockwise, Clockwise
+ for(.@i = 1; .@i <= 4; .@i++) {
+ switch(select("Clockwise", "Counterclockwise")) {
+ case 1:
+ if((.@i == 1 || .@i == 4) || (.@i == 2 && lght_duk02 == 1) || (.@i == 3 && lght_duk02 == 3)) {
+ .@open_portal += 1;
+ }
+ case 2:
+ if((.@i == 2 && lght_duk02 != 1) || (.@i == 3 && lght_duk02 != 3)) {
+ .@open_portal += 1;
+ }
+ }
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ }
+ if (.@open_portal == 4) {
+ donpcevent instance_npcname("#potal_01")+"::OnEnable";
+ lght_duk02 = 0;
+ mes "-Door opened-";
+ next;
+ mes "The door which connects to the Lab No.2 is now open.";
+ } else {
+ lght_duk02 = 0;
+ mes "Nothing happened.";
+ next;
+ mes "You need to review the manual.";
+ }
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Valve#1_2");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Valve#1_2");
+ end;
+}
+
+// Right Valve
+//==============================================================================
+1@lhz,52,172,0 script Valve#1_3 CLEAR_NPC,{
+ .@open_portal = 0;
+ mes "This is the left valve for the emergency access.";
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ next;
+ mes "To which direction do you wish to turn?";
+ next;
+ if(lght_duk02 < 4 || lght_duk02 > 6) {
+ for(.@i = 1; .@i <= 4; .@i++) {
+ select("Clockwise", "Counterclockwise");
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ } else {
+ // lght_duk02 == 4 : Counterclockwise, Counterclockwise, Clockwise, Counterclockwise
+ // lght_duk02 == 5 : Counterclockwise, Clockwise, Clockwise, Counterclockwise
+ // lght_duk02 == 6 : Counterclockwise, Clockwise, Counterclockwise, Counterclockwise
+ for(.@i = 1; .@i <= 4; .@i++) {
+ switch(select("Clockwise", "Counterclockwise")) {
+ case 1:
+ if((.@i == 2 && lght_duk02 != 4) || (.@i == 3 && lght_duk02 != 6))
+ .@open_portal += 1;
+ break;
+ case 2:
+ if((.@i == 1 || .@i == 4) || (.@i == 2 && lght_duk02 == 4) || (.@i == 3 && lght_duk02 == 6))
+ .@open_portal += 1;
+ break;
+ }
+ mes "-A metal sound-";
+ if(.@i != 4)
+ mes "and, to which direction then?";
+ next;
+ }
+ }
+ if (.@open_portal == 4) {
+ donpcevent instance_npcname("#potal_01")+"::OnEnable";
+ lght_duk02 = 0;
+ mes "-Door opened-";
+ next;
+ mes "The door which connects to the Lab No.2 is now open.";
+ } else {
+ lght_duk02 = 0;
+ mes "Nothing happened.";
+ next;
+ mes "You need to review the manual.";
+ }
+ }
+ close;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("Valve#1_3");
+ end;
+
+ OnEnable:
+ specialeffect EF_LIGHTSPHERE;
+ enablenpc instance_npcname("Valve#1_3");
+ end;
+}
+
+
+// The Lab No.1 >> The Lab No.2 Warp portal
+//==============================================================================
+1@lhz,45,173,0 script #potal_01 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ OnDisable:
+ disablenpc instance_npcname("#potal_01");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.2 is now open.",bc_map,"0xff9977";
+ enablenpc instance_npcname("#potal_01");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 151, 29;
+ end;
+}
+
+// The Lab No.2
+//==============================================================================
+1@lhz,151,29,0 script #2_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#2_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#2_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab2#2_1")+"::OnEnable";
+ donpcevent instance_npcname("#2_0")+"::OnDisable";
+ end;
+}
+
+// The Lab No.2 2_1 System - Control of Monster Wave and Pipe right before exploding
+//==============================================================================
+1@lhz,35,106,4 script Lab2#2_1 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice! Intruder Detected in The Lab No.2!!",bc_map,"0xff9977";
+ end;
+
+ OnTimer3000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Lab No.2 Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure in the Lab No.2 is too high.",bc_map,"0xff99ff";
+ end;
+
+ OnTimer8000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] First security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On01";
+ end;
+
+ OnTimer10000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer190000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer303000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Second Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer308000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Second security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On02";
+ end;
+
+ OnTimer370000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer550000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer603000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Third Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer608000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Third security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On03";
+ end;
+
+ OnTimer730000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer903000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Fourth Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer908000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fourth security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On04";
+ end;
+
+ OnTimer910000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer1090000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ end;
+
+ OnTimer1203000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, Fifth Security system will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer1208000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fifth security system activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On05";
+ end;
+
+ OnTimer1270000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Warning! The pipe pressure is too high. Open the valve.",bc_map,"0xff99ff";
+ donpcevent instance_npcname("Lab2#2_2")+"::OnPipePressure";
+ stopnpctimer;
+ end;
+}
+
+// The Lab No.2 2_2 System - Pipe Operation Control
+// When 3 pipes explode, system will shut down.
+//==============================================================================
+1@lhz,37,106,4 script Lab2#2_2 CLEAR_NPC,{
+ end;
+
+ OnInstanceInit:
+ 'broken_pipes = 0;
+ stopnpctimer;
+ end;
+
+ OnPipePressure:
+ switch(rand(1,6)) {
+ case 1:
+ donpcevent instance_npcname("Valve#2_1")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_01";
+ case 2:
+ donpcevent instance_npcname("Valve#2_2")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_02";
+ case 3:
+ donpcevent instance_npcname("Valve#2_3")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_03";
+ case 4:
+ donpcevent instance_npcname("Valve#2_4")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_04";
+ case 5:
+ donpcevent instance_npcname("Valve#2_5")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_05";
+ case 6:
+ donpcevent instance_npcname("Valve#2_6")+"::OnEnable";
+ donpcevent instance_npcname("MobCtrl2#mob02")+"::On2_06";
+ }
+ initnpctimer;
+ end;
+
+ OnDisableValve1:
+ disablenpc instance_npcname("Valve#2_1");
+ stopnpctimer;
+ end;
+
+ OnDisableValve2:
+ disablenpc instance_npcname("Valve#2_2");
+ stopnpctimer;
+ end;
+
+ OnDisableValve3:
+ disablenpc instance_npcname("Valve#2_3");
+ stopnpctimer;
+ end;
+
+ OnDisableValve4:
+ disablenpc instance_npcname("Valve#2_4");
+ stopnpctimer;
+ end;
+
+ OnDisableValve5:
+ disablenpc instance_npcname("Valve#2_5");
+ stopnpctimer;
+ end;
+
+ OnDisableValve6:
+ disablenpc instance_npcname("Valve#2_6");
+ stopnpctimer;
+ end;
+
+ OnTimer63000:
+ for(.@i = 1; .@i < 7; .@i++) {
+ specialeffect EF_SUI_EXPLOSION, AREA, instance_npcname("Valve#2_"+.@i+"");
+ disablenpc instance_npcname("Valve#2_"+.@i+"");
+ }
+ 'broken_pipes += 1;
+ if ('broken_pipes == 3) {
+ donpcevent instance_npcname("#2_3")+"::OnEnable";
+ stopnpctimer;
+ } else {
+ mapannounce instance_mapname("1@lhz"),"[Management System] Pipe explosion detected! When "+ (3 - 'broken_pipes) +" more break, the system will stop.",bc_map,"0xff99ff";
+ }
+ end;
+}
+
+// The Lab No.2 2_3 System
+//==============================================================================
+1@lhz,151,48,0 script #2_3 -1,20,20,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#2_3");
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] System Freezes! System Freezes! Evacuate from the Lab in 10 seconds.",bc_map,"0xff99ff";
+ end;
+
+ OnTimer11000:
+ mapannounce instance_mapname("1@lhz"),"[Management System] Evacuate!!",bc_map,"0xff99ff";
+ enablenpc instance_npcname("#2_3");
+ end;
+
+ OnTouch:
+ warp "lhz_dun04", 147, 273;
+ end;
+}
+
+// The Lab No.2 Monster Control
+//==============================================================================
+1@lhz,39,106,4 script MobCtrl2#mob02 CLEAR_NPC,{
+ end;
+
+ On01:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,10,.@label$;
+ end;
+
+ On02:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,20,.@label$;
+ end;
+
+ On03:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,16,.@label$;
+ end;
+
+ On04:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,19,.@label$;
+ end;
+
+ On05:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster .@map$,139,37,164,58,"Starving Lab animal",MD_DESERT_WOLF,20,.@label$;
+ end;
+
+ On2_01:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),155,43,161,49,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_02:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),137,40,143,46,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_03:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),137,51,143,57,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_04:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),143,56,149,62,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_05:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),160,48,166,54,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ On2_06:
+ .@label$ = instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ areamonster instance_mapname("1@lhz"),135,44,141,50,"Starving Lab animal",MD_DESERT_WOLF_B,5,.@label$;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead";
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"),instance_npcname("MobCtrl2#mob02")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#potal_02")+"::OnEnable";
+ donpcevent instance_npcname("Lab2#2_1")+"::OnDisable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Security system of The Lab No.2 has been stopped.",bc_map,"0xff9977";
+ }
+ end;
+}
+
+// The Lab No.2 Valves
+//==============================================================================
+- script bio4FLab2Valve -1,{
+ if (getpartyleader(getcharid(1),2) == getcharid(0)) {
+ progressbar "0xffff00", 20;
+ stopnpctimer;
+ donpcevent instance_npcname("Lab2#2_2")+"::OnDisableValve1";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+ } else {
+ mes "Let your party leader handle the valve.";
+ close;
+ }
+
+ OnInstanceInit:
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname(strnpcinfo(0));
+ initnpctimer;
+ end;
+
+ OnTimer3000:
+ specialeffect EF_DRAGONSMOKE,AREA,instance_npcname(strnpcinfo(0));
+ stopnpctimer;
+ initnpctimer;
+ end;
+}
+
+1@lhz,158,46,0 duplicate(bio4FLab2Valve) Valve#2_1 CLEAR_NPC
+1@lhz,138,43,0 duplicate(bio4FLab2Valve) Valve#2_2 CLEAR_NPC
+1@lhz,139,54,0 duplicate(bio4FLab2Valve) Valve#2_3 CLEAR_NPC
+1@lhz,145,60,0 duplicate(bio4FLab2Valve) Valve#2_4 CLEAR_NPC
+1@lhz,165,51,0 duplicate(bio4FLab2Valve) Valve#2_5 CLEAR_NPC
+1@lhz,137,47,0 duplicate(bio4FLab2Valve) Valve#2_6 CLEAR_NPC
+
+// The Lab No.2 >> The Lab No.3 Warp portal(General)
+//==============================================================================
+1@lhz,151,64,0 script #potal_02 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#potal_02");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.3 is now open.",bc_map,"0xff99ff";
+ enablenpc instance_npcname("#potal_02");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#potal_02");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 84, 28;
+ end;
+}
+
+// The Lab No.3
+//==============================================================================
+1@lhz,84,28,0 script #3_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#3_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#3_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab3#3_1")+"::OnEnable";
+ donpcevent instance_npcname("#3_0")+"::OnDisable";
+ end;
+}
+
+// The Lab No.3 3_1 System - Monster wave control
+//==============================================================================
+1@lhz,35,104,4 script Lab3#3_1 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] This is a warning notice! Warning notice!",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::OnDisable";
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Intruder Detected in The Lab No.3!!",bc_map,"0xff9977";
+ end;
+
+ OnTimer7000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] In 5 seconds, The Security system of The Lab No.3 will start working.",bc_map,"0xff9977";
+ end;
+
+ OnTimer12000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] First security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On01";
+ end;
+
+ OnTimer192000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Second security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On02";
+ end;
+
+ OnTimer372000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Third security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On03";
+ end;
+
+ OnTimer552000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fourth security system of The Lab No.3activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On04";
+ end;
+
+ OnTimer732000:
+ mapannounce instance_mapname("1@lhz"),"[Security System] Fifth security system of The Lab No.3 activated !! The persons concerned have to evacuate.",bc_map,"0xff9977";
+ donpcevent instance_npcname("MobCtrl3#mob03")+"::On05";
+ stopnpctimer;
+ end;
+}
+
+// The Lab No.3 Monster Control
+//==============================================================================
+1@lhz,37,104,4 script MobCtrl3#mob03 CLEAR_NPC,{
+ end;
+
+ On01:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF_B,1,.@label$;
+ end;
+
+ On02:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ end;
+
+ On03:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ end;
+
+ On04:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@amount4 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ end;
+
+ On05:
+ .@map$ = instance_mapname("1@lhz");
+ .@amount1 = rand(1,5);
+ .@amount2 = rand(1,5);
+ .@amount3 = rand(1,5);
+ .@amount4 = rand(1,5);
+ .@amount5 = rand(1,5);
+ .@label$ = instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ monster .@map$,80,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount1,.@label$;
+ monster .@map$,82,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount2,.@label$;
+ monster .@map$,84,60,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,86,60,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount4,.@label$;
+ monster .@map$,81,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount5,.@label$;
+ monster .@map$,83,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount1,.@label$;
+ monster .@map$,85,58,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount2,.@label$;
+ monster .@map$,87,58,"Starving Lab animal",MD_DESERT_WOLF,.@amount3,.@label$;
+ monster .@map$,82,56,"Starving Lab animal",MD_DESERT_WOLF,.@amount4,.@label$;
+ monster .@map$,85,56,"Starving Lab animal",MD_DESERT_WOLF_B,.@amount5,.@label$;
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead";
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"),instance_npcname("MobCtrl3#mob03")+"::OnMyMobDead") < 1) {
+ donpcevent instance_npcname("#potal_03")+"::OnEnable";
+ donpcevent instance_npcname("Lab3#3_1")+"::OnDisable";
+ mapannounce instance_mapname("1@lhz"),"[Security System] The Security system of The Lab No.3 has been stopped.",bc_map,"0xff9977";
+ }
+ end;
+}
+
+// The Lab No.3 >> Boss's Room Warp portal
+//==============================================================================
+1@lhz,83,62,0 script #potal_03 WARPNPC,2,2,{
+ end;
+
+ OnInstanceInit:
+ disablenpc instance_npcname("#potal_03");
+ end;
+
+ OnEnable:
+ mapannounce instance_mapname("1@lhz"),"[Management System] The door which connects to the Lab No.4 is now open.",bc_map,"0x7799ff";
+ enablenpc instance_npcname("#potal_03");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#potal_03");
+ end;
+
+ OnTouch:
+ warp instance_mapname("1@lhz"), 137, 100;
+ end;
+}
+
+// The Lab No.4
+//==============================================================================
+1@lhz,137,100,0 script #4_0 -1,1,1,{
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("#4_0");
+ end;
+
+ OnDisable:
+ disablenpc instance_npcname("#4_0");
+ end;
+
+ OnTouch:
+ donpcevent instance_npcname("Lab4#4_1")+"::OnEnable";
+ donpcevent instance_npcname("#4_0")+"::OnEnable";
+ end;
+}
+
+// The Lab No.4 4_1 System - Summon of Boss Monster
+//==============================================================================
+1@lhz,35,102,4 script Lab4#4_1 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ initnpctimer;
+ end;
+
+ OnDisable:
+ stopnpctimer;
+ end;
+
+ OnTimer1000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Who are you....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Seyren Windsor#boss01");
+ end;
+
+ OnTimer2000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Cecile Damon#boss02");
+ end;
+
+ OnTimer3000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Do not approach more...",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Gertie Wie#boss03");
+ end;
+
+ OnTimer4000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Eremes Guile#boss04");
+ end;
+
+ OnTimer5000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: This is a very dangerous place..",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Trentini#boss05");
+ end;
+
+ OnTimer6000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Chen Liu#boss06");
+ end;
+
+ OnTimer7000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: You won't go out alive....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Alphochio Basil#boss07");
+ end;
+
+ OnTimer8000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Flamel Emul#boss08");
+ end;
+
+ OnTimer9000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: If you don't want to be a part of us....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Randel Lawrence#boss09");
+ end;
+
+ OnTimer10000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Celia Alde#boss10");
+ end;
+
+ OnTimer11000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Leave now....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Kathryne Keyron#boss11");
+ end;
+
+ OnTimer12000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Margaretha Sorin#boss12");
+ end;
+
+ OnTimer13000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Before this place is thoroughly filled with sorrow and pain....",bc_map,"0x7DCBF0";
+ specialeffect EF_SPHERE,AREA,instance_npcname("Howard Alt-Eisen#boss13");
+ end;
+
+ OnTimer14000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Gren#boss14");
+ end;
+
+ OnTimer15000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Roke#boss15");
+ end;
+
+ OnTimer16000:
+ specialeffect EF_SPHERE,AREA,instance_npcname("Type_**Dree#boss16");
+ end;
+
+ OnTimer17000:
+ mapannounce instance_mapname("1@lhz"),"Whisper: Ah....it....it's too late......",bc_map,"0x7DCBF0";
+ donpcevent instance_npcname("MobCtrl4#mob04")+"::OnEnable";
+ stopnpctimer;
+ end;
+}
+
+// Area No. 4 - Boss Summon Control
+//==============================================================================
+1@lhz,37,102,4 script MobCtrl4#mob04 CLEAR_NPC,{
+ end;
+
+ OnEnable:
+ switch(rand(1,13)) {
+ case 1:
+ donpcevent instance_npcname("Seyren Windsor#boss01")+"::OnEnable";
+ end;
+ case 2:
+ donpcevent instance_npcname("Cecile Damon#boss02")+"::OnEnable";
+ end;
+ case 3:
+ donpcevent instance_npcname("Gertie Wie#boss03")+"::OnEnable";
+ end;
+ case 4:
+ donpcevent instance_npcname("Eremes Guile#boss04")+"::OnEnable";
+ end;
+ case 5:
+ donpcevent instance_npcname("Trentini#boss05")+"::OnEnable";
+ end;
+ case 6:
+ donpcevent instance_npcname("Chen Liu#boss06")+"::OnEnable";
+ end;
+ case 7:
+ donpcevent instance_npcname("Alphochio Basil#boss07")+"::OnEnable";
+ end;
+ case 8:
+ donpcevent instance_npcname("Flamel Emul#boss08")+"::OnEnable";
+ end;
+ case 9:
+ donpcevent instance_npcname("Randel Lawrence#boss09")+"::OnEnable";
+ end;
+ case 10:
+ donpcevent instance_npcname("Celia Alde#boss10")+"::OnEnable";
+ end;
+ case 11:
+ donpcevent instance_npcname("Kathryne Keyron#boss11")+"::OnEnable";
+ end;
+ case 12:
+ donpcevent instance_npcname("Margaretha Sorin#boss12")+"::OnEnable";
+ end;
+ case 13:
+ donpcevent instance_npcname("Howard Alt-Eisen#boss13")+"::OnEnable";
+ end;
+ }
+
+ OnDisable:
+ //stopnpctimer;
+ end;
+}
+
+// Random Experiments in Tubes
+//==============================================================================
+1@lhz,156,148,3 script Type_**Gren#boss14 4_M_03,{ end; }
+1@lhz,152,152,3 script Type_**Roke#boss15 4_M_HUMAN_01,{ end; }
+1@lhz,148,156,3 script Type_**Dree#boss16 4_M_DWARF,{ end; }
+
+// Bosses
+//==============================================================================
+- script bio4FBoss -1,{
+ end;
+
+ OnEnable:
+ .@map$ = instance_mapname("1@lhz");
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ specialeffect EF_SUI_EXPLOSION;
+ if(strnpcinfo(0) == "Seyren Windsor#boss01") {
+ monster .@map$,129,154,"Load Knight Seyren",B_SEYREN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Cecile Damon#boss02") {
+ monster .@map$,125,150,"Sniper Cecile",B_SHECIL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Gertie Wie#boss03") {
+ monster .@map$,121,146,"Stalker Gertie",B_GERTIE,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Eremes Guile#boss04") {
+ monster .@map$,117,142,"Assassin Cross Eremes",B_EREMES,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Trentini#boss05") {
+ monster .@map$,117,125,"Gypsy Trentini",B_TRENTINI,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Chen Liu#boss06") {
+ monster .@map$,121,121,"Champion Chen",B_CHEN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Alphochio Basil#boss07") {
+ monster .@map$,125,117,"Crown Alphochio",B_ALPHOCCIO,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Flamel Emul#boss08") {
+ monster .@map$,129,113,"Creator Flamel",B_FLAMEL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Randel Lawrence#boss09") {
+ monster .@map$,146,113,"Paladin Randel",B_RANDEL,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Celia Alde#boss10") {
+ monster .@map$,150,117,"Professor Celia",B_CELIA,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Kathryne Keyron#boss11") {
+ monster .@map$,154,121,"High Wizard Kathryne",B_KATRINN,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Margaretha Sorin#boss12") {
+ monster .@map$,158,125,"High Priest Margaretha",B_MAGALETA,1,.@label$;
+ }
+ if(strnpcinfo(0) == "Howard Alt-Eisen#boss13") {
+ monster .@map$,158,142,"White Smith Howard",B_HARWORD,1,.@label$;
+ }
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnDisable:
+ killmonster instance_mapname("1@lhz"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ disablenpc instance_npcname(strnpcinfo(0));
+ end;
+
+ OnMyMobDead:
+ if (mobcount(instance_mapname("1@lhz"), instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
+ .@map$ = instance_mapname("1@lhz");
+ if(strnpcinfo(0) == "Seyren Windsor#boss01")
+ mapannounce .@map$,"Awww... Where are all my fellows....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Cecile Damon#boss02")
+ mapannounce .@map$,"Any..one, please help.. please.....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Gertie Wie#boss03")
+ mapannounce .@map$,".. did I act too.. rashly...?",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Eremes Guile#boss04")
+ mapannounce .@map$,"Ah..... I am absolutely defeated....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Trentini#boss05")
+ mapannounce .@map$,"ah.. If I.. ever can ... dance and.... sing...happily....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Chen Liu#boss06")
+ mapannounce .@map$,"I.... am so .. sorry....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Alphochio Basil#boss07")
+ mapannounce .@map$,"...the new song......was ....for.....her....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Flamel Emul#boss08")
+ mapannounce .@map$,"Ha...I wanted to show.... the new potion....",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Randel Lawrence#boss09")
+ mapannounce .@map$,"Wooooo.. everyone got defeated.....??",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Celia Alde#boss10")
+ mapannounce .@map$,"No..... this experiment is.....dang...",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Kathryne Keyron#boss11")
+ mapannounce .@map$,"awww.. is everyone Ok....?",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Margaretha Sorin#boss12")
+ mapannounce .@map$,"My good boy.. Don't cry... ah.... our Great Odin.. please save us...",bc_map,"0xFD3B02";
+ else if (strnpcinfo(0) == "Howard Alt-Eisen#boss13")
+ mapannounce .@map$,"oh...no.... can't breath.... and my sister...?? sister!!",bc_map,"0xFD3B02";
+ donpcevent instance_npcname("Wolfchev#last")+"::OnEnable";
+ donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
+ }
+ end;
+}
+
+1@lhz,127,156,5 duplicate(bio4FBoss) Seyren Windsor#boss01 B_SEYREN
+1@lhz,123,152,5 duplicate(bio4FBoss) Cecile Damon#boss02 B_SHECIL
+1@lhz,119,148,5 duplicate(bio4FBoss) Gertie Wie#boss03 B_GERTIE
+1@lhz,115,144,5 duplicate(bio4FBoss) Eremes Guile#boss04 B_EREMES
+1@lhz,115,123,7 duplicate(bio4FBoss) Trentini#boss05 B_TRENTINI
+1@lhz,119,119,7 duplicate(bio4FBoss) Chen Liu#boss06 B_CHEN
+1@lhz,123,115,7 duplicate(bio4FBoss) Alphochio Basil#boss07 B_ALPHOCCIO
+1@lhz,127,111,7 duplicate(bio4FBoss) Flamel Emul#boss08 B_FLAMEL
+1@lhz,148,111,1 duplicate(bio4FBoss) Randel Lawrence#boss09 B_RANDEL
+1@lhz,152,115,1 duplicate(bio4FBoss) Celia Alde#boss10 B_CELIA
+1@lhz,156,119,1 duplicate(bio4FBoss) Kathryne Keyron#boss11 B_KATRINN
+1@lhz,160,123,1 duplicate(bio4FBoss) Margaretha Sorin#boss12 B_MAGALETA
+1@lhz,160,144,3 duplicate(bio4FBoss) Howard Alt-Eisen#boss13 B_HARWORD
+
+// Wolfchev - Final encounter
+//==============================================================================
+1@lhz,137,156,7 script Wolfchev#last 4_LGTSCIENCE,{
+ if ((MaxWeight - Weight) < 1000 || !checkweight(1201, 1)) {
+ mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
+ close;
+ }
+ .@all_quests_complete = true;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ if(checkquest(.@i, HUNTING) != 2)
+ .@all_quests_complete = false;
+ }
+ if (.@all_quests_complete) {
+ // Quests Complete. Get Rewards.
+ .@reward = rand(1, 1000);
+ if (lght_duk01 == 8) {
+ // First time beating the instance.
+ mes "[Wolfchev]";
+ mes "You finally defeated my Boss creature.";
+ next;
+ mes "[Wolfchev]";
+ mes "Finally. is this the result?? For whom did I experiment? Did they cheat me?";
+ next;
+ mes "[Wolfchev]";
+ mes "The button was supposed to be pressed for an emergency case...but..";
+ next;
+ mes "[Wolfchev]";
+ mes "Hey.. You and I met by a bad connection....";
+ next;
+ mes "[Wolfchev]";
+ mes "But...., you helped me... How could you do that?";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "When I met you for the first time, you seemed mad but sad, even if you could commit those cruel and horrific experiments.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "But actually, you did that because you was lonely,.. you just concentrated on that for this reason, huh?";
+ next;
+ mes "[Wolfchev]";
+ mes "HAHAHAHa. Loneliness.. You say?";
+ next;
+ mes "[Wolfchev]";
+ mes "It might be seen like that to you. But, it isn't. Loneliness is just a good and easy excuse of the losers.";
+ next;
+ mes "[Wolfchev]";
+ mes "I'm so happy doing experiments pursuing for a perfection, I never feel lonely.";
+ next;
+ mes "[Wolfchev]";
+ mes "Anyway, since I realized that Rekenber betrayed me, I cannot just let them do what they want.";
+ next;
+ mes "[Wolfchev]";
+ mes "For now, I will leave them alone, but I will make them cry and regret for trying to remove Wolfchev.";
+ next;
+ mes "["+ strcharinfo(PC_NAME) +"]";
+ mes "... .... ... ....";
+ next;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ erasequest .@i;
+ }
+ lght_duk01 = 9;
+ if (.@reward >= 1 && .@reward < 84) {
+ getitem Salvage_Cape, 1;
+ } else if (.@reward >= 84 && .@reward < 167) {
+ getitem Ancient_Gold_Deco, 1;
+ } else if (.@reward >= 167 && .@reward < 250) {
+ getitem Giant_Lance, 1;
+ } else if (.@reward >= 250 && .@reward < 333) {
+ getitem Bloody_Cross, 1;
+ } else if (.@reward >= 333 && .@reward < 416) {
+ getitem Guillotine_Katar, 1;
+ } else if (.@reward >= 416 && .@reward < 499) {
+ getitem Chilly_Spell_Book, 1;
+ } else if (.@reward >= 499 && .@reward < 582) {
+ getitem Goast_Chill, 10;
+ } else if (.@reward >= 582 && .@reward < 665) {
+ getitem Blood_Thirst, 10;
+ } else if (.@reward >= 665 && .@reward < 748) {
+ getitem Will_Of_Warrior, 10;
+ } else if (.@reward >= 748 && .@reward < 831) {
+ getitem Goast_Chill, 20;
+ } else if (.@reward >= 831 && .@reward < 914) {
+ getitem Blood_Thirst, 20;
+ } else {
+ getitem Will_Of_Warrior, 20;
+ }
+ mes "[Wolfchev]";
+ mes "aaaaaah, "+ strcharinfo(PC_NAME) +" Thank you so much to remove my boys who had gone mad. Not a big gift but I wish you don't deny, I don't need this anymore.";
+ next;
+ mes "[Wolfchev]";
+ mes "And, if you can...hope you to come back often, especially with your friends. I want the place to be with human heart again so the sadness in here gets disappear.";
+ next;
+ mes "I looked at Wolfchev again before leaving his lab. and I could feel that he was not obsessed anymore..";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ } else {
+ mes "[Wolfchev]";
+ mes "You did defeat all of the Boss creatures. Thank you again.";
+ next;
+ for(.@i = 5113; .@i <= 5125; .@i++) {
+ erasequest .@i;
+ }
+ if (.@reward >= 1 && .@reward < 84) {
+ getitem Salvage_Cape, 1;
+ } else if (.@reward >= 84 && .@reward < 167) {
+ getitem Ancient_Gold_Deco, 1;
+ } else if (.@reward >= 167 && .@reward < 250) {
+ getitem Giant_Lance, 1;
+ } else if (.@reward >= 250 && .@reward < 333) {
+ getitem Bloody_Cross, 1;
+ } else if (.@reward >= 333 && .@reward < 416) {
+ getitem Guillotine_Katar, 1;
+ } else if (.@reward >= 416 && .@reward < 499) {
+ getitem Chilly_Spell_Book, 1;
+ } else if (.@reward >= 499 && .@reward < 582) {
+ getitem Goast_Chill, 10;
+ } else if (.@reward >= 582 && .@reward < 665) {
+ getitem Blood_Thirst, 10;
+ } else if (.@reward >= 665 && .@reward < 748) {
+ getitem Will_Of_Warrior, 10;
+ } else if (.@reward >= 748 && .@reward < 831) {
+ getitem Goast_Chill, 20;
+ } else if (.@reward >= 831 && .@reward < 914) {
+ getitem Blood_Thirst, 20;
+ } else {
+ getitem Will_Of_Warrior, 20;
+ }
+ mes "[Wolfchev]";
+ mes "I say again, "+ strcharinfo(PC_NAME) +" Thank you so much to remove my boys who had gone mad. Not a big gift but I wish you don't deny, I don't need this anymore.";
+ next;
+ mes "[Wolfchev]";
+ mes "Khahaha, See you again. Do you want to get out of here now?";
+ next;
+ if(select("Not yet", "Yes") == 1) {
+ mes "[Wolfchev]";
+ mes "Then tell me when you want to.";
+ close;
+ }
+ mes "[Wolfchev]";
+ mes "Then I will send you out.";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ }
+ } else {
+ if (!.@all_quests_complete) {
+ mes "[Wolfchev]";
+ mes "I was looking at the system.... don't know who made this..... but it's so complicated to get..no idea...";
+ next;
+ } else {
+ mes "[Wolfchev]";
+ mes "kakakaah.. Thank you. You handled those Boss creatures well..";
+ next;
+ }
+ if (lght_duk01 == 7) {
+ lght_duk01 = 8;
+ mes "[Wolfchev]";
+ mes "While you were struggling...";
+ next;
+ mes "[Wolfchev]";
+ mes "I figured out something..and there's a system error which doesn't let us come and go freely, so you could help me in 72 hours... Go somewhere to take rest before you come back..";
+ next;
+ mes "[Wolfchev]";
+ mes "Ah.. and I can send you out of my laboratory. Do you want?";
+ next;
+ } else {
+ mes "[Wolfchev]";
+ mes "Do you want to get out of here now?";
+ next;
+ }
+ if(select("Not yet", "Yes") == 1) {
+ mes "[Wolfchev]";
+ mes "Then tell me when you want to.";
+ close;
+ }
+ mes "[Wolfchev]";
+ mes "Then I will send you out.";
+ close2;
+ warp "lhz_dun04", 147, 273;
+ end;
+ }
+
+ OnInstanceInit:
+ OnDisable:
+ disablenpc instance_npcname("Wolfchev#last");
+ end;
+
+ OnEnable:
+ enablenpc instance_npcname("Wolfchev#last");
+ end;
+}
diff --git a/npc/re/jobs/3-1/mechanic.txt b/npc/re/jobs/3-1/mechanic.txt
index 8300576f2..e34fccc72 100644
--- a/npc/re/jobs/3-1/mechanic.txt
+++ b/npc/re/jobs/3-1/mechanic.txt
@@ -728,4 +728,4 @@ OnTouch:
}
jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 HIDDEN_WARP_NPC,1,0
-jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0 \ No newline at end of file
+jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0
diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt
index 0efc323c8..671340a03 100644
--- a/npc/re/jobs/3-1/warlock.txt
+++ b/npc/re/jobs/3-1/warlock.txt
@@ -1093,4 +1093,4 @@ job3_war01,1,2,0 script Button Girl#wl 1_F_01,{
}
spl_fild02,0,0,0,0 monster Bradium Golem 2049,20,5000,0,0
-spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0 \ No newline at end of file
+spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0
diff --git a/npc/re/jobs/3-2/genetic.txt b/npc/re/jobs/3-2/genetic.txt
index 21dfc943a..92b015bf4 100644
--- a/npc/re/jobs/3-2/genetic.txt
+++ b/npc/re/jobs/3-2/genetic.txt
@@ -1042,4 +1042,4 @@ job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,26,34,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
-job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0 \ No newline at end of file
+job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
diff --git a/npc/re/jobs/3-2/minstrel.txt b/npc/re/jobs/3-2/minstrel.txt
index 8b9288ad6..1435b23fd 100644
--- a/npc/re/jobs/3-2/minstrel.txt
+++ b/npc/re/jobs/3-2/minstrel.txt
@@ -1915,4 +1915,4 @@ prt_in,94,172,4 script Karian#job_min3 4_M_MINSTREL1,{
mes "[Karian]";
mes "How did you get in here?";
close;
-} \ No newline at end of file
+}
diff --git a/npc/re/jobs/3-2/sorcerer.txt b/npc/re/jobs/3-2/sorcerer.txt
index af38058a3..05c568431 100644
--- a/npc/re/jobs/3-2/sorcerer.txt
+++ b/npc/re/jobs/3-2/sorcerer.txt
@@ -415,4 +415,4 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
thor_v01,64,252,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#1 2_BOARD2
ice_dun01,274,274,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#2 2_BOARD2
mjo_dun03,200,141,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#3 2_BOARD2
-gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 2_BOARD2 \ No newline at end of file
+gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 2_BOARD2
diff --git a/npc/re/jobs/3-2/wanderer.txt b/npc/re/jobs/3-2/wanderer.txt
index 5926b7bcb..9ce297068 100644
--- a/npc/re/jobs/3-2/wanderer.txt
+++ b/npc/re/jobs/3-2/wanderer.txt
@@ -1032,4 +1032,4 @@ xmas,145,127,7 duplicate(#wander_xmas) Spectator#xmas2 4_M_05
xmas,148,127,7 duplicate(#wander_xmas) Soy#xmas 4_F_06
xmas,149,127,1 duplicate(#wander_xmas) Mimi#xmas 4_F_06
xmas,151,127,1 duplicate(#wander_xmas) Spectator#xmas3 4_M_KID2
-xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 4_M_NFLOSTMAN \ No newline at end of file
+xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 4_M_NFLOSTMAN
diff --git a/npc/re/jobs/novice/supernovice_ex.txt b/npc/re/jobs/novice/supernovice_ex.txt
index 05d98dc96..044e386fe 100644
--- a/npc/re/jobs/novice/supernovice_ex.txt
+++ b/npc/re/jobs/novice/supernovice_ex.txt
@@ -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;
+ set EXSUPNOV_Q,5;
emotion e_heh;
mes "[Nodor]";
mes "Puhahahahahahahahahahah!!";
diff --git a/npc/re/kafras/kafras.txt b/npc/re/kafras/kafras.txt
index 448bbc8c4..3e94f180d 100644
--- a/npc/re/kafras/kafras.txt
+++ b/npc/re/kafras/kafras.txt
@@ -9,12 +9,12 @@
//= arg(0): 0 - Default Kafra message
//= 1 - Niflhiem Kafra message
//= 2 - Guild Kafra message
-//= arg(1): 1 - Disable teleport menu
+//= arg(1): 1 - Disable teleport menu
//= arg(2): 1 - Disable info menu
//= arg(3): Cost of Storage service
//= arg(4): Cost of Rent a Pushcart service
//===== Additional Comments: =================================
-//= 0.x Previous Authors:
+//= 0.x Previous Authors:
//= - L0ne_W0lf, Daegaladh
//= 1.0 Merged and cleaned up Kafras. [Euphy]
//= 1.1 Added Dewata Kafra. [Lemongrass]
diff --git a/npc/re/merchants/enchan_upg.txt b/npc/re/merchants/enchan_upg.txt
index fd8863776..abbc0896a 100644
--- a/npc/re/merchants/enchan_upg.txt
+++ b/npc/re/merchants/enchan_upg.txt
@@ -261,4 +261,4 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
mes "It seems you have chosen the wrong job??";
close;
}
-} \ No newline at end of file
+}
diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt
index 4905feb4a..db57a1d5d 100644
--- a/npc/re/merchants/refine.txt
+++ b/npc/re/merchants/refine.txt
@@ -226,7 +226,7 @@ function script refinenew {
} else
set .@menu2,2;
switch(.@menu2){
- case 1:
+ case 1:
set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
break;
case 2:
diff --git a/npc/re/mobs/dungeons/alde_dun.txt b/npc/re/mobs/dungeons/alde_dun.txt
index 5f1570b49..56ed111e7 100644
--- a/npc/re/mobs/dungeons/alde_dun.txt
+++ b/npc/re/mobs/dungeons/alde_dun.txt
@@ -11,13 +11,13 @@
//============================================================
//==================================================
-// alde_dun01 - Clock Tower B1f
+// alde_dun01 - Clock Tower B1f
//==================================================
alde_dun01,0,0,0,0 monster Arclouze 1194,50,5000,0,0
alde_dun01,0,0,0,0 monster Drainliar 1111,40,5000,0,0
//==================================================
-// alde_dun02 - Clock Tower B2f
+// alde_dun02 - Clock Tower B2f
//==================================================
alde_dun02,0,0,0,0 monster High Orc 1213,50,5000,0,0
alde_dun02,0,0,0,0 monster Brilight 1211,20,5000,0,0
@@ -25,7 +25,7 @@ alde_dun02,0,0,0,0 monster Arclouze 1194,20,5000,0,0
alde_dun02,0,0,0,0 monster Orc Archer 1189,20,5000,0,0
//==================================================
-// alde_dun03 - Clock Tower B3f
+// alde_dun03 - Clock Tower B3f
//==================================================
alde_dun03,0,0,0,0 monster Penomena 1216,85,5000,0,0
alde_dun03,0,0,0,0 monster Cramp 1209,56,5000,0,0
diff --git a/npc/re/mobs/dungeons/beach_dun.txt b/npc/re/mobs/dungeons/beach_dun.txt
index 658444a76..0e4d2ee26 100644
--- a/npc/re/mobs/dungeons/beach_dun.txt
+++ b/npc/re/mobs/dungeons/beach_dun.txt
@@ -12,7 +12,7 @@
//============================================================
//==================================================
-// beach_dun - Karu, the West cave
+// beach_dun - Karu, the West cave
//==================================================
beach_dun,0,0,0,0 monster Medusa 1148,60,5000,0,0
beach_dun,0,0,0,0 monster Nereid 1255,20,5000,0,0
@@ -21,7 +21,7 @@ beach_dun,0,0,0,0 monster Merman 1264,3,5000,0,0
beach_dun,0,0,0,0 boss_monster Tao Gunka 1583,1,18000000,600000,0
//==================================================
-// beach_dun2 - Ruande the northern cave
+// beach_dun2 - Ruande the northern cave
//==================================================
beach_dun2,0,0,0,0 monster Stalactic Golem 1278,65,5000,0,0
beach_dun2,0,0,0,0 monster Tri Joint 1279,20,5000,0,0
@@ -30,7 +30,7 @@ beach_dun2,0,0,0,0 monster Hydra 1068,10,5000,0,0
beach_dun2,0,0,0,0 monster Nereid 1255,3,5000,0,0
//==================================================
-// beach_dun3 - Mao, the East Cave
+// beach_dun3 - Mao, the East Cave
//==================================================
beach_dun3,0,0,0,0 monster Thara Frog 1034,50,5000,0,0
beach_dun3,0,0,0,0 monster Megalodon 1064,30,5000,0,0
diff --git a/npc/re/mobs/dungeons/glastheim.txt b/npc/re/mobs/dungeons/glastheim.txt
index 267541aa5..fa746ef29 100644
--- a/npc/re/mobs/dungeons/glastheim.txt
+++ b/npc/re/mobs/dungeons/glastheim.txt
@@ -35,7 +35,7 @@ gl_cas01,0,0,0,0 monster Owl Baron 1295,6,5000,0,0
gl_cas01,0,0,0,0 monster Alice 1275,1,5000,0,0
//==================================================
-// gl_cas02 - Glast Heim 2f
+// gl_cas02 - Glast Heim 2f
//==================================================
gl_cas02,0,0,0,0 monster Wanderer 1208,41,5000,0,0
gl_cas02,0,0,0,0 monster Raydric 1163,36,5000,0,0
diff --git a/npc/re/mobs/dungeons/kh_dun.txt b/npc/re/mobs/dungeons/kh_dun.txt
index b4c700534..4e9d1fbf7 100644
--- a/npc/re/mobs/dungeons/kh_dun.txt
+++ b/npc/re/mobs/dungeons/kh_dun.txt
@@ -12,7 +12,7 @@
//============================================================
//==================================================
-// kh_dun01 - Robot Factory level 1
+// kh_dun01 - Robot Factory level 1
//==================================================
kh_dun01,0,0,0,0 monster Aliza 1737,45,5000,0,0
kh_dun01,0,0,0,0 monster Alice 1275,25,5000,0,0
@@ -32,7 +32,7 @@ kh_dun02,0,0,0,0 monster Constant 1745,5,5000,0,0
kh_dun02,0,0,0,0 boss_monster Kiel D-01 1734,1,7200000,600000,0
//==================================================
-// kh_kiehl01 - Kiehl's Room
+// kh_kiehl01 - Kiehl's Room
//==================================================
kh_kiehl01,0,0,0,0 monster Constant 1745,10,5000,0,0
kh_kiehl01,67,171,5,5 monster Aliot 1740,1,180000,120000,0
diff --git a/npc/re/mobs/dungeons/lou_dun.txt b/npc/re/mobs/dungeons/lou_dun.txt
index 1c6637712..6f50cebad 100644
--- a/npc/re/mobs/dungeons/lou_dun.txt
+++ b/npc/re/mobs/dungeons/lou_dun.txt
@@ -11,7 +11,7 @@
//============================================================
//==================================================
-// lou_dun01 - The Royal Tomb
+// lou_dun01 - The Royal Tomb
//==================================================
lou_dun01,0,0,0,0 monster Jing Guai 1517,45,5000,0,0
lou_dun01,0,0,0,0 monster Grizzly 1381,15,5000,0,0
@@ -31,7 +31,7 @@ lou_dun02,0,0,0,0 monster Mimic 1191,5,5000,0,0
lou_dun02,0,0,0,0 monster Zhu Po Long 1514,5,5000,0,0
//==================================================
-// lou_dun03 - Suei Long Gon
+// lou_dun03 - Suei Long Gon
//==================================================
lou_dun03,0,0,0,0 monster Zhu Po Long 1514,25,5000,0,0
lou_dun03,0,0,0,0 monster Yao Jun 1512,25,5000,0,0
diff --git a/npc/re/mobs/dungeons/prt_sew.txt b/npc/re/mobs/dungeons/prt_sew.txt
index a7608aa7c..0ec2fe5dd 100644
--- a/npc/re/mobs/dungeons/prt_sew.txt
+++ b/npc/re/mobs/dungeons/prt_sew.txt
@@ -10,7 +10,7 @@
//============================================================
//==================================================
-// prt_sewb1 - Prontera Culvert
+// prt_sewb1 - Prontera Culvert
//==================================================
prt_sewb1,0,0,0,0 monster Thief Bug 1051,30,5000,0,0
prt_sewb1,0,0,0,0 monster Thief Bug Egg 1048,80,5000,0,0
diff --git a/npc/re/mobs/dungeons/ra_san.txt b/npc/re/mobs/dungeons/ra_san.txt
index 51f7c42fd..eea77aa0f 100644
--- a/npc/re/mobs/dungeons/ra_san.txt
+++ b/npc/re/mobs/dungeons/ra_san.txt
@@ -20,7 +20,7 @@ ra_san01,0,0,0,0 monster Beholder 1633,6,5000,0,0
ra_san01,0,0,0,0 monster Hodremlin 1773,6,5000,0,0
//==================================================
-// ra_san02 - Holy Ground
+// ra_san02 - Holy Ground
//==================================================
ra_san02,0,0,0,0 monster Isilla 1772,85,5000,0,0
ra_san02,0,0,0,0 monster Vanberk 1771,30,5000,0,0
diff --git a/npc/re/mobs/dungeons/tha_t.txt b/npc/re/mobs/dungeons/tha_t.txt
index eb84e8975..efa7cca38 100644
--- a/npc/re/mobs/dungeons/tha_t.txt
+++ b/npc/re/mobs/dungeons/tha_t.txt
@@ -85,7 +85,7 @@ tha_t06,0,0,0,0 monster Plasma 1694,10,5000,0,0
tha_t06,0,0,0,0 monster Maero of Thanatos 1706,2,5000,0,0
//==================================================
-// tha_t07 - Thanatos Tower - Upper Level
+// tha_t07 - Thanatos Tower - Upper Level
//==================================================
tha_t07,0,0,0,0 monster Baroness of Retribution 1702,15,5000,0,0
tha_t07,0,0,0,0 monster Death Word 1698,10,5000,0,0
diff --git a/npc/re/mobs/fields/comodo.txt b/npc/re/mobs/fields/comodo.txt
index 45a39f7bb..d2d4ef236 100644
--- a/npc/re/mobs/fields/comodo.txt
+++ b/npc/re/mobs/fields/comodo.txt
@@ -65,7 +65,7 @@ cmd_fild06,293,235,5,5 monster Yellow Plant 1081,2,1800000,900000,1
cmd_fild06,84,375,10,10 monster Yellow Plant 1081,3,1800000,900000,1
//==================================================
-// cmd_fild07 - Beacon Island, Pharos
+// cmd_fild07 - Beacon Island, Pharos
//==================================================
cmd_fild07,0,0,0,0 monster Raggler 1254,100,5000,0,0
cmd_fild07,0,0,0,0 monster Aster 1266,30,5000,0,0
diff --git a/npc/re/mobs/fields/mjolnir.txt b/npc/re/mobs/fields/mjolnir.txt
index 78e39d96b..fddd95c6b 100644
--- a/npc/re/mobs/fields/mjolnir.txt
+++ b/npc/re/mobs/fields/mjolnir.txt
@@ -159,7 +159,7 @@ mjolnir_07,97,210,0,0 monster Green Plant 1080,1,180000,90000,1
mjolnir_07,249,214,0,0 monster Blue Plant 1079,2,360000,180000,1
//==================================================
-// mjolnir_08 - Mt.Mjolnir
+// mjolnir_08 - Mt.Mjolnir
//==================================================
mjolnir_08,0,0,0,0 monster Beetle King 1494,140,5000,0,0
mjolnir_08,0,0,0,0 monster Savage 1166,30,5000,0,0
@@ -200,7 +200,7 @@ mjolnir_10,123,331,10,10 monster Shining Plant 1083,1,1800000,900000,1
mjolnir_10,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
//==================================================
-// mjolnir_11 - Mt.Mjolnir
+// mjolnir_11 - Mt.Mjolnir
//==================================================
mjolnir_11,0,0,0,0 monster Argiope 1099,130,5000,0,0
mjolnir_11,0,0,0,0 monster Argos 1100,35,5000,0,0
@@ -220,7 +220,7 @@ mjolnir_11,282,300,0,0 monster Green Plant 1080,1,180000,90000,1
mjolnir_11,295,271,0,0 monster Green Plant 1080,1,180000,90000,1
//==================================================
-// mjolnir_12 - Mt.Mjolnir
+// mjolnir_12 - Mt.Mjolnir
//==================================================
mjolnir_12,0,0,0,0 monster Dustiness 1114,130,5000,0,0
mjolnir_12,0,0,0,0 monster Hunter Fly 1035,35,5000,0,0
diff --git a/npc/re/mobs/fields/morocc.txt b/npc/re/mobs/fields/morocc.txt
index 663f46134..048dda6ba 100644
--- a/npc/re/mobs/fields/morocc.txt
+++ b/npc/re/mobs/fields/morocc.txt
@@ -17,7 +17,7 @@
//============================================================
//==================================================
-// moc_fild01 - Sograt Desert
+// moc_fild01 - Sograt Desert
//==================================================
moc_fild01,0,0,0,0 monster Peco Peco 1019,130,5000,0,0
moc_fild01,0,0,0,0 monster Muka 1055,50,5000,0,0
@@ -25,7 +25,7 @@ moc_fild01,0,0,0,0 monster Peco Peco Egg 1047,20,5000,0,0
moc_fild01,194,51,10,10 monster Yellow Plant 1081,10,900000,450000,1
//==================================================
-// moc_fild02 - Sograt Desert
+// moc_fild02 - Sograt Desert
//==================================================
moc_fild02,0,0,0,0 monster Muka 1055,130,5000,0,0
moc_fild02,0,0,0,0 monster Peco Peco 1019,60,5000,0,0
@@ -46,7 +46,7 @@ moc_fild02,353,103,0,0 monster Green Plant 1080,1,180000,90000,1
moc_fild02,337,35,0,0 monster Green Plant 1080,1,180000,90000,1
//==================================================
-// moc_fild03 - Sograt Desert
+// moc_fild03 - Sograt Desert
//==================================================
moc_fild03,0,0,0,0 monster Wolf 1013,140,5000,0,0
moc_fild03,0,0,0,0 monster Argos 1100,20,5000,0,0
@@ -72,7 +72,7 @@ moc_fild03,200,263,5,5 monster Green Plant 1080,2,180000,90000,1
//==================================================
//==================================================
-// moc_fild07 - Sograt Desert
+// moc_fild07 - Sograt Desert
//==================================================
moc_fild07,0,0,0,0 monster Drops 1113,140,5000,0,0
moc_fild07,0,0,0,0 monster Chonchon 1011,30,5000,0,0
@@ -101,7 +101,7 @@ moc_fild11,0,0,0,0 monster Condor 1009,30,5000,0,0
moc_fild11,0,0,0,0 monster Scorpion 1001,30,5000,0,0
//==================================================
-// moc_fild12 - Sograt Desert
+// moc_fild12 - Sograt Desert
//==================================================
moc_fild12,0,0,0,0 monster Picky 1049,50,5000,0,0
moc_fild12,0,0,0,0 monster Picky 1050,50,5000,0,0
@@ -111,7 +111,7 @@ moc_fild12,0,0,0,0 monster Condor 1009,30,5000,0,0
moc_fild12,181,336,40,20 monster Yellow Plant 1081,10,180000,90000,1
//==================================================
-// moc_fild13 - Sograt Desert
+// moc_fild13 - Sograt Desert
//==================================================
moc_fild13,0,0,0,0 monster Steel Chonchon 1042,140,5000,0,0
moc_fild13,0,0,0,0 monster Wolf 1013,15,5000,0,0
@@ -157,7 +157,7 @@ moc_fild16,0,0,0,0 monster Hode 1127,30,5000,0,0
moc_fild16,0,0,0,0 monster Frilldora 1119,10,5000,0,0
//==================================================
-// moc_fild17 - Sograt Desert
+// moc_fild17 - Sograt Desert
//==================================================
moc_fild17,0,0,0,0 monster Hode 1127,130,5000,0,0
moc_fild17,0,0,0,0 monster Sandman 1165,30,5000,0,0
@@ -192,7 +192,7 @@ moc_fild18,325,272,0,0 monster Yellow Plant 1081,1,180000,90000,1
//==================================================
//==================================================
-// moc_fild20 - Sograt Desert - Continental Guard Quarantine
+// moc_fild20 - Sograt Desert - Continental Guard Quarantine
//==================================================
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1918,1,30000,0,0
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1919,1,30000,0,0
@@ -200,7 +200,7 @@ moc_fild20,0,0,0,0 monster Incarnation of Morroc 1920,1,30000,0,0
moc_fild20,0,0,0,0 monster Incarnation of Morroc 1921,1,30000,0,0
//==================================================
-// moc_fild21 - Dimensional Gorge
+// moc_fild21 - Dimensional Gorge
//==================================================
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1918,46,30000,0,0
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1919,46,30000,0,0
@@ -208,7 +208,7 @@ moc_fild21,0,0,0,0 monster Incarnation of Morroc 1920,46,30000,0,0
moc_fild21,0,0,0,0 monster Incarnation of Morroc 1921,34,30000,0,0
//==================================================
-// moc_fild22 - Dimensional Gorge
+// moc_fild22 - Dimensional Gorge
//==================================================
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1918,60,30000,0,0
moc_fild22,0,0,0,0 monster Incarnation of Morroc 1919,60,30000,0,0
diff --git a/npc/re/mobs/fields/payon.txt b/npc/re/mobs/fields/payon.txt
index 0d2f13874..473bd2bfd 100644
--- a/npc/re/mobs/fields/payon.txt
+++ b/npc/re/mobs/fields/payon.txt
@@ -36,7 +36,7 @@ pay_fild01,70,246,0,0 monster Black Mushroom 1084,1,180000,90000,1
pay_fild01,0,0,0,0 monster Green Plant 1080,5,180000,90000,1
//==================================================
-// pay_fild02 - Payon Forest
+// pay_fild02 - Payon Forest
//==================================================
pay_fild02,0,0,0,0 monster Boa 1025,140,5000,0,0
pay_fild02,0,0,0,0 monster Wormtail 1024,30,5000,0,0
diff --git a/npc/re/mobs/fields/prontera.txt b/npc/re/mobs/fields/prontera.txt
index ec7091e0b..7968cbdc0 100644
--- a/npc/re/mobs/fields/prontera.txt
+++ b/npc/re/mobs/fields/prontera.txt
@@ -13,7 +13,7 @@
//============================================================
//==================================================
-// prt_fild00 - Prontera Field
+// prt_fild00 - Prontera Field
//==================================================
prt_fild00,0,0,0,0 monster Roda Frog 1012,130,5000,0,0
prt_fild00,0,0,0,0 monster Ambernite 1094,50,5000,0,0
@@ -22,7 +22,7 @@ prt_fild00,227,212,0,0 monster Shining Plant 1083,1,1800000,900000,1
prt_fild00,285,138,10,10 monster Green Plant 1080,5,360000,180000,1
//==================================================
-// prt_fild01 - Prontera Field
+// prt_fild01 - Prontera Field
//==================================================
prt_fild01,0,0,0,0 monster Lunatic 1063,140,5000,0,0
prt_fild01,0,0,0,0 monster Poring 1002,30,5000,0,0
@@ -31,7 +31,7 @@ prt_fild01,199,266,3,3 monster Green Plant 1080,3,360000,180000,1
prt_fild01,199,266,3,3 monster Blue Plant 1079,1,900000,450000,1
//==================================================
-// prt_fild02 - Prontera Field
+// prt_fild02 - Prontera Field
//==================================================
prt_fild02,0,0,0,0 monster Stainer 1174,140,5000,0,0
prt_fild02,0,0,0,0 monster Creamy 1018,30,5000,0,0
@@ -41,7 +41,7 @@ prt_fild02,339,309,3,3 monster Shining Plant 1083,1,1800000,900000,1
prt_fild02,0,0,0,0 monster Shining Plant 1083,2,1800000,900000,1
//==================================================
-// prt_fild03 - Prontera Field
+// prt_fild03 - Prontera Field
//==================================================
prt_fild03,0,0,0,0 monster Yoyo 1057,100,5000,0,0
prt_fild03,0,0,0,0 monster Poporing 1031,30,5000,0,0
@@ -54,7 +54,7 @@ prt_fild03,147,219,5,5 monster Green Plant 1080,5,360000,180000,1
prt_fild03,148,107,5,5 monster Green Plant 1080,5,360000,180000,1
//==================================================
-// prt_fild04 - Prontera Field
+// prt_fild04 - Prontera Field
//==================================================
prt_fild04,0,0,0,0 monster Ambernite 1094,80,5000,0,0
prt_fild04,0,0,0,0 monster Roda Frog 1012,20,5000,0,0
@@ -62,7 +62,7 @@ prt_fild04,0,0,0,0 monster Vocal 1088,1,1800000,1200000,0
prt_fild04,350,114,10,10 monster Green Plant 1080,5,900000,450000,1
//==================================================
-// prt_fild05 - Prontera Field
+// prt_fild05 - Prontera Field
//==================================================
prt_fild05,0,0,0,0 monster Hornet 1004,140,5000,0,0
prt_fild05,0,0,0,0 monster Thief Bug Egg 1048,30,5000,0,0
@@ -71,7 +71,7 @@ prt_fild05,208,37,10,10 monster Green Plant 1080,6,900000,450000,1
prt_fild05,208,37,10,10 monster Blue Plant 1079,1,900000,450000,1
//==================================================
-// prt_fild06 - Prontera Field
+// prt_fild06 - Prontera Field
//==================================================
prt_fild06,0,0,0,0 monster Fabre 1007,140,5000,0,0
prt_fild06,0,0,0,0 monster Poring 1002,30,5000,0,0
@@ -79,7 +79,7 @@ prt_fild06,0,0,0,0 monster Lunatic 1063,30,5000,0,0
prt_fild06,222,30,40,10 monster Green Plant 1080,15,900000,450000,1
//==================================================
-// prt_fild07 - Prontera Field
+// prt_fild07 - Prontera Field
//==================================================
prt_fild07,0,0,0,0 monster Rocker 1052,150,5000,0,0
prt_fild07,0,0,0,0 monster Savage Babe 1167,50,5000,0,0
@@ -87,14 +87,14 @@ prt_fild07,0,0,0,0 monster Vocal 1088,1,1800000,1200000,0
prt_fild07,225,110,5,5 monster Black Mushroom 1084,3,360000,180000,1
//==================================================
-// prt_fild08 - Prontera Field
+// prt_fild08 - Prontera Field
//==================================================
prt_fild08,0,0,0,0 monster Poring 1002,140,5000,0,0
prt_fild08,0,0,0,0 monster Lunatic 1063,40,5000,0,0
prt_fild08,0,0,0,0 monster Fabre 1007,40,5000,0,0
//==================================================
-// prt_fild08 - Duplicates
+// prt_fild08 - Duplicates
//==================================================
prt_fild08a,0,0,0,0 monster Poring 1002,140,5000,0,0
prt_fild08b,0,0,0,0 monster Poring 1002,140,5000,0,0
@@ -110,14 +110,14 @@ prt_fild08c,0,0,0,0 monster Fabre 1007,40,5000,0,0
prt_fild08d,0,0,0,0 monster Fabre 1007,40,5000,0,0
//==================================================
-// prt_fild09 - Prontera Field
+// prt_fild09 - Prontera Field
//==================================================
prt_fild09,0,0,0,0 monster Magnolia 1138,140,5000,0,0
prt_fild09,0,0,0,0 monster Metaller 1058,60,5000,0,0
prt_fild09,237,115,5,5 monster Yellow Plant 1081,3,360000,180000,1
//==================================================
-// prt_fild10 - Prontera Field
+// prt_fild10 - Prontera Field
//==================================================
prt_fild10,0,0,0,0 monster Elder Willow 1033,140,5000,0,0
prt_fild10,0,0,0,0 monster Poporing 1031,20,5000,0,0
diff --git a/npc/re/mobs/fields/umbala.txt b/npc/re/mobs/fields/umbala.txt
index 34e9d10de..24e93dfd2 100644
--- a/npc/re/mobs/fields/umbala.txt
+++ b/npc/re/mobs/fields/umbala.txt
@@ -11,7 +11,7 @@
//============================================================
//==================================================
-// um_fild01 - Luluka Forest
+// um_fild01 - Luluka Forest
//==================================================
um_fild01,0,0,0,0 monster Dryad 1493,70,5000,0,0
um_fild01,0,0,0,0 monster Stone Shooter 1495,15,5000,0,0
@@ -23,7 +23,7 @@ um_fild01,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
um_fild01,0,0,0,0 monster Shining Plant 1083,5,180000,90000,1
//==================================================
-// um_fild02 - Hoomga Forest
+// um_fild02 - Hoomga Forest
//==================================================
um_fild02,0,0,0,0 monster Wootan Fighter 1499,40,5000,0,0
um_fild02,0,0,0,0 monster Stone Shooter 1495,15,5000,0,0
@@ -33,7 +33,7 @@ um_fild02,0,0,0,0 monster Red Plant 1078,5,180000,90000,1
um_fild02,0,0,0,0 monster Yellow Plant 1081,5,180000,90000,1
//==================================================
-// um_fild03 - Kalala Swamp
+// um_fild03 - Kalala Swamp
//==================================================
um_fild03,0,0,0,0 monster Parasite 1500,60,5000,0,0
um_fild03,0,0,0,0 monster Stone Shooter 1495,15,5000,0,0
@@ -44,7 +44,7 @@ um_fild03,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
um_fild03,0,0,0,0 monster Shining Plant 1083,2,180000,90000,1
//==================================================
-// um_fild04 - Hoomga Jungle
+// um_fild04 - Hoomga Jungle
//==================================================
um_fild04,0,0,0,0 monster Wild Rose 1261,30,5000,0,0
um_fild04,0,0,0,0 monster Stone Shooter 1495,10,5000,0,0
diff --git a/npc/re/mobs/fields/veins.txt b/npc/re/mobs/fields/veins.txt
index dd52b4257..54261c8d6 100644
--- a/npc/re/mobs/fields/veins.txt
+++ b/npc/re/mobs/fields/veins.txt
@@ -50,7 +50,7 @@ ve_fild03,200,212,114,60 monster Red Plant 1078,10,10000,0,1
ve_fild03,0,0,0,0 monster Yellow Plant 1081,10,10000,0,1
//==================================================
-// ve_fild04 - Veins Field
+// ve_fild04 - Veins Field
//==================================================
ve_fild04,0,0,0,0 monster Muscipular 1780,100,5000,0,0
ve_fild04,0,0,0,0 monster Drosera 1781,50,5000,0,0
diff --git a/npc/re/mobs/fields/yuno.txt b/npc/re/mobs/fields/yuno.txt
index 40641ff5c..3916884ca 100644
--- a/npc/re/mobs/fields/yuno.txt
+++ b/npc/re/mobs/fields/yuno.txt
@@ -23,7 +23,7 @@
//============================================================
//==================================================
-// yuno_fild01 - Border Posts
+// yuno_fild01 - Border Posts
//==================================================
yuno_fild01,0,0,0,0 monster Geographer 1368,50,5000,0,0
yuno_fild01,0,0,0,0 monster Dustiness 1114,35,5000,0,0
@@ -112,7 +112,7 @@ yuno_fild08,0,0,0,0 monster Green Plant 1080,10,180000,90000,1
yuno_fild08,0,0,0,0 monster Yellow Plant 1081,10,180000,90000,1
//==================================================
-// yuno_fild09 - Schwaltzvalt Guards Camp
+// yuno_fild09 - Schwaltzvalt Guards Camp
//==================================================
yuno_fild09,0,0,0,0 monster Grand Peco 1369,130,5000,0,0
yuno_fild09,0,0,0,0 monster Sleeper 1386,30,5000,0,0
diff --git a/npc/re/quests/cupet.txt b/npc/re/quests/cupet.txt
index 182214064..829ec2dae 100644
--- a/npc/re/quests/cupet.txt
+++ b/npc/re/quests/cupet.txt
@@ -158,7 +158,7 @@ function script cute_pet_manager {
next;
// Create Menu System
- for (set .@a, 0; .@a < getarraysize(getarg(0)); set .@a, .@a + 1) {
+ for (set .@a, 0; .@a < getarraysize(getarg(0)); set .@a, .@a + 1) {
set .@menu$, .@menu$ + (.@menu$ == "" ? "" : ":") + getitemname(getelementofarray(getarg(0), .@a));
}
@@ -193,7 +193,7 @@ function script cute_pet_manager {
mes "Do you want to exchange with me?";
next;
- if (select("Exchange:Don't Exchange") == 2) {
+ if (select("Exchange:Don't Exchange") == 2) {
mes "[Cute Pet Manager]";
mes "You don't? You will come back again.";
close;
diff --git a/npc/re/quests/eden/86-90.txt b/npc/re/quests/eden/86-90.txt
index 7746d6be3..01c8fec29 100644
--- a/npc/re/quests/eden/86-90.txt
+++ b/npc/re/quests/eden/86-90.txt
@@ -4,6 +4,8 @@
//= Chilly
//===== Current Version: =====================================
//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 86 - 90.
//===== Additional Comments: =================================
diff --git a/npc/re/quests/eden/91-99.txt b/npc/re/quests/eden/91-99.txt
index 2985463bf..e6744e80f 100644
--- a/npc/re/quests/eden/91-99.txt
+++ b/npc/re/quests/eden/91-99.txt
@@ -4,6 +4,8 @@
//= Chilly
//===== Current Version: =====================================
//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 91 - 99.
//===== Additional Comments: =================================
diff --git a/npc/re/quests/eden/eden_iro.txt b/npc/re/quests/eden/eden_iro.txt
index f7481d04d..78107cc46 100644
--- a/npc/re/quests/eden/eden_iro.txt
+++ b/npc/re/quests/eden/eden_iro.txt
@@ -340,7 +340,7 @@ moc_para01,50,39,4 script Eve Natalia 4_F_SITDOWN,{
moc_para01,48,184,2 script Gum & Manual Exchanger 2_DROP_MACHINE,{
if (Weight < MaxWeight / 2) {
mes "You're carrying too many items right now.";
- close;
+ close;
}
mes "[Trader Machine]";
mes "Insert Bubble Gums and/or Battle Manuals to trade for higher efficiency Gums and Manuals.";
diff --git a/npc/re/quests/eden/eden_quests.txt b/npc/re/quests/eden/eden_quests.txt
index cebd70b87..f1b54a9e7 100644
--- a/npc/re/quests/eden/eden_quests.txt
+++ b/npc/re/quests/eden/eden_quests.txt
@@ -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(set .@i,0; .@i<4; set .@i,.@i+1)
if (countitem(.@check[.@i]) < 1) {
mes "[Toren]";
mes "Where is the Paradise "+.@item$[.@i]+" I gave you?";
diff --git a/npc/re/quests/quests_dicastes.txt b/npc/re/quests/quests_dicastes.txt
index 7afe04039..d17b63267 100644
--- a/npc/re/quests/quests_dicastes.txt
+++ b/npc/re/quests/quests_dicastes.txt
@@ -4,6 +4,8 @@
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
//= 2.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Quest NPCs related to Dewata:
@@ -50,13 +52,13 @@ manuk,321,182,5 script Entrance Manager#ep133 4_MAN_GALTUN,{
if(select("Yes.:No.") == 2) {
mes "[Entrance Manager]";
mes "Then use the tunnel next time.";
- close;
+ close;
}
mes "[Entrance Manager]";
mes "Be careful.";
close2;
- warp "dic_dun01",33,212;
- end;
+ warp "dic_dun01",33,212;
+ end;
}
mes "[Entrance Manager]";
mes "Sorry.";
@@ -122,12 +124,12 @@ dic_dun01,266,113,5 script Curious Sapha#ep13_3_ 4_MAN_BENKUNI,{
if (.@deal == 0) {
mes "[Curious Sapha]";
mes "You changed your mind?";
- close;
+ close;
}
if (Zeny < .@deal) {
mes "[Curious Sapha]";
mes "You don't have enough money.";
- close;
+ close;
}
mes "[Curious Sapha]";
mes "Will you buy "+.@input+"?";
@@ -352,7 +354,7 @@ OnEnable:
mes "¡ð¡ú¢± ¡ô ¡ò¡õ¡ú ¡õ..!";
next;
mes "- Cannot communicate with him. -";
- close;
+ close;
}
if (ep13_3_invite < 4) {
mes "[Capital City Guard]";
@@ -424,11 +426,11 @@ dic_in01,254,119,0 script Item Storage#01 CLEAR_NPC,{
if(select("Use safe:No way.")==2) {
mes "["+strcharinfo(0)+"]";
mes "I will use it later.";
- close;
+ close;
}
if (Zeny < 500) {
mes "Not enough Zeny.";
- close;
+ close;
}
Zeny -= 500;
close2;
@@ -454,17 +456,17 @@ 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;
- mes getarg(3);
+ mes getarg(3);
}
else if (getarg(0) == 1) {
if (checkquest(getarg(1)) == -1) return;
if (countitem(getarg(3)) < getarg(4)) {
mes "It looks like you are short on the amount.";
- close;
+ close;
}
- mes getarg(5);
+ mes getarg(5);
mes getarg(6,"");
- delitem getarg(3), getarg(4);
+ delitem getarg(3), getarg(4);
}
else if (getarg(0) == 2) {
for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) {
@@ -1042,7 +1044,7 @@ dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
} else if (.@doc > 60 && .@doc <= 70) {
mes "You suddenly feel nauseated. You feel like this won't go away any time soon. Finding the documents will have to wait.";
setquest 12165;
- close;
+ close;
}
else if (.@doc == 1) eldicastes_dp(12209,"Horn","Hard wedge-like horn from some insects. Doesn't have much practical use.","");
else if (.@doc == 2) eldicastes_dp(12195,"Horrendous Mouth","Tooth from a dead body.","Important material for research on time of death and health conditions. Useful in discovering human ecology.");
@@ -1107,7 +1109,7 @@ dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
mes "You've found a document about ^990099"+getarg(1)+"^000000. Check for details in the ^800080Quest Window^000000.";
specialeffect2 EF_STEAL;
setquest getarg(0);
- close;
+ close;
}
}
dic_in01,31,192,0 duplicate(Document Package#main) Document Package#0001 CLEAR_NPC
@@ -1804,7 +1806,7 @@ OnTouch:
mes "Just a moment.";
}
close2;
- warp "dic_in01",155,188;
+ warp "dic_in01",155,188;
}
end;
}
@@ -3691,7 +3693,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "What will it be?";
mes "I have Tropical Sograt and Vermilion on the Beach flown in from Morroc.";
mes "A bit on the expensive side though.";
- next;
+ next;
if (select("Tropical Sorgrat - 2000z:Vermilion on the Beach - 2000z:Anything else?") == 3) {
mes "[Shay]";
mes "Here.. ";
@@ -3837,7 +3839,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "What is it now?";
mes "Any luck?";
next;
- setarray .@ward$,
+ setarray .@ward$,
"7188","The Knits at the square are interested in Ahat.",
"7189","I heard from Pioms that most of the Saphas are interested in the minister.",
"7190","Galtens are interested in the Cat Merchant for their cat ears.";
@@ -4839,7 +4841,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
set ep13_3_secret, 11;
getitem .@item[.@type], 1;
erasequest 7193;
- setquest 7194;
+ setquest 7194;
donpcevent strnpcinfo(0)+"::OnDisable";
next;
mes "[" + strcharinfo(0) + "]";
@@ -4900,7 +4902,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
}
if (.@npc$[.@type] == "Rock Pile") mes "You collect another stone fragment that emits a strange magical force.";
else if (.@npc$[.@type] == "Dirt Pile") mes "You collect another clotted bloodstain from a dirt pile.";
- else if (.@npc$[.@type] == "Split Earth") mes "You collect another piece of skin frozen in the frost in the crack of the split earth.";
+ else if (.@npc$[.@type] == "Split Earth") mes "You collect another piece of skin frozen in the frost in the crack of the split earth.";
getitem .@item[.@type], 1;
donpcevent strnpcinfo(0)+"::OnDisable";
close;
@@ -4977,7 +4979,7 @@ dic_fild02,207,94,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef6 CLEAR_NPC
dic_fild02,230,71,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef7 CLEAR_NPC
dic_fild02,188,50,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef8 CLEAR_NPC
dic_fild02,248,36,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef9 CLEAR_NPC
-dic_fild02,206,115,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef10 CLEAR_NPC
+dic_fild02,206,115,0 duplicate(ep133_crack#main) Dirt Pile#ep133_ef10 CLEAR_NPC
dic_fild02,194,86,0 duplicate(ep133_crack#main) Split Earth#ep133_ef1 CLEAR_NPC
dic_fild02,240,51,0 duplicate(ep133_crack#main) Split Earth#ep133_ef2 CLEAR_NPC
dic_fild02,176,65,0 duplicate(ep133_crack#main) Split Earth#ep133_ef3 CLEAR_NPC
@@ -5037,7 +5039,7 @@ dicastes01,117,262,0 script Frede#13_3 4_MAN_PIOM5,2,2,{
close;
}
mes "[Frede]";
- mes "¢£¡ô¡ñ ¡û";
+ mes "¢£¡ô¡ñ ¡û";
mes "¡ú¡ö¡ø ¢£ ¡ô";
close;
OnTouch:
@@ -6085,7 +6087,7 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
close;
}
mes "[Bouy]";
- mes "¡ø¡ö¡þ ¡ù ¡ú¡ð¡ï ¡ø";
+ mes "¡ø¡ö¡þ ¡ù ¡ú¡ð¡ï ¡ø";
mes "¡ï¡ú¡ö ¡ù";
mes "¡õ¡ï¡õ ¡ò";
close;
@@ -6099,7 +6101,7 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
mes "[Maha]";
mes "But I do think the Sapha race is overly kind, almost unnaturally.";
mes "Guess it'll be fine.";
- close;
+ close;
}
mes "[Ben]";
mes "There is nothing strange!";
@@ -6107,7 +6109,7 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
next;
mes "[Ben]";
mes "I can also visit the Sapha if I work well here, can't I?";
- close;
+ close;
}
mes "[Ben]";
mes "Hmm. Hey, Maha,";
@@ -6396,7 +6398,7 @@ function script eldicastes_c {
mes "[Vyhannus]";
mes "Amazing.";
mes "Like with Hound, that ring you humans made...";
- mes "is like a ring of wisdom.";
+ mes "is like a ring of wisdom.";
}
else {
mes "[Hound]";
@@ -6411,7 +6413,7 @@ function script eldicastes_c {
}
mes "[Vyhannus]";
mes "Shall we skip to the point?";
- mes "The reason why I am here...";
+ mes "The reason why I am here...";
next;
mes "[Someone's voice]";
mes "Excuse me, hold on a second.";
@@ -6510,7 +6512,7 @@ mid_campin,168,128,3 script Sapha from Manuk 4_MAN_JERUTOO,{
mes "You just stand there without";
mes "knowing what he says, so the";
mes "expedition guard next to you starts to talk. -";
- next;
+ next;
callfunc "eldicastes_c",3;
}
else if (ep13_3_invite == 2) {
@@ -6520,7 +6522,7 @@ mid_campin,168,128,3 script Sapha from Manuk 4_MAN_JERUTOO,{
mes "He's name is Galten. He is so quick, you won't notice the weight of his armor.";
next;
callfunc "eldicastes_c",1;
- }
+ }
else if (ep13_3_invite == 3) {
callfunc "eldicastes_c",2;
}
@@ -6531,7 +6533,7 @@ mid_campin,168,128,3 script Sapha from Manuk 4_MAN_JERUTOO,{
mes "The tunnel might be a little scary.";
mes "But I'm sure you will reach the end of it since you are strong.";
close;
- }
+ }
else if (ep13_3_invite == 5) {
mes "[Vyhannus]";
mes "Oh, the tunnel?";
@@ -6544,8 +6546,8 @@ mid_campin,168,128,3 script Sapha from Manuk 4_MAN_JERUTOO,{
next;
mes "[Vyhannus]";
mes "That is it.";
- close;
- }
+ close;
+ }
else if (ep13_3_invite == 6) {
mes "[Vyhannus]";
mes "You received the Light of El Dicastes.";
@@ -6611,10 +6613,10 @@ mid_campin,168,125,3 script Hound#ep133_is06 4_M_MOCASS1,{
}
else if (ep13_3_invite == 2) {
callfunc "eldicastes_c",1;
- }
+ }
else if (ep13_3_invite == 3) {
callfunc "eldicastes_c",2;
- }
+ }
else if (ep13_3_invite == 4) {
mes "[Hound]";
mes "First thing you need to do when you reach Manuk is to meet General Guard Avalanche.";
@@ -6627,7 +6629,7 @@ mid_campin,168,125,3 script Hound#ep133_is06 4_M_MOCASS1,{
mes "[Hound]";
mes "And don't forget what the captain said.";
mes "Inspector Doha is in the next room.";
- close;
+ close;
}
else if (ep13_3_invite > 4) {
mes "[Hound]";
@@ -6658,7 +6660,7 @@ mid_campin,165,127,5 script Hibba Agip#ep133_is07 4_M_REDSWORD,{
close2;
OnInit:
disablenpc strnpcinfo(0);
- end;
+ end;
}
man_in01,315,52,3 script Guard Captain Avalanche 4_MAN_GALTUN,{
@@ -6667,7 +6669,7 @@ man_in01,315,52,3 script Guard Captain Avalanche 4_MAN_GALTUN,{
mes "¢¤¡ð¡ú? ¢£ ¡ù¡ð...";
mes "¡ï¡ò¡Ð ¢¤ ?";
mes "¡ñ¡ï..?";
- close;
+ close;
}
if (ep13_3_invite == 4) {
mes "[Avalanche]";
@@ -7153,12 +7155,12 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes .@n$;
mes "When you are ready,";
mes "Please come back again";
- close;
+ close;
}
if (countitem(.@Items_) < 1) {
mes .@n$;
mes "Then, take the equipment off first.";
- close;
+ close;
}
specialeffect2 EF_OVERTHRUST;
mes .@n$;
@@ -7173,7 +7175,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes .@n$;
mes "But...";
mes "you don't seem to be wearing or even carrying equipment to upgrade on you.";
- close;
+ close;
}
}
if (getd("ep13_3_"+.@v$) == 0) {
@@ -7199,7 +7201,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes .@n$;
mes "Second upgrade step requires ^9900992 Exploit Certifications of Sapha^000000. Do you want to proceed?";
set .@req, 2;
- }
+ }
else if (getd("ep13_3_"+.@v$) < 69) {
mes .@n$;
mes "I'm preparing for the";
@@ -7261,7 +7263,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes .@n$;
mes "When you are ready,";
mes "Please come back again.";
- close;
+ close;
}
if (countitem(6304) < .@req) {
mes .@n$;
@@ -7332,7 +7334,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
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 .@int[1], 4710; set .@int[2], 4711; set .@int[3], 4712;
set .@agi[1], 4730; set .@agi[2], 4731; set .@agi[3], 4732;
// Enchant attribute is determined by the digit position of variable value (ep13_3_<type>).
@@ -7378,7 +7380,7 @@ dic_fild01,228,159,4 script Jahbong#pa0829 4_M_MERCAT2,{
next;
mes "[Jahbong]";
mes "Come back to me once you have one. I'll give you something good in exchange.";
- close;
+ close;
}
set .@cattalkj,rand(1,9);
if (.@cattalkj == 1) mes "Don't touch my back! I might bite you unconsciously.";
diff --git a/npc/re/quests/quests_lighthalzen.txt b/npc/re/quests/quests_lighthalzen.txt
deleted file mode 100644
index 19ca406d6..000000000
--- a/npc/re/quests/quests_lighthalzen.txt
+++ /dev/null
@@ -1,594 +0,0 @@
-//===== Hercules Script =======================================
-//= Quest NPCs located in Lighthalzen
-//===== By: ==================================================
-//= Ziu, Heris (translation)
-//===== Current Version: =====================================
-//= 1.2
-//===== Description: =========================================
-//= Quests related to Lighthalzen City.
-//===== Additional Comments: =================================
-//= 1.0 Updated to match the new Izlude Map. [Masao]
-//= 1.1 Added Somatology Laboratory F4 quest. [Euphy]
-//= 1.2 Added Izlude duplicates. [Euphy]
-//============================================================
-
-// Renewal split [Daegaladh]
-//============================================================
-izlude,172,73,6 duplicate(Scamp) Scamp#iz 4_M_YURI
-izlude_a,172,73,6 duplicate(Scamp) Scamp#iz_a 4_M_YURI
-izlude_b,172,73,6 duplicate(Scamp) Scamp#iz_b 4_M_YURI
-izlude_c,172,73,6 duplicate(Scamp) Scamp#iz_c 4_M_YURI
-izlude_d,172,73,6 duplicate(Scamp) Scamp#iz_d 4_M_YURI
-
-// Somatology Laboratory F4
-//============================================================
-lighthalzen,303,304,5 script Jerome Jameson#start 4_M_KHMAN,{
- if (lhz_dun04 == 0) {
- mes "[Jerome Jameson]";
- mes "Wow, what a "+((Sex)?"strong man!":"beautiful dame!");
- next;
- mes "[Jerome Jameson]";
- mes ((Sex)?"Sir":"Ma'am")+", please take heed -- as soon";
- mes "as a dangerous rumor aroused about";
- mes "the endangerment of everyone in";
- mes "town, the best thing to do is lock";
- mes "your doors.";
-
- // To do: check BaseLevel requirement.
- if (BaseLevel < 90 || hg_tre < 54) close;
-
- next;
- select("Dangerous rumor?");
- mes "[Jerome Jameson]";
- mes "Strong rumors have been heard from";
- mes "Rekenber Investigation Institute";
- mes "about terrible, secret experiments";
- mes "with human beings!";
- next;
- select("What? Experiments?");
- mes "[Jerome Jameson]";
- mes "Yes. Biological experiments!!";
- mes "Experiments with human beings";
- mes "conducted in the undergrounds of";
- mes "these very slums. Apparently, they";
- mes "have spread the rumors upon being";
- mes "denied of social benefits.";
- next;
- mes "[Jerome Jameson]";
- mes "This rumor cannot go about";
- mes "unhandled. The biological";
- mes "experiments that have been carried";
- mes "out in this place can be real.";
- mes "This really needs to be";
- mes "investigated, and soon!";
- setquest 5109;
- set lhz_dun04,1;
- close;
- }
- mes "[Jerome Jameson]";
- mes "Please investigate the deeper";
- mes "parts of the laboratory. I hope";
- mes "to hear from you soon.";
- close;
-}
-
-// Is this the correct behavior? (limited and conflicting sources)
-// - NPC in lhz_dun04 warps into que_lhz. (?)
-// - lhz_dun03 warps directly to que_lhz. (?)
-function script lhz4enter {
- if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- if (getarg(0) == 0) {
- mes "- Having Jerome Jameson's orders";
- mes "in mind, you hold your breath and";
- mes "descend the flooded flight of";
- mes "stairs. -";
- } else {
- mes "[Researcher]";
- mes "Who are you?";
- mes "................";
- emotion e_omg;
- next;
- mes "The man runs away and you go after him.";
- }
- if (lhz_dun04 > 1) {
- changequest 5110,5109;
- set lhz_dun04,1;
- }
- close2;
- // Check twice because of 'next'.
- if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- donpcevent "#lhz4mes1::OnEnable";
- warp "que_lhz",244,52;
- }
- end;
- }
- mes "Right now there are other people inside. Wait for your turn.";
- close;
-}
-
-lhz_dun03,239,77,0 script #warplhz3lhz4 WARPNPC,1,1,{
-OnTouch:
- if (lhz_dun04 == 0) {
- mes "It doesn't make sense to go down these flooded stairs.";
- close;
- } else if (lhz_dun04 < 6) {
- callfunc "lhz4enter",0;
- end;
- }
- warp "lhz_dun04",244,52;
- end;
-}
-lhz_dun04,245,61,0 warp #warplhz4lhz3 1,1,lhz_dun03,240,74
-
-// Does this portal exist?
-que_lhz,245,61,0 warp #warplhzqlhz3 1,1,lhz_dun03,240,74
-
-que_lhz,244,52,0 script #lhz4mes1 -1,2,2,{
-OnTouch:
- mes "- You find another flight of";
- mes "stairs that is raised and deviates";
- mes "from the flooded path. -";
- // Missing dialogue.
- close2;
- donpcevent "#lhz4mes1::OnDisable";
- end;
-OnInit:
-OnDisable:
- disablenpc "#lhz4mes1";
- end;
-OnEnable:
- enablenpc "#lhz4mes1";
- end;
-}
-
-lhz_dun04,151,276,3 script Researcher#lhz4 4_LGTSCIENCE,{
- if (lhz_dun04 == 0) {
- mes "[Researcher]";
- mes "................";
- close;
- } else if (lhz_dun04 < 6) {
- callfunc "lhz4enter",1;
- end;
- } else if (lhz_dun04 == 6) {
- mes "Think twice before saying that these samples are a reason to shut this place down.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "You're stopping me for doing nothing good? What about the last four men I've created?";
- next;
- mes "[Wolfchev]";
- mes "Hmm. This place will be completely flooded...";
- next;
- mes "[Wolfchev]";
- mes "What is the problem?";
- next;
- mes "[Wolfchev]";
- mes "Hmm... All this burocracy is ruining my laboratory. For God's sake!";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey! Wolfchev!!";
- next;
- mes "[Wolfchev]";
- mes "Oh yes? To please them all! ^FF0080The different specimen^000000 are organically connected to each other.";
- next;
- mes "[Wolfchev]";
- mes "Perhaps the boss of these ^00FF00things^000000...";
- mes "My inability to control my own experiment... Here, are all the ^808000slaves used as decoys^000000 and the laboratory will be shut down.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey, Wolfchev!! This ^00FF00boss^000000 you're talking about. Where is it?";
- next;
- mes "[Wolfchev]";
- mes "...in my laboratory. I awakened it. I tried to use it to destroy them all, but it didn't work... you'll have to do it...";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "How can I get access to your laboratory?";
- next;
- mes "[Wolfchev]";
- mes "Now... One moment!";
- mes "I will help you.";
- next;
- mes "[Wolfchev]";
- mes "Luckily, the boss hasn't awaken sober, though he's still strong and destructive.";
- next;
- mes "[Wolfchev]";
- mes "But it's still dangerous. He wil release his colleagues and this means we don't have much time here.";
- set lhz_dun04,7;
- completequest 5111;
- setquest 5113;
- setquest 5114;
- setquest 5115;
- setquest 5116;
- setquest 5117;
- setquest 5118;
- setquest 5119;
- setquest 5120;
- setquest 5121;
- setquest 5122;
- setquest 5123;
- setquest 5124;
- setquest 5125;
- close;
- } else if (lhz_dun04 == 7) {
- mes "[Wolfchev]";
- mes "Are you going alone?";
- mes "You will need a really good group to bypass the system and defeat the boss.";
- close;
- }
- end;
-}
-
-que_lhz,207,75,3 script Researcher#ins 4_LGTSCIENCE,3,3,{
-OnTouch:
- if (lhz_dun04 == 1) {
- mes "[Researcher]";
- mes "..........";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "You! Are you professor Wolfchev?";
- emotion e_omg,1;
- next;
- mes "[Wolfchev]";
- mes "Many people come here looking for me. But most of them are reluctant to.";
- mes "What do you want?";
- emotion e_gg;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "I've heard rumors about biological experiments.";
- mes "Wolfchev!!";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "These experiments...";
- next;
- mes "[Wolfchev]";
- mes "I think I know what you're gonna say. Are you accusing me of something?";
- mes "I don't want to hear more of that.";
- mes "You better leave.";
- emotion e_gg;
- next;
- mes "[Wolfchev]";
- mes "They seem to have cried for a long time... I'm busy, excuse me!";
- next;
- mes "From Wolfchev's eyes tears welled and he started laughing before running away.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Hey! Wolfchev there...";
- emotion e_omg,1;
- changequest 5109,5110;
- set lhz_dun04,2;
- close2;
- warp "que_lhz",96,136;
- end;
- }
- mes "[Researcher]";
- mes "..........";
- close;
-}
-
-que_lhz,94,119,3 script Researcher#ins2 4_LGTSCIENCE,{
- if (lhz_dun04 == 2) {
- mes "[Wolfchev]";
- mes "Hehehe. You are really persistent. What do you want from someone like me?";
- emotion e_swt2;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Wolfchev... You've admitted it's dangerous already. And all these investigations...";
- next;
- mes "[Wolfchev]";
- mes "You're right...hehe.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Your research is too dangerous. Do you think everybody wants it to keep going?";
- next;
- mes "[Wolfchev]";
- mes "Everyone wants to be strong and dominate the others. Have their obedience, respect and attention. Don't you want that? Hehe.";
- emotion e_gg;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "... ... ...";
- next;
- mes "[Wolfchev]";
- mes "With such a dangerous life, avoiding being damaged... Don't you see it?. Hehe.";
- next;
- mes "Again, Wolfchev hastily escapes.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Oh! He's far... and...";
- set lhz_dun04,3;
- close2;
- warp "que_lhz",148,215;
- end;
- }
- mes "[Researcher]";
- mes "..........";
- close;
-}
-que_lhz,147,224,3 script Researcher#ins3 4_LGTSCIENCE,{
- if (lhz_dun04 == 4 || mobcount("que_lhz","#controllhz4::OnMyMobDead") > 0) {
- mes "[Wolfchev]";
- mes "Wolfchev is freaking out. He is out of his mind.";
- emotion e_turn;
- close;
- } else if (lhz_dun04 == 3) {
- mes "[Wolfchev]";
- mes "You really are a bothersome little";
- mes "tick, aren't you? Isn't that";
- mes "apparent to you at all?";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "... ... ...";
- emotion e_dots,1;
- next;
- mes "Wolfchev didn't want to talk to you anymore, so while laughing he pressed a button on his hand. Then he went mad.";
- specialeffect EF_SIGHTRASHER;
- next;
- mes "[Wolfchev]";
- mes "Unfortunately to you, I will beat you here.";
- donpcevent "#controllhz4::OnEnable";
- next;
- mes "[Wolfchev]";
- mes "You're such a fool.";
- emotion e_gasp;
- next;
- mes "[Wolfchev]";
- mes "Look at all these experimental bodies you'll have to deal and see how good they are.";
- next;
- donpcevent "#controllhz4::OnEnable2";
- progressbar "ffff00",6;
- set lhz_dun04,4;
- next;
- mes "[Wolfchev]";
- mes "NO!! ...Look what you did!! You";
- mes "wreckless madman!!!";
- emotion e_omg;
- next;
- mes "[Wolfchev]";
- mes "Go back!";
- next;
- mes "First, let's destroy all these experiments!";
- close;
- } else if (lhz_dun04 == 5) {
- mes "Wolfchev is freaking out. He is out of his mind.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "*Slaps Face* Hey, snap out of it!";
- mes "We've destroyed them!";
- specialeffect EF_STUNATTACK;
- sleep2 1000;
- specialeffect EF_STUNATTACK;
- next;
- mes "["+strcharinfo(0)+"]";
- mes "Let's get out of here first! Is there a place we can go?";
- specialeffect EF_DARKBREATH;
- emotion e_no,1;
- next;
- mes "[Wolfchev]";
- mes "This. My laboratory... My laboratory...";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "The laboratory? Where am I indeed?";
- next;
- mes "[Wolfchev]";
- mes "Back to the beggining... here's when...";
- next;
- mes "- Wolfchev weakly points to the 12 o' clock direction. -";
- next;
- mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
- changequest 5110,5111;
- set lhz_dun04,6;
- donpcevent "#controllhz4d::OnEnable";
- close;
- } else if (lhz_dun04 == 6) {
- mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
- close;
- }
- end;
-}
-
-- script Awake Specimen#lhz -1,{
- end;
-OnInit:
-OnDisable:
- hideonnpc strnpcinfo(0);
- end;
-OnEnable:
- hideoffnpc strnpcinfo(0);
- end;
-OnEffect1:
- specialeffect EF_SUI_EXPLOSION;
- end;
-OnEffect2:
- specialeffect EF_BEGINASURA;
- end;
-OnEffect3:
- specialeffect EF_FLASHER;
- end;
-}
-que_lhz,148,231,0 duplicate(Awake Specimen#lhz) Awake Specimen#0 QUEST_CHEN
-que_lhz,140,231,1 duplicate(Awake Specimen#lhz) Awake Specimen#1 QUEST_CHEN
-que_lhz,140,224,2 duplicate(Awake Specimen#lhz) Awake Specimen#2 QUEST_CHEN
-que_lhz,140,216,3 duplicate(Awake Specimen#lhz) Awake Specimen#3 QUEST_CHEN
-que_lhz,147,216,4 duplicate(Awake Specimen#lhz) Awake Specimen#4 QUEST_CHEN
-que_lhz,155,216,5 duplicate(Awake Specimen#lhz) Awake Specimen#5 QUEST_CHEN
-que_lhz,155,224,6 duplicate(Awake Specimen#lhz) Awake Specimen#6 QUEST_CHEN
-que_lhz,155,231,7 duplicate(Awake Specimen#lhz) Awake Specimen#7 QUEST_CHEN
-
-- script #controllhz4 -1,{
-OnInit:
- disablenpc "#controllhz4";
- end;
-OnEnable:
- enablenpc "#controllhz4";
- donpcevent "Awake Specimen#0::OnEnable";
- donpcevent "Awake Specimen#1::OnEnable";
- donpcevent "Awake Specimen#2::OnEnable";
- donpcevent "Awake Specimen#3::OnEnable";
- donpcevent "Awake Specimen#4::OnEnable";
- donpcevent "Awake Specimen#5::OnEnable";
- donpcevent "Awake Specimen#6::OnEnable";
- donpcevent "Awake Specimen#7::OnEnable";
- end;
-OnEnable2:
- initnpctimer;
- end;
-OnTimer1000:
- donpcevent "Awake Specimen#0::OnEffect1";
- end;
-OnTimer2000:
- donpcevent "Awake Specimen#0::OnEffect2";
- donpcevent "Awake Specimen#7::OnEffect1";
- end;
-OnTimer3000:
- donpcevent "Awake Specimen#7::OnEffect2";
- donpcevent "Awake Specimen#6::OnEffect1";
- end;
-OnTimer4000:
- donpcevent "Awake Specimen#6::OnEffect2";
- donpcevent "Awake Specimen#5::OnEffect1";
- end;
-OnTimer5000:
- donpcevent "Awake Specimen#5::OnEffect2";
- donpcevent "Awake Specimen#4::OnEffect1";
- end;
-OnTimer6000:
- donpcevent "Awake Specimen#4::OnEffect2";
- donpcevent "Awake Specimen#3::OnEffect1";
- end;
-OnTimer7000:
- donpcevent "Awake Specimen#3::OnEffect2";
- donpcevent "Awake Specimen#2::OnEffect1";
- end;
-OnTimer8000:
- donpcevent "Awake Specimen#2::OnEffect2";
- donpcevent "Awake Specimen#1::OnEffect1";
- end;
-OnTimer9000:
- donpcevent "Awake Specimen#1::OnEffect2";
- end;
-OnTimer11000:
- donpcevent "Awake Specimen#0::OnEffect3";
- donpcevent "Awake Specimen#1::OnEffect3";
- donpcevent "Awake Specimen#2::OnEffect3";
- donpcevent "Awake Specimen#3::OnEffect3";
- donpcevent "Awake Specimen#4::OnEffect3";
- donpcevent "Awake Specimen#5::OnEffect3";
- donpcevent "Awake Specimen#6::OnEffect3";
- donpcevent "Awake Specimen#7::OnEffect3";
- end;
-OnTimer14000:
- donpcevent "Awake Specimen#0::OnDisable";
- donpcevent "Awake Specimen#1::OnDisable";
- donpcevent "Awake Specimen#2::OnDisable";
- donpcevent "Awake Specimen#3::OnDisable";
- donpcevent "Awake Specimen#4::OnDisable";
- donpcevent "Awake Specimen#5::OnDisable";
- donpcevent "Awake Specimen#6::OnDisable";
- donpcevent "Awake Specimen#7::OnDisable";
- end;
-OnTimer16000:
- monster "que_lhz",148,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",140,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",147,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- monster "que_lhz",155,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
- donpcevent "#controllhz4b::OnEnable";
- stopnpctimer;
- end;
-OnMyMobDead:
- if (mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
- donpcevent "#controllhz4b::OnStop";
- donpcevent "#controllhz4c::OnEnable";
- disablenpc "#controllhz4";
- end;
- }
- end;
-}
-
-- script #controllhz4b -1,{
-OnInit:
-OnDisable:
- disablenpc "#controllhz4b";
- end;
-OnEnable:
- enablenpc "#controllhz4b";
- initnpctimer;
- end;
-OnStop:
- stopnpctimer;
- donpcevent "#controllhz4b::OnDisable";
- end;
-OnTimer400000:
- killmonster "que_lhz","#controllhz4::OnMyMobDead";
- mapwarp "que_lhz","lighthalzen",263,200;
- disablenpc "#controllhz4";
- disablenpc "#controllhz4b";
- stopnpctimer;
- end;
-}
-
-- script #controllhz4c -1,{
-OnInit:
- disablenpc "#controllhz4c";
- end;
-OnEnable:
- enablenpc "#controllhz4c";
- initnpctimer;
- end;
-OnTimer10000:
- mapannounce "que_lhz","Whisper of a man: Help me... Please... Aaah... I don't want to... Die....",bc_map,0x0080C0;
- donpcevent "#controllhz4d::OnEnable";
- stopnpctimer;
- disablenpc "#controllhz4c";
- end;
-}
-
-que_lhz,147,248,0 script #controllhz4d -1,6,4,{
-OnTouch:
- if (lhz_dun04 == 4) {
- mes "Looks like it's all done.";
- set lhz_dun04,5;
- donpcevent "#controllhz4d::OnDisable";
- close;
- } else if (lhz_dun04 == 6) {
- mes "- Concrete falls from the ceiling";
- mes "due to the weakened structure of";
- mes "the lab and you tumble down the";
- mes "flight of stairs avoiding it. -";
- close2;
- warp "lhz_dun04",148,269;
- donpcevent "#lhz4mes2::OnEnable";
- donpcevent "#controllhz4d::OnDisable";
- end;
- }
- end;
-OnInit:
-OnDisable:
- disablenpc "#controllhz4d";
- end;
-OnEnable:
- enablenpc "#controllhz4d";
- end;
-}
-
-lhz_dun04,148,269,0 script #lhz4mes2 -1,2,2,{
-OnTouch:
- if (lhz_dun04 == 6) {
- heal -Hp/2,0; // To do: check HP value.
- mes "- You awaken injured, hearing the";
- mes "sounds of footsteps all around";
- mes "you... -";
- close2;
- donpcevent "#lhz4mes2::OnDisable";
- end;
- }
- end;
-OnInit:
-OnDisable:
- disablenpc "#lhz4mes2";
- end;
-OnEnable:
- enablenpc "#lhz4mes2";
- end;
-}
diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt
index 5593300ec..0511a1e55 100644
--- a/npc/re/quests/quests_malangdo.txt
+++ b/npc/re/quests/quests_malangdo.txt
@@ -4,6 +4,8 @@
//= Muad_Dib
//===== Current Version: =====================================
//= 1.6
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Quest NPCs related to Malangdo:
diff --git a/npc/re/quests/quests_malaya.txt b/npc/re/quests/quests_malaya.txt
index 150928d49..0c9eb2a82 100644
--- a/npc/re/quests/quests_malaya.txt
+++ b/npc/re/quests/quests_malaya.txt
@@ -3820,7 +3820,7 @@ ma_fild01,158,243,6 script Tribe Blacksmith#malaya 4_M_MALAYA,{
delitem 6499,20; //Ancient_Grudge
delequip .@part;
- getitem .@newItem, 1;
+ getitem .@newItem, 1;
mes "[Bayani]";
mes "Ha ha. Perfect.";
diff --git a/npc/re/quests/quests_mora.txt b/npc/re/quests/quests_mora.txt
index 1d7e9bbd0..a8697058a 100644
--- a/npc/re/quests/quests_mora.txt
+++ b/npc/re/quests/quests_mora.txt
@@ -4,6 +4,8 @@
//= Euphy
//===== Current Version: =====================================
//= 1.1
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= [Official Conversion]
//= Quest NPCs related to Mora:
@@ -3382,26 +3384,26 @@ L_ShowReport:
mes "[Experimental Results]";
mes "*** Researcher - Inffle";
mes "*** Research Assistant - "+strcharinfo(0);
- mes "¡¡";
+ mes " ";
mes "<Research topic>";
mes "*** Bath of Mora Village";
- mes "¡¡";
+ mes " ";
mes "<Aim>";
mes "To investigate the mysterious power of the bath water";
mes "and to find out ways to better utilize";
mes "the water.";
- mes "¡¡";
+ mes " ";
mes "<Methods>";
mes "1. Obtained an unidentified DNA sample.";
mes "Obtained a sample of an unidentified DNA,";
mes "and collected more samples to look further into it.";
- mes "¡¡";
+ mes " ";
mes "2. A comparison analysis on the unidentified DNA";
mes "Concluded that the DNA belongs to";
mes "an unidentified creature living in the bath water.";
mes "combine and result in";
mes "from the swordfish DNA.";
- mes "¡¡";
+ mes " ";
mes "3. Research on the puddles around the village";
mes "From the four puddles around the village,";
mes "confirmed that the testing substances were";
@@ -3409,9 +3411,9 @@ L_ShowReport:
mes "It is thought that the four puddles";
mes "combine and result in";
mes "the mysterious power.";
- mes "¡¡";
+ mes " ";
mes "<Material analysis>";
- mes "*** Temperature ***** 33.5° ";
+ mes "*** Temperature ***** 33.5¡Æ";
mes "*** PH ************ 9.8";
mes "*** Solid residues *** 176";
mes "*** K+ ************ 0,23";
@@ -4182,7 +4184,7 @@ OnTimer20000:
OnTimer30000:
OnTimer40000:
OnTimer50000:
- if (rand(2))
+ if (rand(2))
donpcevent strnpcinfo(0)+"::OnEnable";
end;
OnTimer60000:
diff --git a/npc/re/scripts.conf b/npc/re/scripts.conf
index c271a2b3b..1e5f28ed8 100644
--- a/npc/re/scripts.conf
+++ b/npc/re/scripts.conf
@@ -57,6 +57,7 @@ npc: npc/re/instances/HazyForest.txt
npc: npc/re/instances/MalangdoCulvert.txt
npc: npc/re/instances/OctopusCave.txt
npc: npc/re/instances/OldGlastHeim.txt
+npc: npc/re/instances/WolfchevLaboratory.txt
// ---------------- Kafras & Cool Event Corp. -------------------
npc: npc/re/kafras/kafras.txt
@@ -125,7 +126,6 @@ npc: npc/re/quests/quests_dewata.txt
npc: npc/re/quests/quests_dicastes.txt
npc: npc/re/quests/quests_eclage.txt
npc: npc/re/quests/quests_izlude.txt
-npc: npc/re/quests/quests_lighthalzen.txt
npc: npc/re/quests/quests_malangdo.txt
npc: npc/re/quests/quests_malaya.txt
npc: npc/re/quests/quests_mora.txt
diff --git a/npc/re/scripts_main.conf b/npc/re/scripts_main.conf
index 8ee3c45e5..28f514d19 100644
--- a/npc/re/scripts_main.conf
+++ b/npc/re/scripts_main.conf
@@ -4,7 +4,7 @@
// The idea of this new system is to make scripts more organized
// since the old system was rather messy with all the NPCs in one
// file. Now scripts are organized in to files arraged by type.
-// Custom scripts are now in scripts_custom.conf, all other
+// Custom scripts are now in scripts_custom.conf, all other
// scripts are deemed as 'official'. You should place your NPCs
// in to scripts_custom.conf to follow the trend.
//
diff --git a/npc/re/warps/cities/dicastes.txt b/npc/re/warps/cities/dicastes.txt
index 6ad933aa3..9af35d123 100644
--- a/npc/re/warps/cities/dicastes.txt
+++ b/npc/re/warps/cities/dicastes.txt
@@ -4,12 +4,14 @@
//= Chilly, Muad_Dib
//===== Current Version: =====================================
//= 1.3
+//===== File Encoding ========================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: =========================================
//= Warp Points for El Dicastes
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Added Elevators.
-//= 1.2 Removed a warp. [Joseph]
+//= 1.2 Removed a warp. [Joseph]
//= 1.3 Updated to match official script. [Joseph]
//============================================================
@@ -69,4 +71,4 @@ dic_in01,57,48,0 duplicate(Elevator#main) Elevator#9 CLEAR_NPC
dic_in01,137,46,0 duplicate(Elevator#main) Elevator#10 CLEAR_NPC
dic_in01,222,46,0 duplicate(Elevator#main) Elevator#11 CLEAR_NPC
dic_in01,388,272,0 duplicate(Elevator#main) Elevator#12 CLEAR_NPC
-dic_in01,389,208,0 duplicate(Elevator#main) Elevator#13 CLEAR_NPC \ No newline at end of file
+dic_in01,389,208,0 duplicate(Elevator#main) Elevator#13 CLEAR_NPC
diff --git a/npc/re/warps/cities/rachel.txt b/npc/re/warps/cities/rachel.txt
index 608e7ec2b..9ec33e229 100644
--- a/npc/re/warps/cities/rachel.txt
+++ b/npc/re/warps/cities/rachel.txt
@@ -7,14 +7,14 @@
//===== Description: =========================================
//= Warp Points for Rachel City, shops & other locations
//===== Additional Comments: =================================
-//= 1.0 Added the official warps and commented out the
+//= 1.0 Added the official warps and commented out the
//= "custom duplicates" for future checkout. Special thanks
//= to RockmanEXE who provided all the info. [erKURITA]
//= 1.1 Added warp to Veins Field [Playtester]
//= 1.2 Fully official rachel warps [Playtester]
//= 1.2a Added missing warp (Pope's office entryway -> temple) [L0ne_W0lf]
//= 1.3 Updated Rachel -> Veins Field warp. [L0ne_W0lf]
-//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
+//= 1.4 Disabled rachel33, moved to quest_rachel.txt [L0ne_W0lf]
//= 1.5 Renewal warp adjustments.
//============================================================
diff --git a/npc/re/warps/other/jobquests.txt b/npc/re/warps/other/jobquests.txt
index 39eebc334..cefa5dd5f 100644
--- a/npc/re/warps/other/jobquests.txt
+++ b/npc/re/warps/other/jobquests.txt
@@ -47,4 +47,4 @@ job3_gen01,71,56,0 warp #from2to1gen 1,1,job3_gen01,11,60
//==============================================================================
//Shadow Chaser
//==============================================================================
-job3_sha01,71,19,0 warp shadowc1 1,1,tha_t01,149,224 \ No newline at end of file
+job3_sha01,71,19,0 warp shadowc1 1,1,tha_t01,149,224
diff --git a/npc/re/warps/other/s_workshop.txt b/npc/re/warps/other/s_workshop.txt
index 286c63e45..32895ee74 100644
--- a/npc/re/warps/other/s_workshop.txt
+++ b/npc/re/warps/other/s_workshop.txt
@@ -26,4 +26,4 @@ s_atelier,80,66,0 warp s_atelier0012 1,1,s_atelier,32,56
s_atelier,109,129,0 warp s_atelier0013 1,1,s_atelier,159,125
s_atelier,160,130,0 warp s_atelier0014 1,1,s_atelier,114,129
yuno,278,66,0 warp s_atelier0015 1,1,s_atelier,111,122
-s_atelier,107,122,0 warp s_atelier0016 1,1,yuno,274,66 \ No newline at end of file
+s_atelier,107,122,0 warp s_atelier0016 1,1,yuno,274,66
diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf
index aeae9e22f..3ed22d749 100644
--- a/npc/scripts_custom.conf
+++ b/npc/scripts_custom.conf
@@ -1,7 +1,7 @@
// --------------------------------------------------------------
// - Custom Scripts -
// --------------------------------------------------------------
-// All the custom scripts, remove the '//' to enable...
+// All the custom scripts, remove the '//' to enable...
// Place your scripts here!
//npc: npc/location/to/script.txt
@@ -42,7 +42,7 @@
//npc: npc/custom/etc/monster_arena.txt
// -- Raceway mini-game
//npc: npc/custom/etc/morroc_raceway.txt
-// -- Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server
+// -- Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server
//npc: npc/custom/etc/floating_rates.txt
// -- Wedding script that supports same-sex marriages
//npc: npc/custom/etc/marriage.txt
diff --git a/npc/scripts_guild.conf b/npc/scripts_guild.conf
index 37c1e0f6f..90c066fcb 100644
--- a/npc/scripts_guild.conf
+++ b/npc/scripts_guild.conf
@@ -4,7 +4,7 @@
// ----------------------- War of Emperium ----------------------
// - Guild WoE time settings
-npc: npc/guild/agit_controller.txt
+npc: npc/guild/agit_controller.txt
// - Guild NPC Template file
npc: npc/guild/agit_main.txt
// - Al De Baran
diff --git a/npc/warps/cities/moscovia.txt b/npc/warps/cities/moscovia.txt
index deae51982..c292ccde1 100644
--- a/npc/warps/cities/moscovia.txt
+++ b/npc/warps/cities/moscovia.txt
@@ -13,30 +13,30 @@
//= 1.2 Updated from jA
//============================================================
-// ---[ Mansion ]---
+// ---[ Mansion ]---
moscovia,256,138,0 warp moskwarp1001 1,1,mosk_in,96,61
mosk_in,93,61,0 warp moskwarp1002 1,1,moscovia,255,140
mosk_in,99,126,0 warp moskwarp1003 1,1,mosk_in,21,116
mosk_in,21,113,0 warp moskwarp1004 1,1,mosk_in,99,123
-// ---[ Weapon House ]---
+// ---[ Weapon House ]---
moscovia,185,188,0 warp moskwarp1005 1,1,mosk_in,15,179
mosk_in,12,179,0 warp moskwarp1006 1,1,moscovia,186,191
moscovia,203,171,0 warp moskwarp1007 1,1,mosk_in,86,180
mosk_in,89,180,0 warp moskwarp1008 1,1,moscovia,204,169
-// ---[ Instrument House / Tool Dealer ]---
+// ---[ Instrument House / Tool Dealer ]---
moscovia,223,174,0 warp moskwarp1009 1,1,mosk_in,14,246
mosk_in,11,246,0 warp moskwarp1010 1,1,moscovia,222,176
-// ---[ Inn ]---
+// ---[ Inn ]---
moscovia,229,208,0 warp moskwarp1011 1,1,mosk_in,142,178
mosk_in,142,175,0 warp moskwarp1012 1,1,moscovia,227,207
mosk_in,150,192,0 warp moskwarp1013 1,1,mosk_in,204,188
mosk_in,202,188,0 warp moskwarp1014 1,1,mosk_in,148,192
-// ---[ Mansion ]---
+// ---[ Mansion ]---
moscovia,256,179,0 warp moskwarp1015 1,1,mosk_in,211,114
mosk_in,211,111,0 warp moskwarp1016 1,1,moscovia,253,179
mosk_in,222,128,0 warp moskwarp1017 1,1,mosk_in,288,118
mosk_in,288,116,0 warp moskwarp1018 1,1,mosk_in,222,126
-// ---[ Private House ]---
+// ---[ Private House ]---
moscovia,205,98,0 warp moskwarp1021 1,1,mosk_in,214,255
mosk_in,214,252,0 warp moskwarp1022 1,1,moscovia,203,96
mosk_in,220,273,0 warp moskwarp1023 1,1,mosk_in,152,275
diff --git a/npc/warps/cities/umbala.txt b/npc/warps/cities/umbala.txt
index f86c90d2c..91e006133 100644
--- a/npc/warps/cities/umbala.txt
+++ b/npc/warps/cities/umbala.txt
@@ -1,12 +1,12 @@
//===== Hercules Script ======================================
//= Umbala Warp Script
//===== By: ==================================================
-//= Darkchild (1.0v A)
+//= Darkchild (1.0v A)
//= Athena (1.0v B)
//= 1.1 (Akaru)
//= Nana (1.2)
//===== Current Version: =====================================
-//= 1.2
+//= 1.2
//===== Description: =========================================
//= [Official Conversion]
//= Warp Points for Umbala
diff --git a/npc/warps/dungeons/lhz_dun.txt b/npc/warps/dungeons/lhz_dun.txt
index b0345b447..59277921d 100644
--- a/npc/warps/dungeons/lhz_dun.txt
+++ b/npc/warps/dungeons/lhz_dun.txt
@@ -9,7 +9,7 @@
//===== Additional Comments: =================================
//= 1.1 Added temp restriction by Azazel [Lupus]
//= 1.2 Optimized [Lupus]
-//= and fixed 005 and 005a warps coords, thanks to Justin84
+//= and fixed 005 and 005a warps coords, thanks to Justin84
//= 1.3 Fixed entrance condition check, thanx2Daegaladh [Lupus]
//= 1.4 Added coords of secret dungeon entrance, thanks to Justin84
//= proved with screenshots [Lupus]
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index d04a42cec..217968210 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -486,19 +486,19 @@ REPLACE INTO `item_db_re` VALUES ('1112','Lapier__','Rapier','4','10000','5000',
REPLACE INTO `item_db_re` VALUES ('1113','Scimiter','Scimiter','4','17000','8500','700','85','0','0','1','2','414947','63','2','2','2','14',NULL,'1','2','0','','','');
REPLACE INTO `item_db_re` VALUES ('1114','Scimiter_','Scimiter','4','17000','8500','700','85','0','0','1','3','414947','63','2','2','2','14',NULL,'1','2','0','','','');
REPLACE INTO `item_db_re` VALUES ('1115','Scimiter__','Scimiter','4','17000','8500','700','85','0','0','1','3','414947','63','2','2','2','14',NULL,'1','2','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1116','Katana','Katana','4','2000','1000','1000','60','0','0','1','3','16514','63','2','34','1','4',NULL,'1','48','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1117','Katana_','Katana','4','2000','1000','1000','60','0','0','1','4','16514','63','2','34','1','4',NULL,'1','48','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1118','Katana__','Katana','4','2000','1000','1000','60','0','0','1','0','16514','63','2','34','1','4',NULL,'1','48','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1119','Tsurugi','Tsurugi','4','51000','25500','1200','130','0','0','1','1','414946','63','2','2','3','27',NULL,'1','39','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1120','Tsurugi_','Tsurugi','4','51000','25500','1200','130','0','0','1','2','414946','63','2','2','3','27',NULL,'1','39','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1121','Tsurugi__','Tsurugi','4','51000','25500','1200','130','0','0','1','0','414946','63','2','2','3','27',NULL,'1','40','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1116','Katana','Katana','4','2000','1000','1000','60','0','0','1','3','16514','63','2','34','1','4',NULL,'1','3','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1117','Katana_','Katana','4','2000','1000','1000','60','0','0','1','4','16514','63','2','34','1','4',NULL,'1','3','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1118','Katana__','Katana','4','2000','1000','1000','60','0','0','1','0','16514','63','2','34','1','4',NULL,'1','3','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1119','Tsurugi','Tsurugi','4','51000','25500','1200','130','0','0','1','1','414946','63','2','2','3','27',NULL,'1','2','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1120','Tsurugi_','Tsurugi','4','51000','25500','1200','130','0','0','1','2','414946','63','2','2','3','27',NULL,'1','2','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1121','Tsurugi__','Tsurugi','4','51000','25500','1200','130','0','0','1','0','414946','63','2','2','3','27',NULL,'1','2','0','','','');
REPLACE INTO `item_db_re` VALUES ('1122','Ring_Pommel_Saber','Ring Pommel Saber','4','24000','12000','900','100','0','0','1','2','414946','63','2','2','2','14',NULL,'1','2','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1123','Haedonggum','Haedonggum','4','50000','25000','900','120','0','0','1','1','414946','63','2','2','3','27',NULL,'1','41','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1123','Haedonggum','Haedonggum','4','50000','25000','900','120','0','0','1','1','414946','63','2','2','3','27',NULL,'1','2','0','bonus bInt,3;','','');
REPLACE INTO `item_db_re` VALUES ('1124','Orcish_Sword','Orcish Sword','4','20','10','800','90','0','0','1','0','414947','63','2','2','3','5',NULL,'1','2','0','bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1125','Ring_Pommel_Saber_','Ring Pommel Saber','4','24000','12000','900','100','0','0','1','3','414946','63','2','2','2','14',NULL,'1','40','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1126','Saber','Saber','4','49000','24500','1000','115','0','0','1','2','414946','63','2','2','3','27',NULL,'1','42','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1127','Saber_','Saber','4','49000','24500','1000','115','0','0','1','3','414946','63','2','2','3','27',NULL,'1','42','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1128','Hae_Dong_Gum_','Haedonggum','4','50000','25000','900','120','0','0','1','2','414946','63','2','2','3','27',NULL,'1','41','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1125','Ring_Pommel_Saber_','Ring Pommel Saber','4','24000','12000','900','100','0','0','1','3','414946','63','2','2','2','14',NULL,'1','2','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1126','Saber','Saber','4','49000','24500','1000','115','0','0','1','2','414946','63','2','2','3','27',NULL,'1','2','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1127','Saber_','Saber','4','49000','24500','1000','115','0','0','1','3','414946','63','2','2','3','27',NULL,'1','2','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1128','Hae_Dong_Gum_','Haedonggum','4','50000','25000','900','120','0','0','1','2','414946','63','2','2','3','27',NULL,'1','2','0','bonus bInt,3;','','');
REPLACE INTO `item_db_re` VALUES ('1129','Flamberge','Flamberge','4','60000','30000','1500','150','0','0','1','0','16512','63','2','2','3','27',NULL,'1','2','0','','','');
REPLACE INTO `item_db_re` VALUES ('1130','Nagan','Nagan','4','20','10','500','120','0','0','1','0','414946','63','2','2','4','40',NULL,'1','2','0','skill TF_DOUBLE,5; bonus bDoubleRate,25; bonus2 bAddRace,RC_DemiHuman,5;','','');
REPLACE INTO `item_db_re` VALUES ('1131','Ice_Falchon','Ice Falchion','4','20','10','600','100','0','0','1','0','414946','63','2','2','4','40',NULL,'1','2','0','bonus bAtkEle,Ele_Water; bonus2 bAddEff,Eff_Freeze,500; bonus2 bAddEff2,Eff_Freeze,10; skill MG_COLDBOLT,3; bonus3 bAutoSpell,MG_COLDBOLT,3,100;','','');
@@ -512,9 +512,9 @@ REPLACE INTO `item_db_re` VALUES ('1138','Mysteltainn_','Mysteltainn','4','20','
REPLACE INTO `item_db_re` VALUES ('1139','Tale_Fing_','Tirfing','4','20','10','1000','200','0','0','1','0','414946','63','2','2','4','40',NULL,'1','2','0','bonus bAtkEle,Ele_Dark; bonus2 bHPLossRate,35,10000;','','');
REPLACE INTO `item_db_re` VALUES ('1140','Byeorrun_Gum','Byeollungum','4','20','10','900','150','0','0','1','0','414946','63','2','2','4','40',NULL,'1','2','0','bonus2 bSubRace,RC_NonBoss,-10; bonus2 bAddRace,RC_Boss,50; bonus bAllStats,2;','','');
REPLACE INTO `item_db_re` VALUES ('1141','Immaterial_Sword','Immaterial Sword','4','20','10','900','140','0','0','1','0','414946','63','2','2','4','40',NULL,'1','2','0','bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,30,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1142','Jewel_Sword','Jeweled Sword','4','20','10','2200','104','0','0','1','0','414946','63','2','2','3','68',NULL,'1','43','0','bonus bAddMonsterDropChainItem,ITMCHAIN_GEM;','','');
-REPLACE INTO `item_db_re` VALUES ('1143','Gaia_Sword','Gaia Sword','4','20','10','2500','140','0','0','1','0','414946','63','2','2','3','74',NULL,'1','44','0','bonus bAddMonsterDropChainItem,ITMCHAIN_ORE;','','');
-REPLACE INTO `item_db_re` VALUES ('1144','Sasimi','Sashimi','4','20','10','1400','75','0','0','1','0','414946','63','2','2','3','48',NULL,'1','37','0','bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,RC_Fish,4000;','','');
+REPLACE INTO `item_db_re` VALUES ('1142','Jewel_Sword','Jeweled Sword','4','20','10','2200','104','0','0','1','0','414946','63','2','2','3','68',NULL,'1','2','0','bonus bAddMonsterDropChainItem,ITMCHAIN_GEM;','','');
+REPLACE INTO `item_db_re` VALUES ('1143','Gaia_Sword','Gaia Sword','4','20','10','2500','140','0','0','1','0','414946','63','2','2','3','74',NULL,'1','2','0','bonus bAddMonsterDropChainItem,ITMCHAIN_ORE;','','');
+REPLACE INTO `item_db_re` VALUES ('1144','Sasimi','Sashimi','4','20','10','1400','75','0','0','1','0','414946','63','2','2','3','48',NULL,'1','2','0','bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,RC_Fish,4000;','','');
REPLACE INTO `item_db_re` VALUES ('1145','Holy_Avenger','Holy Avenger','4','450000','225000','1350','125','0','0','1','0','16384','63','2','2','3','75',NULL,'1','2','0','bonus bAtkEle,Ele_Holy; bonus bVit,2;','','');
REPLACE INTO `item_db_re` VALUES ('1146','Town_Sword','Town Sword','4','42000','21000','800','100','0','0','1','1','1','47','2','2','3','30',NULL,'1','2','0','','','');
REPLACE INTO `item_db_re` VALUES ('1147','Town_Sword_','Town Sword','4','42000','21000','800','100','0','0','1','2','1','47','2','2','3','30',NULL,'1','2','0','','','');
@@ -523,15 +523,15 @@ REPLACE INTO `item_db_re` VALUES ('1149','Flamberge_','Flamberge','4','60000','3
REPLACE INTO `item_db_re` VALUES ('1151','Slayer','Slayer','4','15000','7500','1300','90','0','0','1','2','16514','63','2','34','2','18',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1152','Slayer_','Slayer','4','15000','7500','1300','90','0','0','1','3','16514','63','2','34','2','18',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1153','Slayer__','Slayer','4','15000','7500','1300','90','0','0','1','0','16514','63','2','34','2','18',NULL,'1','3','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1154','Bastard_Sword','Bastard Sword','4','22500','11250','1600','115','0','0','1','2','16514','63','2','34','2','18',NULL,'1','49','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1155','Bastard_Sword_','Bastard Sword','4','22500','11250','1600','115','0','0','1','3','16514','63','2','34','2','18',NULL,'1','49','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1154','Bastard_Sword','Bastard Sword','4','22500','11250','1600','115','0','0','1','2','16514','63','2','34','2','18',NULL,'1','3','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1155','Bastard_Sword_','Bastard Sword','4','22500','11250','1600','115','0','0','1','3','16514','63','2','34','2','18',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1156','Bastard_Sword__','Bastard Sword','4','22500','11250','1600','115','0','0','1','0','16514','63','2','34','2','18',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1157','Two_Hand_Sword','Two-handed Sword','4','60000','30000','2200','160','0','0','1','1','16514','63','2','34','3','33',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1158','Two_Hand_Sword_','Two-handed Sword','4','60000','30000','2200','160','0','0','1','2','16514','63','2','34','3','33',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1159','Two_Hand_Sword__','Two-handed Sword','4','60000','30000','2200','160','0','0','1','0','16514','63','2','34','3','33',NULL,'1','3','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1160','Broad_Sword','Broad Sword','4','65000','32500','2000','140','0','0','1','1','16514','63','2','34','3','33',NULL,'1','50','0','bonus bDef,5; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('1160','Broad_Sword','Broad Sword','4','65000','32500','2000','140','0','0','1','1','16514','63','2','34','3','33',NULL,'1','3','0','bonus bDef,5; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1161','Balmung','Balmung','4','20','10','1000','250','0','0','1','0','4294967295','63','2','34','4','48',NULL,'1','3','0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Holy;','','');
-REPLACE INTO `item_db_re` VALUES ('1162','Broad_Sword_','Broad Sword','4','65000','32500','2000','140','0','0','1','2','16514','63','2','34','3','33',NULL,'1','50','0','bonus bDef,5; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('1162','Broad_Sword_','Broad Sword','4','65000','32500','2000','140','0','0','1','2','16514','63','2','34','3','33',NULL,'1','3','0','bonus bDef,5; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1163','Claymore','Claymore','4','74000','37000','2500','180','0','0','1','0','16512','63','2','34','3','33',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('1164','Muramasa','Muramasa','4','20','10','1000','155','0','0','1','0','16514','63','2','34','4','48',NULL,'1','3','0','bonus bCritical,30; bonus bAspdRate,8; bonus2 bAddEff2,Eff_Curse,10;','','');
REPLACE INTO `item_db_re` VALUES ('1165','Masamune','Masamune','4','20','10','1000','200','0','0','1','0','16514','63','2','34','4','48',NULL,'1','3','0','bonus bFlee,30; bonus bStr,-5; bonus bAspd,2; bonus bDefRate,-67; bonus bDef2Rate,-67;','','');
@@ -554,7 +554,7 @@ REPLACE INTO `item_db_re` VALUES ('1181','Tae_Goo_Lyeon','Tae Goo Lyeon','4','20
REPLACE INTO `item_db_re` VALUES ('1182','Bloody_Eater','Bloody Eater','4','20','10','1200','200','0','0','1','2','16514','58','2','34','4','50',NULL,'1','3','0','bonus bAtkEle,Ele_Ghost; autobonus \"{ bonus bCritical,100; bonus bBaseAtk,50; }\",1,5000,0,\"{ specialeffect2 EF_FIRESPLASHHIT; }\"; bonus bHPGainValue,100;','','');
REPLACE INTO `item_db_re` VALUES ('1183','BF_Two_Handed_Sword1','Brave Assaulter\'s Katzbalger','4','20','10','0','200','0','0','1','0','16514','63','2','34','3','80',NULL,'1','3','0','bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
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','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','51','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 ('1185','Violet_Fear','Violet Fear','4','20','10','2200','275','0','0','1','2','16514','58','2','34','4','80',NULL,'1','3','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','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','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 ('1188','Veteran_Sword','Veteran Sword','4','10000','5000','2000','180','0','0','1','1','16514','63','2','34','4','80',NULL,'1','3','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;','','');
@@ -575,21 +575,21 @@ REPLACE INTO `item_db_re` VALUES ('1203','Knife__','Knife','4','50','25','400','
REPLACE INTO `item_db_re` VALUES ('1204','Cutter','Cutter','4','1250','625','500','30','0','0','1','3','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1205','Cutter_','Cutter','4','1250','625','500','30','0','0','1','4','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1206','Cutter__','Cutter','4','1250','625','500','30','0','0','1','0','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1207','Main_Gauche','Main Gauche','4','2400','1200','600','43','0','0','1','3','579821295','63','2','2','1','0',NULL,'1','31','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1208','Main_Gauche_','Main Gauche','4','2400','1200','600','43','0','0','1','4','579821295','63','2','2','1','0',NULL,'1','31','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1209','Main_Gauche__','Main Gauche','4','2400','1200','600','43','0','0','1','0','579821295','63','2','2','1','0',NULL,'1','31','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1207','Main_Gauche','Main Gauche','4','2400','1200','600','43','0','0','1','3','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1208','Main_Gauche_','Main Gauche','4','2400','1200','600','43','0','0','1','4','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1209','Main_Gauche__','Main Gauche','4','2400','1200','600','43','0','0','1','0','579821295','63','2','2','1','0',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1210','Dirk','Dirk','4','8500','4250','500','59','0','0','1','2','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1211','Dirk_','Dirk','4','8500','4250','500','59','0','0','1','3','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1212','Dirk__','Dirk','4','8500','4250','500','59','0','0','1','0','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1213','Dagger','Dagger','4','14000','7000','600','73','0','0','1','2','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1214','Dagger_','Dagger','4','14000','7000','600','73','0','0','1','3','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1215','Dagger__','Dagger','4','14000','7000','600','73','0','0','1','0','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1216','Stiletto','Stiletto','4','19500','9750','700','87','0','0','1','2','579821295','63','2','2','2','12',NULL,'1','32','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1217','Stiletto_','Stiletto','4','19500','9750','700','87','0','0','1','3','579821295','63','2','2','2','12',NULL,'1','32','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1218','Stiletto__','Stiletto','4','19500','9750','700','87','0','0','1','0','579821295','63','2','2','2','12',NULL,'1','32','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1219','Gladius','Gladius','4','43000','21500','700','105','0','0','1','2','579821294','63','2','2','3','24',NULL,'1','33','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1220','Gladius_','Gladius','4','43000','21500','700','105','0','0','1','3','579821294','63','2','2','3','24',NULL,'1','33','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1221','Gladius__','Gladius','4','43000','21500','700','105','0','0','1','0','579821294','63','2','2','3','24',NULL,'1','33','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1216','Stiletto','Stiletto','4','19500','9750','700','87','0','0','1','2','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1217','Stiletto_','Stiletto','4','19500','9750','700','87','0','0','1','3','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1218','Stiletto__','Stiletto','4','19500','9750','700','87','0','0','1','0','579821295','63','2','2','2','12',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1219','Gladius','Gladius','4','43000','21500','700','105','0','0','1','2','579821294','63','2','2','3','24',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1220','Gladius_','Gladius','4','43000','21500','700','105','0','0','1','3','579821294','63','2','2','3','24',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1221','Gladius__','Gladius','4','43000','21500','700','105','0','0','1','0','579821294','63','2','2','3','24',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1222','Damascus','Damascus','4','49000','24500','800','118','0','0','1','1','579821294','63','2','2','3','24',NULL,'1','1','0','bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1223','Forturn_Sword','Fortune Sword','4','20','10','500','90','0','0','1','0','579821294','63','2','2','4','24',NULL,'1','1','0','bonus bLuk,5; bonus bFlee2,20;','','');
REPLACE INTO `item_db_re` VALUES ('1224','Sword_Breaker','Swordbreaker','4','20','10','1000','70','0','0','1','0','579821294','63','2','2','4','36',NULL,'1','1','0','bonus bBreakWeaponRate,500;','','');
@@ -606,12 +606,12 @@ REPLACE INTO `item_db_re` VALUES ('1234','Moonlight_Sword','Moonlight Dagger','4
REPLACE INTO `item_db_re` VALUES ('1235','Azoth','Azoth','4','20','10','700','110','0','0','1','0','262144','63','2','2','4','36',NULL,'1','1','0','bonus bClassChange,300;','','');
REPLACE INTO `item_db_re` VALUES ('1236','Sucsamad','Sucsamad','4','20','10','800','140','0','0','1','0','579821294','63','2','2','4','36',NULL,'1','1','0','bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Wind,10; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1237','Grimtooth_','Grimtooth','4','20','10','800','180','0','0','1','0','579821294','63','2','2','4','36',NULL,'1','1','0','bonus bFlee,10; bonus bFlee2,5; bonus bDefRate,-50; bonus bDef2Rate,-50;','','');
-REPLACE INTO `item_db_re` VALUES ('1238','Zeny_Knife','Zeny Knife','4','20','10','1200','64','0','0','1','0','579821294','63','2','2','3','70',NULL,'1','34','0','bonus2 bGetZenyNum,100,40;','','');
-REPLACE INTO `item_db_re` VALUES ('1239','Poison_Knife','Poison Knife','4','20','10','800','64','0','0','1','0','579821294','63','2','2','3','65',NULL,'1','35','0','bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,3000;','','');
-REPLACE INTO `item_db_re` VALUES ('1240','Princess_Knife','Princess Knife','4','20','10','400','84','0','0','1','0','579821294','63','2','2','4','0',NULL,'1','36','0','bonus bAllStats,1;','','');
+REPLACE INTO `item_db_re` VALUES ('1238','Zeny_Knife','Zeny Knife','4','20','10','1200','64','0','0','1','0','579821294','63','2','2','3','70',NULL,'1','1','0','bonus2 bGetZenyNum,100,40;','','');
+REPLACE INTO `item_db_re` VALUES ('1239','Poison_Knife','Poison Knife','4','20','10','800','64','0','0','1','0','579821294','63','2','2','3','65',NULL,'1','1','0','bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,3000;','','');
+REPLACE INTO `item_db_re` VALUES ('1240','Princess_Knife','Princess Knife','4','20','10','400','84','0','0','1','0','579821294','63','2','2','4','0',NULL,'1','1','0','bonus bAllStats,1;','','');
REPLACE INTO `item_db_re` VALUES ('1241','Cursed_Dagger','Cursed Dagger','4','80000','40000','400','55','0','0','1','0','8454660','63','2','2','4','85',NULL,'1','1','0','bonus2 bAddEff,Eff_Curse,5000;','','');
REPLACE INTO `item_db_re` VALUES ('1242','Counter_Dagger','Dagger of Counter','4','120000','60000','550','140','0','0','1','0','8454660','63','2','2','4','55',NULL,'1','1','0','bonus bCritical,90;','','');
-REPLACE INTO `item_db_re` VALUES ('1243','Novice_Knife','Novice Main-Gauche','4','1','0','1','45','0','0','1','0','1','47','2','2','1','0',NULL,'0','31','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1243','Novice_Knife','Novice Main-Gauche','4','1','0','1','45','0','0','1','0','1','47','2','2','1','0',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1244','Holy_Dagger','Holy Dagger','4','20','10','800','100','0','0','1','0','570560576','63','2','2','4','55',NULL,'1','1','0','bonus bAtkEle,Ele_Holy; bonus bDex,1;','','');
REPLACE INTO `item_db_re` VALUES ('1245','Cinquedea','Cinquedea','4','40000','20000','700','110','0','0','1','1','1','47','2','2','3','30',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1246','Cinquedea_','Cinquedea','4','40000','20000','700','110','0','0','1','2','1','47','2','2','3','30',NULL,'1','1','0','','','');
@@ -687,26 +687,26 @@ REPLACE INTO `item_db_re` VALUES ('1318','Dofle_Axe','Deflation Axe','4','50000'
REPLACE INTO `item_db_re` VALUES ('1351','Battle_Axe','Battle Axe','4','5400','2700','1500','80','0','0','1','3','279714','63','2','34','1','3',NULL,'1','7','0','','','');
REPLACE INTO `item_db_re` VALUES ('1352','Battle_Axe_','Battle Axe','4','5400','2700','1500','80','0','0','1','4','279714','63','2','34','1','3',NULL,'1','7','0','','','');
REPLACE INTO `item_db_re` VALUES ('1353','Battle_Axe__','Battle Axe','4','5400','2700','1500','80','0','0','1','0','279714','63','2','34','1','3',NULL,'1','7','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1354','Hammer','Hammer','4','15500','7750','2000','120','0','0','1','2','279714','63','2','34','2','16',NULL,'1','58','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1355','Hammer_','Hammer','4','15500','7750','2000','120','0','0','1','3','279714','63','2','34','2','16',NULL,'1','58','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1356','Hammer__','Hammer','4','15500','7750','2000','120','0','0','1','0','279714','63','2','34','2','16',NULL,'1','58','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1357','Buster','Buster','4','34000','17000','2200','155','0','0','1','1','279714','63','2','34','3','30',NULL,'1','59','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1358','Buster_','Buster','4','34000','17000','2200','155','0','0','1','2','279714','63','2','34','3','30',NULL,'1','59','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1359','Buster__','Buster','4','34000','17000','2200','155','0','0','1','0','279714','63','2','34','3','30',NULL,'1','59','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1354','Hammer','Hammer','4','15500','7750','2000','120','0','0','1','2','279714','63','2','34','2','16',NULL,'1','7','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1355','Hammer_','Hammer','4','15500','7750','2000','120','0','0','1','3','279714','63','2','34','2','16',NULL,'1','7','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1356','Hammer__','Hammer','4','15500','7750','2000','120','0','0','1','0','279714','63','2','34','2','16',NULL,'1','7','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1357','Buster','Buster','4','34000','17000','2200','155','0','0','1','1','279714','63','2','34','3','30',NULL,'1','7','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1358','Buster_','Buster','4','34000','17000','2200','155','0','0','1','2','279714','63','2','34','3','30',NULL,'1','7','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1359','Buster__','Buster','4','34000','17000','2200','155','0','0','1','0','279714','63','2','34','3','30',NULL,'1','7','0','','','');
REPLACE INTO `item_db_re` VALUES ('1360','Two_Handed_Axe','Two-handed Axe','4','55000','27500','2500','185','0','0','1','1','279714','63','2','34','3','30',NULL,'1','7','0','','','');
REPLACE INTO `item_db_re` VALUES ('1361','Two_Handed_Axe_','Two-handed Axe','4','55000','27500','2500','185','0','0','1','2','279714','63','2','34','3','30',NULL,'1','7','0','','','');
REPLACE INTO `item_db_re` VALUES ('1362','Two_Handed_Axe__','Two-handed Axe','4','55000','27500','2500','185','0','0','1','0','279714','63','2','34','3','30',NULL,'1','7','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1363','Brood_Axe','Bloody Axe','4','20','10','4000','170','0','0','1','0','279714','63','2','34','4','44',NULL,'1','60','0','bonus bStr,10; bonus bSpeedRate,25;','','');
+REPLACE INTO `item_db_re` VALUES ('1363','Brood_Axe','Bloody Axe','4','20','10','4000','170','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus bStr,10; bonus bSpeedRate,25;','','');
REPLACE INTO `item_db_re` VALUES ('1364','Great_Axe','Great Axe','4','20','10','1800','187','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus2 bAddSkillBlow,MC_MAMMONITE,5; bonus2 bAddEff,Eff_Stun,1500;','','');
REPLACE INTO `item_db_re` VALUES ('1365','Sabbath','Sabbath','4','20','10','2300','120','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus bAtkEle,Ele_Dark; bonus2 bWeaponComaRace,RC_Demon,50; bonus2 bCriticalAddRace,RC_Undead,50;','','');
-REPLACE INTO `item_db_re` VALUES ('1366','Right_Epsilon','Light Epsilon','4','20','10','2300','180','0','0','1','0','279714','63','2','34','4','44',NULL,'1','61','0','bonus bAtkEle,Ele_Holy; skill AL_HEAL,3; bonus2 bAddRace,RC_Demon,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1366','Right_Epsilon','Light Epsilon','4','20','10','2300','180','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus bAtkEle,Ele_Holy; skill AL_HEAL,3; bonus2 bAddRace,RC_Demon,3;','','');
REPLACE INTO `item_db_re` VALUES ('1367','Slaughter','Slaughter','4','20','10','2500','120','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus bAtkEle,Ele_Earth; bonus bIgnoreDefRace,RC_Brute; bonus2 bWeaponComaRace,RC_Brute,40;','','');
REPLACE INTO `item_db_re` VALUES ('1368','Tomahawk','Tomahawk','4','20','10','2500','165','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus bAtkEle,Ele_Wind; skill ITM_TOMAHAWK,1;','','');
REPLACE INTO `item_db_re` VALUES ('1369','Guillotine','Guillotine','4','20','10','3000','215','0','0','1','0','279714','63','2','34','4','44',NULL,'1','7','0','bonus2 bWeaponComaRace,RC_DemiHuman,30; bonus2 bSPGainRaceAttack,RC_DemiHuman,2; bonus2 bSPGainRace,RC_DemiHuman,20;','','');
REPLACE INTO `item_db_re` VALUES ('1370','Doom_Slayer','Doom Slayer','4','20','10','6000','10','0','0','1','0','279714','63','2','34','4','80',NULL,'1','7','0','bonus bAspdRate,-40; bonus bUseSPrate,100; if(readparam(bStr)>=95) { bonus bBaseAtk,340; bonus2 bAddEff,Eff_Stun,3000; bonus bBreakArmorRate,500; }','','');
REPLACE INTO `item_db_re` VALUES ('1371','Doom_Slayer_','Doom Slayer','4','20','10','6000','10','0','0','1','1','279714','63','2','34','4','80',NULL,'1','7','0','bonus bAspdRate,-40; bonus bUseSPrate,100; if(readparam(bStr)>=95) { bonus bBaseAtk,340; bonus2 bAddEff,Eff_Stun,3000; bonus bBreakArmorRate,500; }','','');
-REPLACE INTO `item_db_re` VALUES ('1372','Right_Epsilon_C','Rental Light Epsilon','4','1','0','0','229','0','0','1','0','279714','63','2','34','4','0',NULL,'0','61','0','bonus bAtkEle,Ele_Holy; skill AL_HEAL,3; bonus2 bAddRace,RC_Demon,3; bonus bStr,10; bonus bSpeedRate,25;','','');
-REPLACE INTO `item_db_re` VALUES ('1373','Brood_Axe_C','Refined Bloody Axe','4','2','1','0','205','0','0','1','0','279714','63','2','34','4','0',NULL,'0','60','0','bonus bStr,20; bonus bSpeedRate,25; bonus bAspdRate,5;','','');
+REPLACE INTO `item_db_re` VALUES ('1372','Right_Epsilon_C','Rental Light Epsilon','4','1','0','0','229','0','0','1','0','279714','63','2','34','4','0',NULL,'0','7','0','bonus bAtkEle,Ele_Holy; skill AL_HEAL,3; bonus2 bAddRace,RC_Demon,3; bonus bStr,10; bonus bSpeedRate,25;','','');
+REPLACE INTO `item_db_re` VALUES ('1373','Brood_Axe_C','Refined Bloody Axe','4','2','1','0','205','0','0','1','0','279714','63','2','34','4','0',NULL,'0','7','0','bonus bStr,20; bonus bSpeedRate,25; bonus bAspdRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('1374','Tomahawk_C','Tomahawk','4','2','1','0','200','0','0','1','0','279714','63','2','34','4','0',NULL,'0','7','0','bonus bAtkEle,Ele_Wind; skill ITM_TOMAHAWK,1;','','');
REPLACE INTO `item_db_re` VALUES ('1375','Berdysz','Berdysz','4','20','10','2500','200','0','0','1','2','279714','58','2','34','3','70',NULL,'1','7','0','bonus2 bSubSize,Size_Medium,13; bonus2 bSubSize,Size_Large,15;','','');
REPLACE INTO `item_db_re` VALUES ('1376','Heart_Breaker','Heart Breaker','4','20','10','2000','175','0','0','1','1','279714','58','2','34','4','70',NULL,'1','7','0','bonus bCritical,20+getrefine(); bonus bAspdRate,5; if((Class==Job_Whitesmith)||(Class==Job_Creator)||(Class==Job_Mechanic)||(Class==Job_Mechanic_T)||(Class==Job_Genetic)||(Class==Job_Genetic_T)) bonus3 bAutoSpell,BS_HAMMERFALL,3,30;','','');
@@ -741,8 +741,8 @@ REPLACE INTO `item_db_re` VALUES ('1406','Spear__','Spear','4','1700','850','850
REPLACE INTO `item_db_re` VALUES ('1407','Pike','Pike','4','3450','1725','1000','60','0','0','3','3','16514','63','2','2','1','4',NULL,'1','4','0','','','');
REPLACE INTO `item_db_re` VALUES ('1408','Pike_','Pike','4','3450','1725','1000','60','0','0','3','4','16514','63','2','2','1','4',NULL,'1','4','0','','','');
REPLACE INTO `item_db_re` VALUES ('1409','Pike__','Pike','4','3450','1725','1000','60','0','0','3','0','16514','63','2','2','1','4',NULL,'1','4','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1410','Lance','Lance','4','60000','30000','2500','185','0','0','3','0','16514','63','2','34','3','33',NULL,'1','52','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1411','Lance_','Lance','4','60000','30000','2500','185','0','0','3','0','16514','63','2','34','3','33',NULL,'1','52','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1410','Lance','Lance','4','60000','30000','2500','185','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1411','Lance_','Lance','4','60000','30000','2500','185','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
REPLACE INTO `item_db_re` VALUES ('1412','Lance__','Lance','4','60000','30000','2500','185','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
REPLACE INTO `item_db_re` VALUES ('1413','Gungnir','Gungnir','4','20','10','500','120','0','0','3','0','16514','63','2','2','4','4',NULL,'1','4','0','bonus bAtkEle,Ele_Wind; bonus bPerfectHitRate,25; bonus bHit,30;','','');
REPLACE INTO `item_db_re` VALUES ('1414','Gelerdria','Gelerdria','4','20','10','700','145','0','0','3','0','16514','63','2','2','4','48',NULL,'1','4','0','bonus bAtkEle,Ele_Earth; bonus bMaxHP,800; bonus bMaxSP,-50;','','');
@@ -774,31 +774,31 @@ REPLACE INTO `item_db_re` VALUES ('1453','Guisarme__','Guisarme','4','13000','65
REPLACE INTO `item_db_re` VALUES ('1454','Glaive','Glaive','4','20000','10000','1200','104','0','0','3','2','16514','63','2','34','2','18',NULL,'1','5','0','','','');
REPLACE INTO `item_db_re` VALUES ('1455','Glaive_','Glaive','4','20000','10000','1200','104','0','0','3','3','16514','63','2','34','2','18',NULL,'1','5','0','','','');
REPLACE INTO `item_db_re` VALUES ('1456','Glaive__','Glaive','4','20000','10000','1200','104','0','0','3','0','16514','63','2','34','2','18',NULL,'1','5','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1457','Partizan','Partizan','4','27000','13500','2000','124','0','0','3','1','16514','63','2','34','2','18',NULL,'1','53','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1458','Partizan_','Partizan','4','27000','13500','2000','124','0','0','3','2','16514','63','2','34','2','18',NULL,'1','53','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1459','Partizan__','Partizan','4','27000','13500','2000','124','0','0','3','0','16514','63','2','34','3','33',NULL,'1','53','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1460','Trident','Trident','4','51000','25500','1200','150','0','0','3','2','16514','63','2','34','3','33',NULL,'1','54','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1461','Trident_','Trident','4','51000','25500','1200','150','0','0','3','3','16514','63','2','34','3','33',NULL,'1','54','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1462','Trident__','Trident','4','51000','25500','1200','150','0','0','3','0','16514','63','2','34','3','33',NULL,'1','54','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1463','Halberd','Hallberd','4','54000','27000','2500','165','0','0','3','1','16514','63','2','34','3','33',NULL,'1','55','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1464','Halberd_','Hallberd','4','54000','27000','2500','165','0','0','3','2','16514','63','2','34','3','33',NULL,'1','55','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1465','Halberd__','Hallberd','4','54000','27000','2500','165','0','0','3','0','16514','63','2','34','3','33',NULL,'1','55','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1466','Crescent_Scythe','Crescent Scythe','4','20','10','2500','180','0','0','3','0','16514','63','2','34','4','48',NULL,'1','56','0','bonus bCritical,30; bonus bHit,10;','','');
+REPLACE INTO `item_db_re` VALUES ('1457','Partizan','Partizan','4','27000','13500','2000','124','0','0','3','1','16514','63','2','34','2','18',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1458','Partizan_','Partizan','4','27000','13500','2000','124','0','0','3','2','16514','63','2','34','2','18',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1459','Partizan__','Partizan','4','27000','13500','2000','124','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1460','Trident','Trident','4','51000','25500','1200','150','0','0','3','2','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1461','Trident_','Trident','4','51000','25500','1200','150','0','0','3','3','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1462','Trident__','Trident','4','51000','25500','1200','150','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1463','Halberd','Hallberd','4','54000','27000','2500','165','0','0','3','1','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1464','Halberd_','Hallberd','4','54000','27000','2500','165','0','0','3','2','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1465','Halberd__','Hallberd','4','54000','27000','2500','165','0','0','3','0','16514','63','2','34','3','33',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1466','Crescent_Scythe','Crescent Scythe','4','20','10','2500','180','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus bCritical,30; bonus bHit,10;','','');
REPLACE INTO `item_db_re` VALUES ('1467','Bill_Guisarme','Bill Guisarme','4','20','10','1000','183','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_DemiHuman,5;','','');
-REPLACE INTO `item_db_re` VALUES ('1468','Zephyrus','Zephyrus','4','20','10','2000','170','0','0','3','0','16514','63','2','34','4','48',NULL,'1','57','0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,MG_THUNDERSTORM,3,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1468','Zephyrus','Zephyrus','4','20','10','2000','170','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,MG_THUNDERSTORM,3,100;','','');
REPLACE INTO `item_db_re` VALUES ('1469','Longinus\'s_Spear','Longinus\'s Spear','4','20','10','2500','180','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus bAtkEle,Ele_Dark; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Angel,10;','','');
REPLACE INTO `item_db_re` VALUES ('1470','Brionac','Brionac','4','20','10','3000','190','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus bAtkEle,Ele_Holy; skill AL_HEAL,5; bonus3 bAutoSpell,MG_SOULSTRIKE,3,100; bonus2 bAddRace,RC_Boss,5;','','');
REPLACE INTO `item_db_re` VALUES ('1471','Hell_Fire','Hellfire','4','20','10','3500','200','0','0','3','0','16514','63','2','34','4','48',NULL,'1','5','0','bonus bAtkEle,Ele_Fire; bonus3 bAutoSpell,MG_FIREBALL,3,100; bonus bStr,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1472','Staff_Of_Soul','Soul Staff','4','20','10','1400','25','200','0','1','0','8454660','63','2','34','3','73',NULL,'1','96','0','bonus bInt,5; bonus bAgi,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1473','Wizardy_Staff','Wizardry Staff','4','20','10','2400','120','200','0','1','0','8454660','63','2','34','4','90',NULL,'1','97','0','bonus bInt,6; bonus bDex,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1472','Staff_Of_Soul','Soul Staff','4','20','10','1400','25','200','0','1','0','8454660','63','2','34','3','73',NULL,'1','10','0','bonus bInt,5; bonus bAgi,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1473','Wizardy_Staff','Wizardry Staff','4','20','10','2400','120','200','0','1','0','8454660','63','2','34','4','90',NULL,'1','10','0','bonus bInt,6; bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('1474','Gae_Bolg','Gae Bolg','4','20','10','2000','160','0','0','3','0','16514','63','2','34','4','60',NULL,'1','5','0','bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10;','','');
REPLACE INTO `item_db_re` VALUES ('1475','Horseback_Lance','Equestrian\'s Spear','4','20','10','3700','200','0','0','4','0','16514','63','2','34','4','75',NULL,'1','5','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1476','Crescent_Scythe_','Crescent Scythe','4','20','10','2500','180','0','0','3','1','16514','63','2','34','4','48',NULL,'1','56','0','bonus bCritical,30; bonus bHit,10;','','');
+REPLACE INTO `item_db_re` VALUES ('1476','Crescent_Scythe_','Crescent Scythe','4','20','10','2500','180','0','0','3','1','16514','63','2','34','4','48',NULL,'1','5','0','bonus bCritical,30; bonus bHit,10;','','');
REPLACE INTO `item_db_re` VALUES ('1477','Spectral_Spear','Spectral Spear','4','20','10','2000','170','0','0','3','0','16514','63','2','34','4','75',NULL,'1','5','0','bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50;','','');
REPLACE INTO `item_db_re` VALUES ('1478','Ahlspiess','Ahlspiess','4','20','10','1000','120','0','0','3','0','16512','63','2','34','4','65',NULL,'1','5','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 ('1479','Spectral_Spear_','Spectral Spear','4','20','10','2000','170','0','0','3','1','16514','63','2','34','4','75',NULL,'1','5','0','bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50;','','');
REPLACE INTO `item_db_re` VALUES ('1480','Gae_Bolg_','Gae Bolg','4','20','10','2000','160','0','0','3','2','16514','63','2','34','4','60',NULL,'1','5','0','bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10;','','');
-REPLACE INTO `item_db_re` VALUES ('1481','Zephyrus_','Zephyrus','4','20','10','2000','170','0','0','3','3','16514','63','2','34','4','48',NULL,'1','57','0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,MG_THUNDERSTORM,3,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1481','Zephyrus_','Zephyrus','4','20','10','2000','170','0','0','3','3','16514','63','2','34','4','48',NULL,'1','5','0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,MG_THUNDERSTORM,3,100;','','');
REPLACE INTO `item_db_re` VALUES ('1482','BF_Lance1','Assaulter Lance','4','20','10','0','160','0','0','3','0','16514','63','2','34','3','80',NULL,'1','5','0','bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bUnbreakableWeapon,0;','','');
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','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','16512','58','2','34','4','70',NULL,'1','5','0','bonus bAspdRate,-10; bonus bDef,getrefine()/2;','','');
@@ -815,9 +815,9 @@ REPLACE INTO `item_db_re` VALUES ('1494','Undine_Spear','Spear Of Odin','4','500
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','','','');
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','','','');
REPLACE INTO `item_db_re` VALUES ('1503','Club__','Club','4','120','60','700','23','0','0','1','0','312755','63','2','2','1','2',NULL,'1','8','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1504','Mace','Mace','4','1600','800','800','37','0','0','1','3','312755','63','2','2','1','2',NULL,'1','62','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1505','Mace_','Mace','4','1600','800','800','37','0','0','1','4','312755','63','2','2','1','2',NULL,'1','62','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1506','Mace__','Mace','4','1600','800','800','37','0','0','1','0','312755','63','2','2','1','2',NULL,'1','62','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1504','Mace','Mace','4','1600','800','800','37','0','0','1','3','312755','63','2','2','1','2',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1505','Mace_','Mace','4','1600','800','800','37','0','0','1','4','312755','63','2','2','1','2',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1506','Mace__','Mace','4','1600','800','800','37','0','0','1','0','312755','63','2','2','1','2',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1507','Smasher','Smasher','4','9000','4500','1000','54','0','0','1','2','312755','63','2','2','2','14',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1508','Smasher_','Smasher','4','9000','4500','1000','54','0','0','1','3','312755','63','2','2','2','14',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1509','Smasher__','Smasher','4','9000','4500','1000','54','0','0','1','3','312755','63','2','2','2','14',NULL,'1','8','0','','','');
@@ -827,62 +827,62 @@ REPLACE INTO `item_db_re` VALUES ('1512','Flail__','Flail','4','16000','8000','9
REPLACE INTO `item_db_re` VALUES ('1513','Morning_Star','Morning Star','4','41000','20500','1500','110','0','0','1','1','312754','63','2','2','3','27',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1514','Morning_Star_','Morning Star','4','41000','20500','1500','110','0','0','1','2','312754','63','2','2','3','27',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1515','Morning_Star__','Morning Star','4','41000','20500','1500','110','0','0','1','2','312754','63','2','2','3','27',NULL,'1','8','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1516','Sword_Mace','Sword Mace','4','50000','25000','1200','130','0','0','1','0','312754','63','2','2','3','27',NULL,'1','63','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1517','Sword_Mace_','Sword Mace','4','50000','25000','1200','130','0','0','1','1','312754','63','2','2','3','27',NULL,'1','63','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1518','Sword_Mace__','Sword Mace','4','50000','25000','1200','130','0','0','1','1','312754','63','2','2','3','27',NULL,'1','63','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1519','Chain','Chain','4','23000','11500','800','84','0','0','1','2','312754','63','2','2','2','14',NULL,'1','64','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1520','Chain_','Chain','4','23000','11500','800','84','0','0','1','3','312754','63','2','2','2','14',NULL,'1','64','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1521','Chain__','Chain','4','23000','11500','800','84','0','0','1','3','312754','63','2','2','2','14',NULL,'1','64','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1522','Stunner','Stunner','4','60000','30000','2000','140','0','0','1','0','33040','63','2','2','3','27',NULL,'1','65','0','bonus2 bAddEff,Eff_Stun,1000;','','');
+REPLACE INTO `item_db_re` VALUES ('1516','Sword_Mace','Sword Mace','4','50000','25000','1200','130','0','0','1','0','312754','63','2','2','3','27',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1517','Sword_Mace_','Sword Mace','4','50000','25000','1200','130','0','0','1','1','312754','63','2','2','3','27',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1518','Sword_Mace__','Sword Mace','4','50000','25000','1200','130','0','0','1','1','312754','63','2','2','3','27',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1519','Chain','Chain','4','23000','11500','800','84','0','0','1','2','312754','63','2','2','2','14',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1520','Chain_','Chain','4','23000','11500','800','84','0','0','1','3','312754','63','2','2','2','14',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1521','Chain__','Chain','4','23000','11500','800','84','0','0','1','3','312754','63','2','2','2','14',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1522','Stunner','Stunner','4','60000','30000','2000','140','0','0','1','0','33040','63','2','2','3','27',NULL,'1','8','0','bonus2 bAddEff,Eff_Stun,1000;','','');
REPLACE INTO `item_db_re` VALUES ('1523','Spike','Spike','4','20','10','700','85','0','0','1','0','33040','63','2','2','4','40',NULL,'1','8','0','bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67;','','');
-REPLACE INTO `item_db_re` VALUES ('1524','Golden_Mace','Golden Mace','4','20','10','800','110','0','0','1','1','33040','63','2','2','4','40',NULL,'1','66','0','bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('1524','Golden_Mace','Golden Mace','4','20','10','800','110','0','0','1','1','33040','63','2','2','4','40',NULL,'1','8','0','bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1525','Long_Mace','Long Mace','4','20','10','800','135','0','0','3','0','33040','63','2','2','4','40',NULL,'1','8','0','bonus bLongAtkDef,10;','','');
REPLACE INTO `item_db_re` VALUES ('1526','Slash','Slash','4','20','10','1000','145','0','0','1','0','33040','63','2','2','4','40',NULL,'1','8','0','bonus2 bAddRace,RC_Undead,15; bonus2 bWeaponComaRace,RC_Undead,10; bonus2 bExpAddRace,RC_Undead,5;','','');
REPLACE INTO `item_db_re` VALUES ('1527','Quadrille','Quadrille','4','20','10','900','165','0','0','1','0','33040','63','2','2','4','40',NULL,'1','8','0','bonus2 bAddRace,RC_Undead,10; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddEle,Ele_Earth,10;','','');
REPLACE INTO `item_db_re` VALUES ('1528','Grand_Cross','Grand Cross','4','20','10','1500','140','0','0','1','0','33040','63','2','2','4','40',NULL,'1','8','0','bonus bAtkEle,Ele_Holy; skill PR_TURNUNDEAD,3; bonus3 bAutoSpell,PR_TURNUNDEAD,3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1529','Iron_Driver','Iron Driver','4','20','10','3000','155','0','0','2','0','33024','63','2','2','3','78',NULL,'1','67','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1529','Iron_Driver','Iron Driver','4','20','10','3000','155','0','0','2','0','33024','63','2','2','3','78',NULL,'1','8','0','','','');
REPLACE INTO `item_db_re` VALUES ('1530','Mjolnir','Mjolnir','4','20','10','6000','350','0','0','1','0','279714','63','2','2','4','95',NULL,'0','8','0','bonus bAtkEle,Ele_Wind; bonus bDex,50; bonus bStr,20; bonus bAspdRate,10; bonus3 bAutoSpell,MG_THUNDERSTORM,10,100; autobonus \"{ bonus bSplashRange,1; }\",50,10000;','','');
-REPLACE INTO `item_db_re` VALUES ('1531','Spanner','Wrench','4','20','10','2500','115','0','0','1','0','33040','63','2','2','3','55',NULL,'1','68','0','bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100;','','');
-REPLACE INTO `item_db_re` VALUES ('1532','Stunner_','Stunner','4','60000','30000','2000','140','0','0','1','2','33040','63','2','2','3','27',NULL,'1','65','0','bonus2 bAddEff,Eff_Stun,1000;','','');
+REPLACE INTO `item_db_re` VALUES ('1531','Spanner','Wrench','4','20','10','2500','115','0','0','1','0','33040','63','2','2','3','55',NULL,'1','8','0','bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1532','Stunner_','Stunner','4','60000','30000','2000','140','0','0','1','2','33040','63','2','2','3','27',NULL,'1','8','0','bonus2 bAddEff,Eff_Stun,1000;','','');
REPLACE INTO `item_db_re` VALUES ('1533','Warrior_Balmung','Warrior\'s Balmung','4','20','10','1000','170','0','0','1','0','4294967295','63','2','2','4','48',NULL,'1','8','0','bonus bAllStats,5;','','');
-REPLACE INTO `item_db_re` VALUES ('1534','Spanner_C','Wrench','4','2','1','0','150','0','0','1','0','33040','63','2','2','3','0',NULL,'0','68','0','bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1534','Spanner_C','Wrench','4','2','1','0','150','0','0','1','0','33040','63','2','2','3','0',NULL,'0','8','0','bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100;','','');
REPLACE INTO `item_db_re` VALUES ('1535','Hollgrehenn_Hammer','Hollgrehenn\'s Hammer','4','4444','2222','44','4','0','0','1','1','312754','63','2','2','4','44',NULL,'1','8','0','bonus bBreakArmorRate,100; bonus bBreakWeaponRate,100; if(readparam(bStr)>=44) { bonus bBaseAtk,44; }','','');
REPLACE INTO `item_db_re` VALUES ('1536','Good_Morning_Star','Good Morning Star','4','20','10','0','120','0','0','1','0','312754','63','2','2','1','0',NULL,'0','8','0','bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50;','','');
REPLACE INTO `item_db_re` VALUES ('1537','Quadrille_C','Refined Quadrille','4','1','0','0','193','0','0','1','0','33040','63','2','2','4','0',NULL,'0','8','0','bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Demon,40; bonus2 bAddRace,RC_Undead,40;','','');
REPLACE INTO `item_db_re` VALUES ('1538','Spike_','Spike','4','20','10','700','85','0','0','1','2','33040','63','2','2','4','40',NULL,'1','8','0','bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67;','','');
-REPLACE INTO `item_db_re` VALUES ('1539','Golden_Mace_','Golden Mace','4','20','10','800','110','0','0','1','2','33040','63','2','2','4','40',NULL,'1','66','0','bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('1539','Golden_Mace_','Golden Mace','4','20','10','800','110','0','0','1','2','33040','63','2','2','4','40',NULL,'1','8','0','bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1540','Grand_Cross_','Grand Cross','4','20','10','1500','140','0','0','1','1','33040','63','2','2','4','40',NULL,'1','8','0','bonus bAtkEle,Ele_Holy; skill PR_TURNUNDEAD,3; bonus3 bAutoSpell,PR_TURNUNDEAD,3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3;','','');
REPLACE INTO `item_db_re` VALUES ('1541','Nemesis','Nemesis','4','20','10','900','120','0','0','1','0','33040','63','2','2','4','60',NULL,'1','8','0','bonus bAtkEle,Ele_Holy; bonus2 bAddRace,RC_Undead,10; bonus2 bAddRace,RC_Demon,10; bonus3 bAutoSpell,AL_CRUCIS,1+getrefine(),100; autobonus \"{ bonus bBaseAtk,50; }\",10,20000,BF_WEAPON,\"{ specialeffect2 EF_BLOODDRAIN; }\";','','');
REPLACE INTO `item_db_re` VALUES ('1542','BF_Morning_Star1','Valorous Battlefield Morning Star','4','20','10','0','105','0','0','1','0','312755','63','2','2','3','80',NULL,'1','8','0','bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
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','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','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','62','0','','','');
+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','','','');
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','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 ('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','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','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','','','');
REPLACE INTO `item_db_re` VALUES ('1550','Book','Book','4','30000','15000','600','85','0','0','1','3','4260096','63','2','2','2','14',NULL,'1','15','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1551','Bible','Bible','4','60000','30000','1000','115','0','0','1','2','4260096','63','2','2','3','27',NULL,'1','89','0','bonus bInt,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1551','Bible','Bible','4','60000','30000','1000','115','0','0','1','2','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('1552','Tablet','Tablet','4','51000','25500','800','125','0','0','1','1','4260096','63','2','2','3','27',NULL,'1','15','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1553','Book_Of_Billows','Book of Billows','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','90','0','bonus bAtkEle,Ele_Water;','','');
-REPLACE INTO `item_db_re` VALUES ('1554','Book_Of_Mother_Earth','Book of Mother Earth','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','91','0','bonus bAtkEle,Ele_Earth;','','');
-REPLACE INTO `item_db_re` VALUES ('1555','Book_Of_Blazing_Sun','Book of the Blazing Sun','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','92','0','bonus bAtkEle,Ele_Fire;','','');
-REPLACE INTO `item_db_re` VALUES ('1556','Book_Of_Gust_Of_Wind','Book of Gust of Wind','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','93','0','bonus bAtkEle,Ele_Wind;','','');
-REPLACE INTO `item_db_re` VALUES ('1557','Book_Of_The_Apocalypse','Book of the Apocalypse','4','60000','30000','800','120','0','0','1','0','4260096','63','2','2','4','40',NULL,'1','94','0','bonus bAtkEle,Ele_Dark; bonus2 bAddEle,Ele_Holy,5; bonus2 bAddEle,Ele_Water,7; bonus2 bAddEle,Ele_Earth,7; bonus2 bAddEle,Ele_Fire,7; bonus2 bAddEle,Ele_Wind,7;','','');
-REPLACE INTO `item_db_re` VALUES ('1558','Girl\'s_Diary','Girl\'s Diary','4','1500','750','300','60','0','0','1','1','4260096','63','2','2','4','40',NULL,'1','95','0','bonus2 bAddDamageClass,1188,150;','','');
+REPLACE INTO `item_db_re` VALUES ('1553','Book_Of_Billows','Book of Billows','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Water;','','');
+REPLACE INTO `item_db_re` VALUES ('1554','Book_Of_Mother_Earth','Book of Mother Earth','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Earth;','','');
+REPLACE INTO `item_db_re` VALUES ('1555','Book_Of_Blazing_Sun','Book of the Blazing Sun','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Fire;','','');
+REPLACE INTO `item_db_re` VALUES ('1556','Book_Of_Gust_Of_Wind','Book of Gust of Wind','4','35000','17500','750','90','0','0','1','0','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Wind;','','');
+REPLACE INTO `item_db_re` VALUES ('1557','Book_Of_The_Apocalypse','Book of the Apocalypse','4','60000','30000','800','120','0','0','1','0','4260096','63','2','2','4','40',NULL,'1','15','0','bonus bAtkEle,Ele_Dark; bonus2 bAddEle,Ele_Holy,5; bonus2 bAddEle,Ele_Water,7; bonus2 bAddEle,Ele_Earth,7; bonus2 bAddEle,Ele_Fire,7; bonus2 bAddEle,Ele_Wind,7;','','');
+REPLACE INTO `item_db_re` VALUES ('1558','Girl\'s_Diary','Girl\'s Diary','4','1500','750','300','60','0','0','1','1','4260096','63','2','2','4','40',NULL,'1','15','0','bonus2 bAddDamageClass,1188,150;','','');
REPLACE INTO `item_db_re` VALUES ('1559','Legacy_Of_Dragon','Legacy of Dragon','4','20','10','700','130','0','0','1','0','4260096','63','2','2','4','70',NULL,'1','15','0','bonus bInt,3; bonus bIgnoreDefRace,RC_Dragon; bonus2 bSPGainRace,RC_Dragon,10;','','');
REPLACE INTO `item_db_re` VALUES ('1560','Diary_Of_Great_Sage','Sage\'s Diary','4','20','10','1100','100','120','0','1','2','4260096','63','2','2','3','60',NULL,'1','15','0','if(readparam(bStr)>=50) bonus bAspdRate,5; if(readparam(bInt)>=70) bonus bMatkRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('1561','Hardback','Hardcover Book','4','20','10','1500','140','0','0','1','1','4260096','63','2','2','4','55',NULL,'1','15','0','bonus bStr,3; bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('1562','Bible_Of_Battlefield','Battlefield Textbook','4','20','10','700','110','0','0','1','1','4260096','63','2','2','4','80',NULL,'0','15','0','bonus bInt,3; bonus3 bAutoSpell,AL_BLESSING,3+(getskilllv(AL_BLESSING)>3)*(getskilllv(AL_BLESSING)-3),20;','','');
-REPLACE INTO `item_db_re` VALUES ('1563','Diary_Of_Great_Sage_C','Rental Sage\'s Diary','4','1','0','0','135','140','0','1','2','4260096','63','2','2','3','0',NULL,'0','15','0','bonus bAspdRate,5;','','');
+REPLACE INTO `item_db_re` VALUES ('1563','Diary_Of_Great_Sage_C','Rental Sage\'s Diary','4','1','0','0','135','140','0','1','0','4260096','63','2','2','3','0',NULL,'0','15','0','bonus bAspdRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('1564','Encyclopedia','Encyclopedia','4','20','10','2000','110','100','0','1','2','4260096','63','2','2','3','70',NULL,'1','15','0','bonus bInt,3; bonus bDex,2; bonus bCritical,20+((readparam(bLuk)*2)/10);','','');
REPLACE INTO `item_db_re` VALUES ('1565','Death_Note','Ledger of Death','4','20','10','1000','137','100','0','1','2','4260096','63','2','2','4','85',NULL,'1','15','0','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;','','');
REPLACE INTO `item_db_re` VALUES ('1566','Diary_Of_Great_Basil','Diary Of Great Basil','4','20','10','0','120','125','0','1','0','4260096','63','2','2','1','0',NULL,'0','15','0','bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50;','','');
REPLACE INTO `item_db_re` VALUES ('1567','Hardback_C','Refined Hardcover Book','4','1','0','0','168','100','0','1','0','4260096','63','2','2','4','0',NULL,'0','15','0','bonus bStr,5; bonus bDex,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1568','Book_Of_Billows_','Book of Billows','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','90','0','bonus bAtkEle,Ele_Water;','','');
-REPLACE INTO `item_db_re` VALUES ('1569','Book_Of_Mother_Earth_','Book of Mother Earth','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','91','0','bonus bAtkEle,Ele_Earth;','','');
-REPLACE INTO `item_db_re` VALUES ('1570','Book_Of_Blazing_Sun_','Book of Blazing Sun','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','92','0','bonus bAtkEle,Ele_Fire;','','');
-REPLACE INTO `item_db_re` VALUES ('1571','Book_Of_Gust_Of_Wind_','Book of Gust of Wind','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','93','0','bonus bAtkEle,Ele_Wind;','','');
+REPLACE INTO `item_db_re` VALUES ('1568','Book_Of_Billows_','Book of Billows','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Water;','','');
+REPLACE INTO `item_db_re` VALUES ('1569','Book_Of_Mother_Earth_','Book of Mother Earth','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Earth;','','');
+REPLACE INTO `item_db_re` VALUES ('1570','Book_Of_Blazing_Sun_','Book of Blazing Sun','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Fire;','','');
+REPLACE INTO `item_db_re` VALUES ('1571','Book_Of_Gust_Of_Wind_','Book of Gust of Wind','4','35000','17500','750','90','0','0','1','3','4260096','63','2','2','3','27',NULL,'1','15','0','bonus bAtkEle,Ele_Wind;','','');
REPLACE INTO `item_db_re` VALUES ('1572','Principles_Of_Magic','Principles of Magic','4','20','10','300','60','160','0','1','2','4260096','63','2','2','3','60',NULL,'1','15','0','bonus bInt,3; bonus bSPrecovRate,5;','','');
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','','','');
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','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
@@ -911,12 +911,12 @@ REPLACE INTO `item_db_re` VALUES ('1606','Wand__','Wand','4','2500','1250','400'
REPLACE INTO `item_db_re` VALUES ('1607','Staff','Staff','4','9500','4750','400','40','70','0','1','2','8487700','63','2','2','2','12',NULL,'1','10','0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('1608','Staff_','Staff','4','9500','4750','400','40','70','0','1','3','8487700','63','2','2','2','12',NULL,'1','10','0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('1609','Staff__','Staff','4','9500','4750','400','40','70','0','1','0','8487700','63','2','2','2','12',NULL,'1','10','0','bonus bInt,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1610','Arc_Wand','Arc Wand','4','45000','22500','400','60','95','0','1','1','8487700','63','2','2','3','24',NULL,'1','69','0','bonus bInt,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1611','Arc_Wand_','Arc Wand','4','45000','22500','400','60','95','0','1','2','8487700','63','2','2','3','24',NULL,'1','69','0','bonus bInt,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1612','Arc_Wand__','Arc Wand','4','45000','22500','400','60','95','0','1','0','8487700','63','2','2','3','24',NULL,'1','69','0','bonus bInt,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1613','Mighty_Staff','Mighty Staff','4','20','10','700','130','100','0','1','0','8487700','63','2','2','3','24',NULL,'1','70','0','bonus bStr,10; bonus bSPDrainValue,-2;','','');
-REPLACE INTO `item_db_re` VALUES ('1614','Blessed_Wand','Wand of Occult','4','20','10','700','75','105','0','1','0','8487700','63','2','2','3','24',NULL,'1','71','0','bonus bInt,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1615','Bone_Wand','Evil Bone Wand','4','20','10','700','40','110','0','1','0','8487700','63','2','2','3','24',NULL,'1','72','0','bonus bInt,4; bonus bAtkEle,Ele_Undead;','','');
+REPLACE INTO `item_db_re` VALUES ('1610','Arc_Wand','Arc Wand','4','45000','22500','400','60','95','0','1','1','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1611','Arc_Wand_','Arc Wand','4','45000','22500','400','60','95','0','1','2','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1612','Arc_Wand__','Arc Wand','4','45000','22500','400','60','95','0','1','0','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1613','Mighty_Staff','Mighty Staff','4','20','10','700','130','100','0','1','0','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bStr,10; bonus bSPDrainValue,-2;','','');
+REPLACE INTO `item_db_re` VALUES ('1614','Blessed_Wand','Wand of Occult','4','20','10','700','75','105','0','1','0','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1615','Bone_Wand','Evil Bone Wand','4','20','10','700','40','110','0','1','0','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,4; bonus bAtkEle,Ele_Undead;','','');
REPLACE INTO `item_db_re` VALUES ('1616','Staff_Of_Wing','Wing Staff','4','20','10','500','60','115','0','1','0','8454660','63','2','2','4','40',NULL,'1','10','0','bonus bAtkEle,Ele_Wind; bonus bVariableCastrate,-5;','','');
REPLACE INTO `item_db_re` VALUES ('1617','Survival_Rod','Survivor\'s Rod','4','85000','42500','1000','50','120','0','1','0','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bDex,2; bonus bMaxHP,300;','','');
REPLACE INTO `item_db_re` VALUES ('1618','Survival_Rod_','Survivor\'s Rod','4','85000','42500','1000','50','120','0','1','1','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bDex,3; bonus bMaxHP,400;','','');
@@ -924,7 +924,7 @@ REPLACE INTO `item_db_re` VALUES ('1619','Survival_Rod2','Survivor\'s Rod','4','
REPLACE INTO `item_db_re` VALUES ('1620','Survival_Rod2_','Survivor\'s Rod','4','85000','42500','1000','50','120','0','1','1','8487700','63','2','2','3','24',NULL,'1','10','0','bonus bInt,3; bonus bMaxHP,400;','','');
REPLACE INTO `item_db_re` VALUES ('1621','Hypnotist\'s_Staff','Hypnotist\'s Staff','4','43000','21500','500','70','120','0','1','1','1','47','2','2','3','30',NULL,'1','10','0','bonus bInt,1;','','');
REPLACE INTO `item_db_re` VALUES ('1622','Hypnotist\'s_Staff_','Hypnotist\'s Staff','4','20','10','500','70','120','0','1','2','1','47','2','2','3','30',NULL,'1','10','0','bonus bInt,1;','','');
-REPLACE INTO `item_db_re` VALUES ('1623','Mighty_Staff_C','Mighty Staff','4','1','0','0','165','120','0','1','0','8487700','63','2','2','3','0',NULL,'0','70','0','bonus bStr,10; bonus bInt,4; bonus bSPDrainValue,-1;','','');
+REPLACE INTO `item_db_re` VALUES ('1623','Mighty_Staff_C','Mighty Staff','4','1','0','0','165','120','0','1','0','8487700','63','2','2','3','0',NULL,'0','10','0','bonus bStr,10; bonus bInt,4; bonus bSPDrainValue,-1;','','');
REPLACE INTO `item_db_re` VALUES ('1624','Lich_Bone_Wand','Lich\'s Bone Wand','4','20','10','800','60','170','0','1','2','99092','58','2','2','3','70',NULL,'1','10','0','bonus bInt,1; bonus bDex,1; bonus bAtkEle,Ele_Undead; bonus3 bAutoSpellWhenHit,NPC_WIDECURSE,5,10+getrefine(); if(getrefine()>=9) { bonus bMatkRate,3; bonus bMaxSP,300; }','','');
REPLACE INTO `item_db_re` VALUES ('1625','Healing_Staff','Healing Staff','4','20','10','400','10','105','0','1','0','33040','63','2','2','3','55',NULL,'1','10','0','bonus bAtkEle,Ele_Holy; bonus bHealPower,(getrefine()*3/2);','','');
REPLACE INTO `item_db_re` VALUES ('1626','Piercing_Staff','Piercing Staff','4','20','10','500','80','145','0','1','0','99092','58','2','2','3','70',NULL,'1','10','0','bonus bInt,4; bonus bIgnoreMdefRate,10+getrefine();','','');
@@ -973,16 +973,16 @@ REPLACE INTO `item_db_re` VALUES ('1706','Composite_Bow__','Composite Bow','4','
REPLACE INTO `item_db_re` VALUES ('1707','Great_Bow','Great Bow','4','10000','5000','1000','50','0','0','5','2','657480','63','2','34','2','18',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1708','Great_Bow_','Great Bow','4','10000','5000','1000','50','0','0','5','3','657480','63','2','34','2','18',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1709','Great_Bow__','Great Bow','4','10000','5000','1000','50','0','0','5','0','657480','63','2','34','2','18',NULL,'1','11','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1710','CrossBow','Cross Bow','4','17000','8500','900','65','0','0','5','2','657480','63','2','34','2','18',NULL,'1','73','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1710','CrossBow','Cross Bow','4','17000','8500','900','65','0','0','5','2','657480','63','2','34','2','18',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1711','CrossBow_','Cross Bow','4','17000','8500','900','65','0','0','5','3','657480','63','2','34','2','18',NULL,'1','11','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1712','CrossBow__','Cross Bow','4','17000','8500','900','65','0','0','5','0','657480','63','2','34','2','18',NULL,'1','73','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1713','Arbalest','Arbalest Bow','4','48000','24000','1000','90','0','0','5','1','657480','63','2','34','3','33',NULL,'1','74','0','bonus bDex,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1714','Kakkung','Gakkung Bow','4','42000','21000','1100','100','0','0','5','1','657480','63','2','34','3','33',NULL,'1','75','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1715','Arbalest_','Arbalest Bow','4','48000','24000','1000','90','0','0','5','2','657480','63','2','34','3','33',NULL,'1','74','0','bonus bDex,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1716','Kakkung_','Gakkung Bow','4','42000','21000','1100','100','0','0','5','2','657480','63','2','34','3','33',NULL,'1','75','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1718','Hunter_Bow','Hunter Bow','4','64000','32000','1500','125','0','0','5','0','2048','63','2','34','3','33',NULL,'1','76','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1712','CrossBow__','Cross Bow','4','17000','8500','900','65','0','0','5','0','657480','63','2','34','2','18',NULL,'1','11','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1713','Arbalest','Arbalest Bow','4','48000','24000','1000','90','0','0','5','1','657480','63','2','34','3','33',NULL,'1','11','0','bonus bDex,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1714','Kakkung','Gakkung Bow','4','42000','21000','1100','100','0','0','5','1','657480','63','2','34','3','33',NULL,'1','11','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1715','Arbalest_','Arbalest Bow','4','48000','24000','1000','90','0','0','5','2','657480','63','2','34','3','33',NULL,'1','11','0','bonus bDex,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1716','Kakkung_','Gakkung Bow','4','42000','21000','1100','100','0','0','5','2','657480','63','2','34','3','33',NULL,'1','11','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1718','Hunter_Bow','Hunter Bow','4','64000','32000','1500','125','0','0','5','0','2048','63','2','34','3','33',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1719','Bow_Of_Roguemaster','Roguemaster\'s Bow','4','20','10','500','75','0','0','11','0','64','63','2','34','4','48',NULL,'1','11','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1720','Bow_Of_Rudra','Rudra Bow','4','20','10','1200','150','0','0','5','0','657416','63','2','34','4','48',NULL,'1','77','0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000;','','');
+REPLACE INTO `item_db_re` VALUES ('1720','Bow_Of_Rudra','Rudra Bow','4','20','10','1200','150','0','0','5','0','657416','63','2','34','4','48',NULL,'1','11','0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000;','','');
REPLACE INTO `item_db_re` VALUES ('1721','Repeting_CrossBow','Repeating Crossbow','4','89000','44500','2000','95','0','0','9','1','133184','63','2','34','3','65',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1722','Balistar','Ballista','4','124000','62000','3500','145','0','0','5','0','526336','63','2','34','4','77',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1723','Luna_Bow','Luna Bow','4','20','10','2000','100','0','0','5','2','2048','63','2','34','3','30',NULL,'1','11','0','bonus bDef,2+3*(getrefine()>5)+2*(getrefine()>8);','','');
@@ -991,7 +991,7 @@ REPLACE INTO `item_db_re` VALUES ('1725','Bow_Of_Minstrel','Minstrel Bow','4','2
REPLACE INTO `item_db_re` VALUES ('1726','Hunter_Bow_','Hunter Bow','4','64000','32000','1500','125','0','0','5','1','2048','63','2','34','3','33',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1727','Balistar_','Ballista','4','124000','62000','3500','145','0','0','5','1','526336','63','2','34','4','77',NULL,'1','11','0','','','');
REPLACE INTO `item_db_re` VALUES ('1728','Balistar_C','Ballista','4','1','0','0','194','0','0','5','0','526336','63','2','34','4','0',NULL,'0','11','0','bonus bLongAtkRate,20;','','');
-REPLACE INTO `item_db_re` VALUES ('1729','Bow_Of_Rudra_C','Rudra Bow','4','2','1','0','185','0','0','5','0','657416','63','2','34','4','0',NULL,'0','77','0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1;','','');
+REPLACE INTO `item_db_re` VALUES ('1729','Bow_Of_Rudra_C','Rudra Bow','4','2','1','0','185','0','0','5','0','657416','63','2','34','4','0',NULL,'0','11','0','bonus bAtkEle,Ele_Holy; bonus bInt,5; skill AL_CURE,1; skill AL_HEAL,1;','','');
REPLACE INTO `item_db_re` VALUES ('1730','Burning_Bow','Burning Bow','4','20','10','1400','95','0','0','5','1','657416','63','2','34','3','55',NULL,'1','11','0','bonus2 bSubEle,Ele_Fire,10;','','');
REPLACE INTO `item_db_re` VALUES ('1731','Frozen_Bow','Frozen Bow','4','20','10','1400','100','0','0','5','1','657416','63','2','34','3','55',NULL,'1','11','0','bonus2 bAddEff,Eff_Freeze,1000;','','');
REPLACE INTO `item_db_re` VALUES ('1732','Earth_Bow','Earth Bow','4','20','10','1400','105','0','0','5','1','657416','63','2','34','3','55',NULL,'1','11','0','','','');
@@ -1039,23 +1039,23 @@ REPLACE INTO `item_db_re` VALUES ('1773','Arrow_Of_Elf','Elven Arrow','10','5','
REPLACE INTO `item_db_re` VALUES ('1774','Hunting_Arrow','Hunting Arrow','10','5','2','1','35','0','0','0','0','661576','63','2','32768','0','0',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1775','Siege_Arrow_S','WoE Arrow S','10','10','5','1','45','0','0','0','0','661576','63','2','32768','0','130',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('1776','Siege_Arrow_A','WoE Arrow A','10','10','5','1','30','0','0','0','0','661576','63','2','32768','0','95',NULL,'0','1','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1801','Waghnakh','Waghnak','4','8000','4000','400','30','0','0','1','3','33024','63','2','2','1','0',NULL,'1','78','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1802','Waghnakh_','Waghnak','4','8000','4000','400','30','0','0','1','4','33024','63','2','2','1','0',NULL,'1','78','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1803','Knuckle_Duster','Knuckle Dusters','4','25000','12500','450','50','0','0','1','2','33024','63','2','2','2','12',NULL,'1','79','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1804','Knuckle_Duster_','Knuckle Dusters','4','25000','12500','450','50','0','0','1','3','33024','63','2','2','2','12',NULL,'1','79','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1805','Hora','Studded Knuckles','4','32000','16000','450','65','0','0','1','2','33024','63','2','2','2','12',NULL,'1','80','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1806','Hora_','Studded Knuckles','4','32000','16000','450','65','0','0','1','3','33024','63','2','2','2','12',NULL,'1','80','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1807','Fist','Fist','4','53000','26500','650','115','0','0','1','0','33024','63','2','2','3','24',NULL,'1','81','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1808','Fist_','Fist','4','53000','26500','650','115','0','0','1','1','33024','63','2','2','3','24',NULL,'1','81','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1809','Claw','Claw','4','67000','33500','500','86','0','0','1','1','33024','63','2','2','3','24',NULL,'1','82','0','bonus bStr,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1810','Claw_','Claw','4','67000','33500','500','86','0','0','1','2','33024','63','2','2','3','24',NULL,'1','82','0','bonus bStr,2;','','');
-REPLACE INTO `item_db_re` VALUES ('1811','Finger','Finger','4','58000','29000','500','97','0','0','1','1','33024','63','2','2','3','24',NULL,'1','83','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1812','Finger_','Finger','4','58000','29000','500','97','0','0','1','2','33024','63','2','2','3','24',NULL,'1','83','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1813','Kaiser_Knuckle','Kaiser Knuckle','4','20','10','450','110','0','0','1','0','33024','63','2','2','4','36',NULL,'1','84','0','bonus bAtkEle,Ele_Wind; bonus2 bAddRace,RC_Undead,5; bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Fire,10; bonus2 bAddEle,Ele_Wind,10;','','');
-REPLACE INTO `item_db_re` VALUES ('1814','Berserk','Berserk','4','20','10','500','120','0','0','1','0','33024','63','2','2','4','36',NULL,'1','85','0','bonus bAspdRate,12;','','');
+REPLACE INTO `item_db_re` VALUES ('1801','Waghnakh','Waghnak','4','8000','4000','400','30','0','0','1','3','33024','63','2','2','1','0',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1802','Waghnakh_','Waghnak','4','8000','4000','400','30','0','0','1','4','33024','63','2','2','1','0',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1803','Knuckle_Duster','Knuckle Dusters','4','25000','12500','450','50','0','0','1','2','33024','63','2','2','2','12',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1804','Knuckle_Duster_','Knuckle Dusters','4','25000','12500','450','50','0','0','1','3','33024','63','2','2','2','12',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1805','Hora','Studded Knuckles','4','32000','16000','450','65','0','0','1','2','33024','63','2','2','2','12',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1806','Hora_','Studded Knuckles','4','32000','16000','450','65','0','0','1','3','33024','63','2','2','2','12',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1807','Fist','Fist','4','53000','26500','650','115','0','0','1','0','33024','63','2','2','3','24',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1808','Fist_','Fist','4','53000','26500','650','115','0','0','1','1','33024','63','2','2','3','24',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1809','Claw','Claw','4','67000','33500','500','86','0','0','1','1','33024','63','2','2','3','24',NULL,'1','12','0','bonus bStr,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1810','Claw_','Claw','4','67000','33500','500','86','0','0','1','2','33024','63','2','2','3','24',NULL,'1','12','0','bonus bStr,2;','','');
+REPLACE INTO `item_db_re` VALUES ('1811','Finger','Finger','4','58000','29000','500','97','0','0','1','1','33024','63','2','2','3','24',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1812','Finger_','Finger','4','58000','29000','500','97','0','0','1','2','33024','63','2','2','3','24',NULL,'1','12','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1813','Kaiser_Knuckle','Kaiser Knuckle','4','20','10','450','110','0','0','1','0','33024','63','2','2','4','36',NULL,'1','12','0','bonus bAtkEle,Ele_Wind; bonus2 bAddRace,RC_Undead,5; bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Fire,10; bonus2 bAddEle,Ele_Wind,10;','','');
+REPLACE INTO `item_db_re` VALUES ('1814','Berserk','Berserk','4','20','10','500','120','0','0','1','0','33024','63','2','2','4','36',NULL,'1','12','0','bonus bAspdRate,12;','','');
REPLACE INTO `item_db_re` VALUES ('1815','Claw_Of_Garm','Hatii Claw','4','20','10','550','152','0','0','1','1','33024','63','2','2','4','70',NULL,'1','12','0','bonus bAtkEle,Ele_Dark; bonus bMaxHPrate,-2; bonus2 bAddEff,Eff_Bleeding,200;','','');
-REPLACE INTO `item_db_re` VALUES ('1816','Berserk_','Berserk','4','20','10','500','120','0','0','1','1','33024','63','2','2','4','36',NULL,'1','85','0','bonus bAspdRate,12;','','');
-REPLACE INTO `item_db_re` VALUES ('1817','Kaiser_Knuckle_C','Kaiser Knuckle','4','1','0','0','159','0','0','1','0','33024','63','2','2','4','0',NULL,'0','84','0','bonus bAtkEle,Ele_Wind; bonus2 bAddRace,RC_Undead,5; bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Fire,10; bonus2 bAddEle,Ele_Wind,10; bonus bAspdRate,5;','','');
+REPLACE INTO `item_db_re` VALUES ('1816','Berserk_','Berserk','4','20','10','500','120','0','0','1','1','33024','63','2','2','4','36',NULL,'1','12','0','bonus bAspdRate,12;','','');
+REPLACE INTO `item_db_re` VALUES ('1817','Kaiser_Knuckle_C','Kaiser Knuckle','4','1','0','0','159','0','0','1','0','33024','63','2','2','4','0',NULL,'0','12','0','bonus bAtkEle,Ele_Wind; bonus2 bAddRace,RC_Undead,5; bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Fire,10; bonus2 bAddEle,Ele_Wind,10; bonus bAspdRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('1818','Magma_Fist','Magma Fist','4','20','10','650','80','0','0','1','3','33024','63','2','2','3','75',NULL,'1','12','0','bonus3 bAutoSpell,SA_FLAMELAUNCHER,5,10;','','');
REPLACE INTO `item_db_re` VALUES ('1819','Icicle_Fist','Icicle Fist','4','20','10','650','80','0','0','1','3','33024','63','2','2','3','75',NULL,'1','12','0','bonus3 bAutoSpell,SA_FROSTWEAPON,5,10;','','');
REPLACE INTO `item_db_re` VALUES ('1820','Electric_Fist','Electric Fist','4','20','10','650','80','0','0','1','3','33024','63','2','2','3','75',NULL,'1','12','0','bonus3 bAutoSpell,SA_LIGHTNINGLOADER,5,10;','','');
@@ -1109,12 +1109,12 @@ REPLACE INTO `item_db_re` VALUES ('1952','Line','Whip','4','12000','6000','300',
REPLACE INTO `item_db_re` VALUES ('1953','Line_','Whip','4','12000','6000','300','80','0','0','2','3','524288','63','0','2','2','16',NULL,'1','14','0','','','');
REPLACE INTO `item_db_re` VALUES ('1954','Wire','Wire Whip','4','17500','8750','1000','95','0','0','2','2','524288','63','0','2','2','16',NULL,'1','14','0','','','');
REPLACE INTO `item_db_re` VALUES ('1955','Wire_','Wire Whip','4','17500','8750','1000','95','0','0','2','3','524288','63','0','2','2','16',NULL,'1','14','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1956','Rante','Rante Whip','4','32000','16000','900','135','0','0','2','0','524288','63','2','2','3','30',NULL,'1','86','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1957','Rante_','Rante Whip','4','32000','16000','900','135','0','0','2','1','524288','63','2','2','3','30',NULL,'1','86','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1958','Tail','Tail Whip','4','41000','20500','700','105','0','0','2','1','524288','63','2','2','3','30',NULL,'1','87','0','bonus bLuk,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1959','Tail_','Tail Whip','4','41000','20500','700','105','0','0','2','2','524288','63','2','2','3','30',NULL,'1','87','0','bonus bLuk,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1960','Whip','Whip','4','38000','19000','700','120','0','0','2','1','524288','63','2','2','3','30',NULL,'1','88','0','','','');
-REPLACE INTO `item_db_re` VALUES ('1961','Whip_','Whip','4','38000','19000','700','120','0','0','2','2','524288','63','2','2','3','30',NULL,'1','88','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1956','Rante','Rante Whip','4','32000','16000','900','135','0','0','2','0','524288','63','0','2','3','30',NULL,'1','14','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1957','Rante_','Rante Whip','4','32000','16000','900','135','0','0','2','1','524288','63','0','2','3','30',NULL,'1','14','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1958','Tail','Tail Whip','4','41000','20500','700','105','0','0','2','1','524288','63','0','2','3','30',NULL,'1','14','0','bonus bLuk,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1959','Tail_','Tail Whip','4','41000','20500','700','105','0','0','2','2','524288','63','0','2','3','30',NULL,'1','14','0','bonus bLuk,3;','','');
+REPLACE INTO `item_db_re` VALUES ('1960','Whip','Whip','4','38000','19000','700','120','0','0','2','1','524288','63','0','2','3','30',NULL,'1','14','0','','','');
+REPLACE INTO `item_db_re` VALUES ('1961','Whip_','Whip','4','38000','19000','700','120','0','0','2','2','524288','63','0','2','3','30',NULL,'1','14','0','','','');
REPLACE INTO `item_db_re` VALUES ('1962','Lariat','Lariat Whip','4','20','10','400','100','0','0','2','0','524288','63','0','2','4','44',NULL,'1','14','0','bonus bDex,5; bonus bAgi,1;','','');
REPLACE INTO `item_db_re` VALUES ('1963','Rapture_Rose','Rapture Rose','4','20','10','300','115','0','0','2','0','524288','63','0','2','4','44',NULL,'1','14','0','bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,5000;','','');
REPLACE INTO `item_db_re` VALUES ('1964','Chemeti','Chemeti Whip','4','20','10','700','135','0','0','2','0','524288','63','0','2','4','44',NULL,'1','14','0','bonus bCritical,5; bonus bFlee,10; bonus bFlee2,2;','','');
@@ -1151,12 +1151,12 @@ REPLACE INTO `item_db_re` VALUES ('2007','Golden_Rod_Staff','Golden Rod Staff','
REPLACE INTO `item_db_re` VALUES ('2008','Aqua_Staff','Aqua Staff','4','20','10','900','30','230','0','1','2','512','56','2','34','4','100',NULL,'1','23','0','bonus bAtkEle,Ele_Water; bonus bInt,3; bonus2 bSkillAtk,MG_COLDBOLT,12; bonus2 bSkillAtk,MG_FROSTDIVER,12;','','');
REPLACE INTO `item_db_re` VALUES ('2009','Crimson_Staff','Crimson Staff','4','20','10','900','30','230','0','1','2','512','56','2','34','4','100',NULL,'1','23','0','bonus bAtkEle,Ele_Fire; bonus bInt,3; bonus2 bSkillAtk,MG_FIREBOLT,10; bonus2 bSkillAtk,MG_FIREBALL,10;','','');
REPLACE INTO `item_db_re` VALUES ('2010','Forest_Staff','Forest Staff','4','20','10','900','30','230','0','1','2','512','56','2','34','4','100',NULL,'1','23','0','bonus bAtkEle,Ele_Earth; bonus bInt,3; bonus2 bSkillAtk,WZ_EARTHSPIKE,10; bonus2 bSkillAtk,WZ_HEAVENDRIVE,10;','','');
-REPLACE INTO `item_db_re` VALUES ('2011','Golden_Rod_Staff2','Empowered Golden Rod Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','23','0','bonus bAtkEle,Ele_Wind; bonus bInt,5; bonus2 bSkillAtk,WZ_JUPITEL,30;','','');
-REPLACE INTO `item_db_re` VALUES ('2012','Aqua_Staff2','Empowered Aqua Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','23','0','bonus bAtkEle,Ele_Water; bonus bInt,5; bonus2 bSkillAtk,MG_COLDBOLT,30; bonus2 bSkillAtk,MG_FROSTDIVER,30;','','');
-REPLACE INTO `item_db_re` VALUES ('2013','Crimson_Staff2','Empowered Crimson Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','23','0','bonus bAtkEle,Ele_Fire; bonus bInt,5; bonus2 bSkillAtk,MG_FIREBOLT,30; bonus2 bSkillAtk,MG_FIREBALL,30;','','');
-REPLACE INTO `item_db_re` VALUES ('2014','Forest_Staff2','Empowered Forest Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','23','0','bonus bAtkEle,Ele_Earth; bonus bInt,5; bonus2 bSkillAtk,WZ_EARTHSPIKE,30; bonus2 bSkillAtk,WZ_HEAVENDRIVE,30;','','');
-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','23','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','23','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 ('2011','Golden_Rod_Staff2','Empowered Golden Rod Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','10','0','bonus bAtkEle,Ele_Wind; bonus bInt,5; bonus2 bSkillAtk,WZ_JUPITEL,30;','','');
+REPLACE INTO `item_db_re` VALUES ('2012','Aqua_Staff2','Empowered Aqua Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','10','0','bonus bAtkEle,Ele_Water; bonus bInt,5; bonus2 bSkillAtk,MG_COLDBOLT,30; bonus2 bSkillAtk,MG_FROSTDIVER,30;','','');
+REPLACE INTO `item_db_re` VALUES ('2013','Crimson_Staff2','Empowered Crimson Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','10','0','bonus bAtkEle,Ele_Fire; bonus bInt,5; bonus2 bSkillAtk,MG_FIREBOLT,30; bonus2 bSkillAtk,MG_FIREBALL,30;','','');
+REPLACE INTO `item_db_re` VALUES ('2014','Forest_Staff2','Empowered Forest Staff','4','20','10','900','30','270','0','1','1','512','56','2','34','4','130',NULL,'1','10','0','bonus bAtkEle,Ele_Earth; bonus bInt,5; bonus2 bSkillAtk,WZ_EARTHSPIKE,30; bonus2 bSkillAtk,WZ_HEAVENDRIVE,30;','','');
+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','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','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','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','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 ('2101','Guard','Guard','5','500','250','300','0','0','20','0','0','4294967295','63','2','32','0','0',NULL,'1','1','0','','','');
@@ -1218,7 +1218,7 @@ REPLACE INTO `item_db_re` VALUES ('2156','Bible_Of_Promise1','Bible of Promise(1
REPLACE INTO `item_db_re` VALUES ('2157','Insecticide','Pesticide','5','20','10','100','0','0','0','0','0','4294967295','63','2','32','0','0',NULL,'1','0','0','','','');
REPLACE INTO `item_db_re` VALUES ('2158','Ramor_Shield_Undead','Ramorushirudo','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('2159','Sharel_Shield','Sharerushirudo','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','','','');
-REPLACE INTO `item_db_re` VALUES ('2160','Giant_Shield','Giant Shield','5','56000','28000','2800','0','0','130','0','1','16512','56','2','32','0','100',NULL,'1','3','0','bonus2 bSubSize,Size_Large,5; if(getrefine()>=9) { bonus2 bSubSize,Size_Large,5; }','','');
+REPLACE INTO `item_db_re` VALUES ('2160','Giant_Shield','Giant Shield','5','56000','28000','2800','0','0','130','0','1','16512','56','2','32','0','100',NULL,'1','4','0','bonus2 bSubSize,Size_Large,5; if(getrefine()>=9) { bonus2 bSubSize,Size_Large,5; }','','');
REPLACE INTO `item_db_re` VALUES ('2161','Geffenia_Book_Water','Geffenia Water Book','5','56000','28000','1000','0','0','30','0','1','512','56','2','32','0','100',NULL,'1','5','0','bonus bMdef,2; bonus bInt,1; if(readparam(bInt)>=120) { bonus bMatk,10; bonus bMaxHP,800; }','','');
REPLACE INTO `item_db_re` VALUES ('2162','Bible_Of_Promise2','Bible of Promise(2nd Vol.)','5','56000','28000','500','0','0','20','0','1','256','56','2','32','0','140',NULL,'1','5','0','bonus bMdef,5; bonus bHealPower,5; skill ALL_ODINS_POWER,2;','','');
REPLACE INTO `item_db_re` VALUES ('2163','Flow_Shield','Floor Shield','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','','','');
@@ -1226,7 +1226,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','','','');
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','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','','','');
-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','4','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','if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,((getrefine()>12)?12:getrefine())-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','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','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','bonus bFlee,5;','','');
@@ -1236,7 +1236,7 @@ REPLACE INTO `item_db_re` VALUES ('2174','Lumiere_Shield','Lumiere Shield','5','
REPLACE INTO `item_db_re` VALUES ('2175','Esprit_Shield','Spirit Shield','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','','','');
REPLACE INTO `item_db_re` VALUES ('2176','Dark_Book','Black Book','5','20','10','500','0','0','80','0','1','4294967295','63','2','32','0','65',NULL,'1','5','0','bonus bMdef,5;','','');
REPLACE INTO `item_db_re` VALUES ('2190','Ancient_Shield_Of_Aeon','Ancient Shield Of Aeon','5','0','0','200','0','0','5','0','1','1040256','56','2','32','0','130',NULL,'1','2','0','bonus2 bSubEle,Ele_Neutral,10; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Holy,10; bonus2 bSubEle,Ele_Ghost,10; bonus bMaxHP,500; bonus bMaxSP,50; if(getrefine()>=14) skill MG_STONECURSE,5;','','');
-REPLACE INTO `item_db_re` VALUES ('2199','Ahura_Mazda','Ahura Mazdah','5','1','0','10','0','0','10000','0','0','4294967295','63','2','32','0','0',NULL,'0','2','0','bonus bUnbreakableShield,0; bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill CR_FULLPROTECTION,5; skill WZ_ESTIMATION,1; skill ST_FULLSTRIP,5; skill HW_MAGICPOWER,10; bonus bMaxHPrate,200; bonus bNoKnockback,0; bonus bDelayrate,-20; bonus bSpeedRate,25; bonus bIntravision,0;','sc_start4 SC_ENDURE,60000,10,0,0,1;','sc_end SC_ENDURE;');
+REPLACE INTO `item_db_re` VALUES ('2199','Ahura_Mazda','Ahura Mazdah','5','1','0','10','0','0','10000','0','0','4294967295','63','2','32','0','0',NULL,'0','0','0','bonus bUnbreakableShield,0; bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill CR_FULLPROTECTION,5; skill WZ_ESTIMATION,1; skill ST_FULLSTRIP,5; skill HW_MAGICPOWER,10; bonus bMaxHPrate,200; bonus bNoKnockback,0; bonus bDelayrate,-20; bonus bSpeedRate,25; bonus bIntravision,0;','sc_start4 SC_ENDURE,60000,10,0,0,1;','sc_end SC_ENDURE;');
REPLACE INTO `item_db_re` VALUES ('2201','Sunglasses','Sunglasses','5','5000','2500','100','0','0','0','0','0','4294967295','63','2','512','0','0',NULL,'0','12','0','bonus2 bResEff,Eff_Blind,500;','','');
REPLACE INTO `item_db_re` VALUES ('2202','Sunglasses_','Sunglasses','5','5000','2500','100','0','0','0','0','1','4294967295','63','2','512','0','0',NULL,'0','12','0','bonus2 bResEff,Eff_Blind,500;','','');
REPLACE INTO `item_db_re` VALUES ('2203','Glasses','Glasses','5','4000','2000','100','0','0','0','0','0','4294967295','63','2','512','0','0',NULL,'0','3','0','','','');
@@ -1617,7 +1617,7 @@ REPLACE INTO `item_db_re` VALUES ('2587','Siege_Muffler','WoE Muffler','5','10',
REPLACE INTO `item_db_re` VALUES ('2588','Ragamuffin_Cape_','Rag mantle','5','56000','28000','500','0','0','4','0','1','2147483646','63','2','4','0','40',NULL,'1','0','0','bonus bUnbreakableGarment,0; bonus bMdef,10;','','');
REPLACE INTO `item_db_re` VALUES ('2589','Fallen_Angel_Wing','Fallen Angel Wing','5','20','10','200','0','0','18','0','1','4294967295','63','2','4','0','0',NULL,'1','3','0','bonus bAllStats,1; bonus bAtk,readparam(bStr)/20; bonus bMatk,readparam(bInt)/20; bonus2 bSubEle,Ele_Neutral,readparam(bVit)/20; bonus bAspdRate,readparam(bAgi)/20; bonus bLongAtkRate,readparam(bDex)/20; bonus bCritAtkRate,readparam(bLuk)/20;','','');
REPLACE INTO `item_db_re` VALUES ('2590','Buwaya_Cloth','Buwaya Sack Cloth','5','20','10','200','0','0','8','0','0','4294967295','63','2','4','0','0',NULL,'1','0','0','bonus bHealPower2,getrefine()/3; bonus bAddItemHealRate,getrefine()/3; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10;','','');
-REPLACE INTO `item_db_re` VALUES ('2591','Bayani_Buwaya_Cloth','Buwaya Sack Cloth(Bayani)','5','20','10','200','0','0','8','0','1','4294967295','63','2','4','0','0',NULL,'1','0','0','bonus bHealPower2,getrefine(); bonus bAddItemHealRate,getrefine(); bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10;','','');
+REPLACE INTO `item_db_re` VALUES ('2591','Bayani_Buwaya_Cloth','Buwaya Sack Cloth(Bayani)','5','20','10','200','0','0','8','0','1','4294967295','63','2','4','0','1',NULL,'1','0','0','bonus bHealPower2,getrefine(); bonus bAddItemHealRate,getrefine(); bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10;','','');
REPLACE INTO `item_db_re` VALUES ('2592','Boss_Brownie_Manteau','Cloak of Domovoi','5','20','10','100','0','0','3','0','0','4294967295','63','2','4','0','50',NULL,'1','0','0','','','');
REPLACE INTO `item_db_re` VALUES ('2593','Flow_Manteau','Furowamanto','5','20','10','700','0','0','20','0','1','4294967295','63','2','4','0','65',NULL,'1','0','0','','','');
REPLACE INTO `item_db_re` VALUES ('2594','Wrapping_Manteau','Furoshiki Cloak','5','20','10','100','0','0','0','0','1','4294967295','63','2','4','0','0',NULL,'1','0','0','','','');
@@ -2834,7 +2834,7 @@ REPLACE INTO `item_db_re` VALUES ('5143','Kabuki_Mask','Kabuki Mask','5','50000'
REPLACE INTO `item_db_re` VALUES ('5144','Gambler_Hat','Gamble Hat','5','20','10','200','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','16','0','bonus bLuk,5;','','');
REPLACE INTO `item_db_re` VALUES ('5145','Carnival_Joker_Jester','Carnival Joker Jester','5','10','5','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','89','0','','','');
REPLACE INTO `item_db_re` VALUES ('5146','Elephant_Hat','Elephant Hat','5','0','0','500','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','215','0','bonus bVit,1; skill WZ_WATERBALL,1; if(getrefine()>8) bonus3 bAutoSpell,BS_GREED,1,10;','','');
-REPLACE INTO `item_db_re` VALUES ('5147','Baseball_Cap','Baseball Cap','5','0','0','200','0','0','5','0','1','4294967295','63','2','256','0','0',NULL,'1','216','0','','','');
+REPLACE INTO `item_db_re` VALUES ('5147','Baseball_Cap','Baseball Cap','5','0','0','200','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','216','0','','','');
REPLACE INTO `item_db_re` VALUES ('5148','Phrygian_Cap','Phrygian Cap','5','0','0','500','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','217','0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('5149','Silver_Tiara','Silver Tiara','5','0','0','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','218','0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('5150','Joker_Jester_','Joker Jester','5','20','10','100','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'0','219','0','bonus bSpeedRate,25;','','');
@@ -2879,12 +2879,12 @@ REPLACE INTO `item_db_re` VALUES ('5188','Minstrel_Hat','Creative Convention Hat
REPLACE INTO `item_db_re` VALUES ('5189','Fallen_Leaves','Autumn Leaves','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','241','0','bonus bMaxHP,40; bonus bMaxSP,40;','','');
REPLACE INTO `item_db_re` VALUES ('5190','Baseball_Cap_','Independence Memorial Hat','5','20','10','20','0','0','5','0','1','4294967295','63','2','256','0','0',NULL,'1','216','0','','','');
REPLACE INTO `item_db_re` VALUES ('5191','Ribbon_Black','Black Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','242','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5192','Ribbon_Yellow','Yellow Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','243','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5193','Ribbon_Green','Green Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','244','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5194','Ribbon_Pink','Pink Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','245','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5195','Ribbon_Red','Red Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','246','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5196','Ribbon_Orange','Orange Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','247','0','bonus bMdef,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5197','Ribbon_White','White Ribbon','5','800','400','100','0','0','1','0','0','4294967295','63','0','256','0','0',NULL,'1','248','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5192','Ribbon_Yellow','Yellow Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','243','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5193','Ribbon_Green','Green Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','244','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5194','Ribbon_Pink','Pink Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','245','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5195','Ribbon_Red','Red Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','246','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5196','Ribbon_Orange','Orange Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','247','0','bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5197','Ribbon_White','White Ribbon','5','800','400','100','0','0','1','0','1','4294967295','63','0','256','0','0',NULL,'1','248','0','bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('5198','Drooping_Bunny','Evolved Drooping Bunny','5','10','5','100','0','0','3','0','0','4294967295','63','0','256','0','0',NULL,'1','249','0','bonus bDex,1; bonus bFlee,2;','','');
REPLACE INTO `item_db_re` VALUES ('5199','Baseball_Cap_I','Baseball Cap','5','0','0','200','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','216','0','','','');
REPLACE INTO `item_db_re` VALUES ('5200','Coppola','Coppola','5','10','5','300','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','252','0','','','');
@@ -3178,7 +3178,7 @@ REPLACE INTO `item_db_re` VALUES ('5487','J_Poringcake_Hat','Poring Cake Hat','5
REPLACE INTO `item_db_re` VALUES ('5488','J_Twin_Santahat','Cute Santa Hat','5','20','10','100','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','390','0','bonus bLuk,1; bonus bMdef,1;','','');
REPLACE INTO `item_db_re` VALUES ('5489','Love_Daddy','Love Daddy Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','484','0','bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('5490','Anubis_Helm','Anubis Helm','5','20','10','0','0','0','8','0','0','4294967295','63','2','768','0','65',NULL,'0','485','0','bonus bUnbreakableHelm,0; bonus bMdef,5; bonus2 bSubRace,RC_Boss,10; bonus bHealPower2,10; bonus bAddItemHealRate,10;','','');
-REPLACE INTO `item_db_re` VALUES ('5491','Hat_Of_Outlaw','Bandit Hat','5','20','10','800','0','0','6','0','1','4294967295','63','2','256','0','0',NULL,'1','486','0','bonus bStr,2; bonus2 bSubEle,Ele_Fire,10;','','');
+REPLACE INTO `item_db_re` VALUES ('5491','Hat_Of_Outlaw','Bandit Hat','5','20','10','800','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'1','486','0','bonus bStr,2; bonus2 bSubEle,Ele_Fire,10;','','');
REPLACE INTO `item_db_re` VALUES ('5492','Boy\'s_Cap_I','Student Cap','5','0','0','0','0','0','10','0','0','2147483646','63','2','256','0','0',NULL,'0','102','0','bonus bMdef,3; bonus2 bAddRace,RC_DemiHuman,5;','','');
REPLACE INTO `item_db_re` VALUES ('5493','Ulle_Cap_I','Ulle\'s Cap','5','0','0','0','0','0','12','0','0','2147483646','63','2','256','0','0',NULL,'0','254','0','bonus bDex,2; bonus bAgi,1;','','');
REPLACE INTO `item_db_re` VALUES ('5494','Spinx_Helm_I','Sphinx Hat','5','0','0','0','0','0','10','0','0','16514','63','2','257','0','0',NULL,'0','137','0','bonus bStr,5;','','');
@@ -3188,13 +3188,13 @@ REPLACE INTO `item_db_re` VALUES ('5497','King_Tiger_Doll_Hat','Edgga Doll','5',
REPLACE INTO `item_db_re` VALUES ('5498','Wondering_Wolf_Helm','Vagabond Wolf Hat','5','20','10','600','0','0','5','0','1','4294967295','63','2','768','0','20',NULL,'1','490','0','bonus bVit,5; bonus bFlee,10;','','');
REPLACE INTO `item_db_re` VALUES ('5499','Pizza_Hat','Pizza Pie of Plenty','5','20','10','600','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'0','487','0','skill SM_PROVOKE,1;','','');
REPLACE INTO `item_db_re` VALUES ('5500','Icecream_Hat','Ice Cream Hat','5','20','10','300','0','0','6','0','0','4294967295','63','2','256','0','30',NULL,'1','488','0','bonus bMdef,3; skill MG_FROSTDIVER,3;','','');
-REPLACE INTO `item_db_re` VALUES ('5501','Pirate\'s_Pride','Pirate\'s Pride','5','0','0','100','0','0','6','0','1','4294967295','63','2','256','0','10',NULL,'0','496','0','bonus bUnbreakableHelm,0; bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5;','','');
+REPLACE INTO `item_db_re` VALUES ('5501','Pirate\'s_Pride','Pirate\'s Pride','5','0','0','100','0','0','6','0','0','4294967295','63','2','256','0','10',NULL,'0','496','0','bonus bUnbreakableHelm,0; bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5;','','');
REPLACE INTO `item_db_re` VALUES ('5502','Necromencer\'s_Hood','Necromancer\'s Hood','5','0','0','500','0','0','6','0','0','4294967295','63','2','768','0','0',NULL,'1','491','0','bonus bMdef,3; bonus bInt,3; bonus5 bAutoSpellWhenHit,NPC_DARKSTRIKE,5,5,BF_WEAPON|BF_MAGIC,1;','','');
REPLACE INTO `item_db_re` VALUES ('5503','Rabbit_Magic_Hat','Rabbit Magic Hat','5','0','0','800','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','497','0','bonus bDex,2; bonus bAgi,2; bonus bMdef,1; bonus bMaxSP,50; bonus3 bAutoSpellWhenHit,MG_FIREBOLT,1,20; bonus3 bAutoSpellWhenHit,MG_COLDBOLT,1,20; bonus3 bAutoSpellWhenHit,MG_LIGHTNINGBOLT,1,20;','','');
REPLACE INTO `item_db_re` VALUES ('5504','China_Wedding_Veil','RO 5th Wedding Anniversary','5','0','0','500','0','0','5','0','0','4294967295','63','2','769','0','70',NULL,'0','489','0','bonus bMdef,10;','','');
REPLACE INTO `item_db_re` VALUES ('5505','Asara_Fairy_Hat','Ashura Fairy Hat','5','0','0','500','0','0','2','0','0','4294967295','63','2','768','0','50',NULL,'1','492','0','skill DC_DONTFORGETME,1; bonus bDex,2; bonus bLuk,2;','','');
-REPLACE INTO `item_db_re` VALUES ('5506','Blue_Pajamas_Hat','Blue Pajamas Hat','5','0','0','100','0','0','4','0','1','4294967295','63','2','256','0','0',NULL,'1','501','0','bonus bBaseAtk,5; bonus bMatkRate,5;','','');
-REPLACE INTO `item_db_re` VALUES ('5507','Pink_Pajamas_Hat','Pink Pajamas Hat','5','0','0','100','0','0','4','0','1','4294967295','63','2','256','0','0',NULL,'1','502','0','bonus bBaseAtk,5; bonus bMatkRate,5;','','');
+REPLACE INTO `item_db_re` VALUES ('5506','Blue_Pajamas_Hat','Blue Pajamas Hat','5','0','0','100','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','501','0','bonus bBaseAtk,5; bonus bMatkRate,5;','','');
+REPLACE INTO `item_db_re` VALUES ('5507','Pink_Pajamas_Hat','Pink Pajamas Hat','5','0','0','100','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','502','0','bonus bBaseAtk,5; bonus bMatkRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('5508','Shark_Hat','Shark Hat','5','20','10','500','0','0','6','0','0','4294967295','63','2','256','0','0',NULL,'1','503','0','bonus bStr,1; bonus bAgi,2; bonus bMdef,1; bonus2 bAddEle,Ele_Water,5; bonus2 bSubEle,Ele_Water,10;','','');
REPLACE INTO `item_db_re` VALUES ('5509','Sting_Hat','Sting Hat','5','20','10','1000','0','0','10','0','0','4294967295','63','2','256','0','0',NULL,'1','504','0','bonus bStr,2; bonus bVit,1; bonus bMdef,3; bonus2 bAddEle,Ele_Fire,5; bonus2 bSubEle,Ele_Earth,5; bonus3 bAutoSpell,WZ_EARTHSPIKE,1,10;','','');
REPLACE INTO `item_db_re` VALUES ('5510','Shower_Cap','Shower Cap','5','20','10','0','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','507','0','bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,RC_Fish,10;','','');
@@ -3255,7 +3255,7 @@ REPLACE INTO `item_db_re` VALUES ('5564','Crown_Of_Deceit','Crown of Deceit','5'
REPLACE INTO `item_db_re` VALUES ('5565','Dragon_Arhat_Mask','Dragon Arhat Mask','5','40000','20000','0','0','0','5','0','0','4294967295','63','2','513','0','0',NULL,'0','545','0','bonus2 bAddRace,RC_DemiHuman,10;','','');
REPLACE INTO `item_db_re` VALUES ('5566','Tiger_Arhat_Mask','Tiger Arhat Mask','5','40000','20000','0','0','0','1','0','0','4294967295','63','2','513','0','0',NULL,'0','546','0','bonus2 bAddRace,RC_DemiHuman,2;','','');
REPLACE INTO `item_db_re` VALUES ('5567','Bright_Fury','Rage Of Luster','5','20','10','300','0','0','5','0','1','4294967295','63','2','256','0','0',NULL,'1','548','0','bonus bStr,1; bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bAspdRate,2;','','');
-REPLACE INTO `item_db_re` VALUES ('5568','Rabbit_Bonnet','Rabbit Bonnet','5','20','10','1000','0','0','4','0','1','4294967295','63','2','768','0','0',NULL,'1','549','0','bonus bInt,2; bonus bDelayrate,-3;','','');
+REPLACE INTO `item_db_re` VALUES ('5568','Rabbit_Bonnet','Rabbit Bonnet','5','20','10','1000','0','0','4','0','0','4294967295','63','2','768','0','0',NULL,'1','549','0','bonus bInt,2; bonus bDelayrate,-3;','','');
REPLACE INTO `item_db_re` VALUES ('5569','Gemini_Diadem','Gemini Diadem','5','20','10','300','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','550','0','bonus bDex,2; bonus bAgi,2; bonus bMatkRate,2; if(getrefine()>6) { bonus bMdef,7; bonus bMatkRate,8; bonus2 bSubEle,Ele_Wind,5; }','','');
REPLACE INTO `item_db_re` VALUES ('5570','Gemini_Crown','Gemini Crown','5','20','10','300','0','0','6','0','1','4294967295','63','2','256','0','0',NULL,'1','551','0','bonus bAgi,2; bonus bBaseAtk,2; bonus bMdef,5; if(getrefine()>6) { bonus bDef,1; bonus bMatk,15; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; }','','');
REPLACE INTO `item_db_re` VALUES ('5571','Rasta_Wig','Rasta Wig','5','20','10','100','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','552','0','bonus bStr,1;','','');
@@ -3293,7 +3293,7 @@ REPLACE INTO `item_db_re` VALUES ('5602','Jaguar_Hat_J','Jaguar Face','5','20','
REPLACE INTO `item_db_re` VALUES ('5603','RTC_Winner_Only','RWC Statue(Winner)','5','0','0','250','0','0','8','0','1','4294967295','63','2','256','0','0',NULL,'1','577','0','bonus bUnbreakableHelm,0; bonus bAllStats,3; bonus bAspdRate,10; bonus2 bAddRace,RC_DemiHuman,5;','','');
REPLACE INTO `item_db_re` VALUES ('5604','RTC_Second_Best','RWC Statue(Second)','5','0','0','250','0','0','6','0','1','4294967295','63','2','256','0','0',NULL,'1','578','0','bonus bUnbreakableHelm,0; bonus bAllStats,2; bonus bAspdRate,7; bonus2 bAddRace,RC_DemiHuman,3;','','');
REPLACE INTO `item_db_re` VALUES ('5605','RTC_Third_Best','RWC Statue(3rd)','5','0','0','250','0','0','4','0','1','4294967295','63','2','256','0','0',NULL,'1','579','0','bonus bUnbreakableHelm,0; bonus bAllStats,1; bonus bAspdRate,5; bonus2 bAddRace,RC_DemiHuman,1;','','');
-REPLACE INTO `item_db_re` VALUES ('5606','Campume_Hat','American Helm','5','500','250','1200','0','0','4','0','1','4294967295','63','2','256','0','3',NULL,'1','580','0','bonus bAllStats,1;','','');
+REPLACE INTO `item_db_re` VALUES ('5606','Campume_Hat','American Helm','5','500','250','1200','0','0','4','0','0','4294967295','63','2','256','0','3',NULL,'1','580','0','bonus bAllStats,1;','','');
REPLACE INTO `item_db_re` VALUES ('5607','Lyria_Doll_Hat','Lyria Doll Hat','5','0','0','500','0','0','0','0','1','4294967295','63','2','256','0','60',NULL,'0','581','0','bonus bMaxHP,500; bonus2 bSubRace,RC_DemiHuman,5;','','');
REPLACE INTO `item_db_re` VALUES ('5608','Dorothy_Doll_Hat','Dorothy Doll Hat','5','0','0','500','0','0','0','0','1','4294967295','63','2','256','0','60',NULL,'0','582','0','bonus bMaxHP,80; bonus2 bSubRace,RC_DemiHuman,5;','','');
REPLACE INTO `item_db_re` VALUES ('5609','Chung_Hairband','Chung Hairpin','5','45000','22500','500','0','0','5','0','1','4294967295','63','2','256','0','60',NULL,'0','583','0','bonus bLuk,3; bonus bMdef,4; bonus3 bAutoSpellWhenHit,MC_MAMMONITE,5,5;','','');
@@ -3364,7 +3364,7 @@ REPLACE INTO `item_db_re` VALUES ('5673','Home_Cherry_Blossom','Nostalgic Sakura
REPLACE INTO `item_db_re` VALUES ('5674','Pig_Moneybox','Piggie Bank','5','20','10','1000','0','0','3','0','0','4294967295','63','2','256','0','10',NULL,'0','603','0','','','');
REPLACE INTO `item_db_re` VALUES ('5675','Poring_Letter','Poring Letter','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','10',NULL,'0','604','0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('5676','Scorpio_Crown','Scorpio Crown','5','20','10','300','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','605','0','','','');
-REPLACE INTO `item_db_re` VALUES ('5677','Scorpio_Diadem','Scorpio Diadem','5','20','10','300','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','606','0','bonus bDex,2;','','');
+REPLACE INTO `item_db_re` VALUES ('5677','Scorpio_Diadem','Scorpio Diadem','5','20','10','300','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','606','0','bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('5678','Notation_Hairband','Musical Note Headband','5','200','100','100','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','607','0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('5679','Engineer_Cap','Engineer Cap','5','20','10','200','0','0','2','0','1','4294967295','63','2','256','0','10',NULL,'1','608','0','','','');
REPLACE INTO `item_db_re` VALUES ('5680','Hawkeyes','Hawk Eye','5','20','10','100','0','0','0','0','0','4294967295','63','2','512','0','10',NULL,'0','609','0','bonus bUnbreakableHelm,0;','','');
@@ -3376,12 +3376,12 @@ REPLACE INTO `item_db_re` VALUES ('5685','Prontera_Army_Cap_Repl','A Military Ca
REPLACE INTO `item_db_re` VALUES ('5686','Feather_Bonnet_Repl','A Hat With Nice Feather','5','20','10','100','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','104','0','','','');
REPLACE INTO `item_db_re` VALUES ('5687','Viking_Helm_Repl','Light Hornhelm','5','20','10','100','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','86','0','','','');
REPLACE INTO `item_db_re` VALUES ('5688','2009Love_Daddy','2009 Love Dad','5','20','10','100','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','611','0','bonus bVit,2;','','');
-REPLACE INTO `item_db_re` VALUES ('5689','Queen_Ant_Diadem','Ant Queen Crown','5','20','10','300','0','0','1','0','1','4294967295','63','2','256','0','75',NULL,'1','612','0','','','');
+REPLACE INTO `item_db_re` VALUES ('5689','Queen_Ant_Diadem','Ant Queen Crown','5','20','10','300','0','0','1','0','0','4294967295','63','2','256','0','75',NULL,'1','612','0','','','');
REPLACE INTO `item_db_re` VALUES ('5690','Red_Wing_Hat','Red Wing Hat','5','20','10','600','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','613','0','if(getrefine()>6) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; } if(getrefine()>8) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; }','','');
-REPLACE INTO `item_db_re` VALUES ('5691','Catain_Bandanna','Sailor\'s Bandana','5','20','10','10','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','542','0','bonus bUnbreakableHelm,0; bonus bDex,1; bonus2 bSubEle,Ele_Poison,20;','','');
+REPLACE INTO `item_db_re` VALUES ('5691','Catain_Bandanna','Sailor\'s Bandana','5','20','10','10','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','542','0','bonus bUnbreakableHelm,0; bonus bDex,1; bonus2 bSubEle,Ele_Poison,20;','','');
REPLACE INTO `item_db_re` VALUES ('5692','Sea_Cat_Hat','Sea Cat Hat','5','20','10','10','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','539','0','bonus bUnbreakableHelm,0; bonus bDex,1;','','');
REPLACE INTO `item_db_re` VALUES ('5693','No_Fear_Underware','NoFear Underwear','5','0','0','0','0','0','10','0','0','4294967295','63','2','256','0','20',NULL,'0','30','0','bonus bStr,1; bonus bInt,1; bonus bDex,1; bonus bUnbreakableHelm,0;','','');
-REPLACE INTO `item_db_re` VALUES ('5694','No_Fear_P_Headgear','NoFear Headband','5','0','0','0','0','0','1','0','1','2147483646','63','2','256','0','20',NULL,'0','614','0','bonus bVit,1; bonus bUnbreakableHelm,0;','','');
+REPLACE INTO `item_db_re` VALUES ('5694','No_Fear_P_Headgear','NoFear Headband','5','0','0','0','0','0','1','0','0','2147483646','63','2','256','0','20',NULL,'0','614','0','bonus bVit,1; bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('5695','E_Blue_Drooping_Kitty','E Blue Drooping Kitty','5','250000','125000','500','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','277','0','bonus bMdef,15;','','');
REPLACE INTO `item_db_re` VALUES ('5696','E_Flying_Angel','E Flying Angel','5','20','10','300','0','0','1','0','0','4294967295','63','2','256','0','10',NULL,'1','264','0','bonus bInt,1; bonus bAgi,1;','','');
REPLACE INTO `item_db_re` VALUES ('5697','E_Smoking_Pipe_','E Smoking Pipe ','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','55','0','bonus bVit,1;','','');
@@ -3448,7 +3448,7 @@ REPLACE INTO `item_db_re` VALUES ('5757','Schmidt_Helm','Dip Schmidt Helm','5','
REPLACE INTO `item_db_re` VALUES ('5758','Dying_Swan','Dying Swan','5','20','10','100','0','0','12','0','1','524288','56','2','256','0','100',NULL,'1','635','0','bonus bInt,1; bonus bLuk,1; bonus bMdef,5; bonus bLongAtkRate,5; bonus bUseSPrate,-10;','','');
REPLACE INTO `item_db_re` VALUES ('5759','Noah_Hat','Noa\'s Hat','5','20','10','500','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','636','0','bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('5760','Driver_Band_','Driver Band','5','20','10','100','0','0','12','0','1','1024','56','2','256','0','100',NULL,'1','637','0','bonus bStr,1; bonus bDex,1; bonus bMdef,5; if(readparam(bStr)>=120) { bonus bBaseAtk,10; bonus bCritical,3; }','','');
-REPLACE INTO `item_db_re` VALUES ('5761','Sloth_Hat','Sloth Hat','5','20','10','800','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','638','0','bonus bAgi,2;','','');
+REPLACE INTO `item_db_re` VALUES ('5761','Sloth_Hat','Sloth Hat','5','20','10','800','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','638','0','bonus bAgi,2;','','');
REPLACE INTO `item_db_re` VALUES ('5762','Duneyrr_Helm','Duneyrr Hat','5','20','10','100','0','0','5','0','0','4294967295','63','2','256','0','0',NULL,'1','639','0','bonus bStr,1; bonus bInt,1; bonus bVit,1; bonus bDex,1; bonus bAgi,1; bonus bLuk,1; bonus bMdef,5;','','');
REPLACE INTO `item_db_re` VALUES ('5763','Red_Bunny_Band','Red Bunny Band','5','0','0','200','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','640','0','bonus bAgi,2; bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('5764','Love_Rabbit_Hood','Love Rabbit Hood','5','20','10','300','0','0','1','0','1','4294967295','63','2','769','0','10',NULL,'0','549','0','bonus3 bAutoSpell,PR_GLORIA,3,((readparam(bAgi)>=80)?30:10);','','');
@@ -3457,22 +3457,22 @@ REPLACE INTO `item_db_re` VALUES ('5766','Amistr_Cap','Amistr Hat','5','20','10'
REPLACE INTO `item_db_re` VALUES ('5767','Samurai_Mask','Samurai Mask','5','40000','20000','300','0','0','1','0','0','4294967295','63','2','1','0','50',NULL,'0','644','0','bonus2 bAddRace,RC_NonBoss,1; bonus2 bAddRace,RC_Boss,1;','','');
REPLACE INTO `item_db_re` VALUES ('5768','Sakura_Coronet','Cherry Blossom Crown','5','20','10','800','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','645','0','bonus bMdef,3; bonus bMaxSP,25;','','');
REPLACE INTO `item_db_re` VALUES ('5769','Gold_Angel_Sculpture','Estatua Peque? Angel Oro','5','100','50','0','0','0','2','0','0','4294967295','63','2','256','0','70',NULL,'0','646','0','bonus bUnbreakableHelm,0; skill RG_GRAFFITI,1;','','');
-REPLACE INTO `item_db_re` VALUES ('5770','Splash_Hat','Splash Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','649','0','autobonus \"{ sc_start SC_PROPERTYWIND,180000,1; }\",3,180000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";','','');
-REPLACE INTO `item_db_re` VALUES ('5771','Family_Hat','Family Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','650','0','bonus bDex,1; bonus bMdef,1; bonus bMaxHPrate,2; bonus bMaxSPrate,2; skill PR_MAGNIFICAT,1;','','');
+REPLACE INTO `item_db_re` VALUES ('5770','Splash_Hat','Splash Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','349','0','autobonus \"{ sc_start SC_PROPERTYWIND,180000,1; }\",3,180000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";','','');
+REPLACE INTO `item_db_re` VALUES ('5771','Family_Hat','Family Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','109','0','bonus bDex,1; bonus bMdef,1; bonus bMaxHPrate,2; bonus bMaxSPrate,2; skill PR_MAGNIFICAT,1;','','');
REPLACE INTO `item_db_re` VALUES ('5772','Red_Navy_Hat','Blood Admiral\'s Hat','5','3000','1500','500','0','0','1','0','0','4294967295','63','2','256','0','95',NULL,'1','651','0','','','');
REPLACE INTO `item_db_re` VALUES ('5773','Navy_Beret','Navy Blue Beret','5','3000','1500','500','0','0','1','0','0','4294967295','63','2','256','0','95',NULL,'1','652','0','','','');
REPLACE INTO `item_db_re` VALUES ('5774','Red_Pirate_Hat','Scallywag\'s Hat','5','3000','1500','500','0','0','1','0','0','4294967295','63','2','256','0','95',NULL,'1','496','0','','','');
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','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','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','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','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 ('5779','Drooping_Boto','Drooping Boto','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','657','0','bonus bInt,2;','','');
+REPLACE INTO `item_db_re` VALUES ('5778','Blue_Arara_Hat','Turkey On Your Head','5','20','10','100','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','656','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 ('5779','Drooping_Boto','Drooping Boto','5','20','10','100','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','657','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','','','');
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','bonus bUnbreakableHelm,0; bonus bFlee,1; bonus bMaxSP,20;','','');
REPLACE INTO `item_db_re` VALUES ('5782','Hoplite_Helmet','Legionaire Helm','5','20','10','700','0','0','4','0','1','4294967295','63','2','769','0','0',NULL,'1','660','0','bonus bMaxHPrate,3; if(isequipped(1407))||(isequipped(1219)) { bonus bAtkRate,3; } if(isequipped(2125)) bonus bDef,2;','','');
-REPLACE INTO `item_db_re` VALUES ('5783','YellowBunny_Hairband','YellowBunny Hairband','5','20','10','200','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','662','0','bonus bStr,1; bonus bInt,1; bonus bDex,2;','','');
-REPLACE INTO `item_db_re` VALUES ('5784','PinkBunny_Hairband','Pink Bunny Band','5','20','10','200','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','663','0','bonus bStr,1; bonus bInt,2; bonus bDex,1;','','');
-REPLACE INTO `item_db_re` VALUES ('5785','Green_Bunny_Hairband','Green Bunny Band','5','20','10','200','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','664','0','bonus bStr,2; bonus bInt,1; bonus bDex,1;','','');
+REPLACE INTO `item_db_re` VALUES ('5783','YellowBunny_Hairband','YellowBunny Hairband','5','20','10','200','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','662','0','bonus bStr,1; bonus bInt,1; bonus bDex,2;','','');
+REPLACE INTO `item_db_re` VALUES ('5784','PinkBunny_Hairband','Pink Bunny Band','5','20','10','200','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','663','0','bonus bStr,1; bonus bInt,2; bonus bDex,1;','','');
+REPLACE INTO `item_db_re` VALUES ('5785','Green_Bunny_Hairband','Green Bunny Band','5','20','10','200','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','664','0','bonus bStr,2; bonus bInt,1; bonus bDex,1;','','');
REPLACE INTO `item_db_re` VALUES ('5786','Ancient_Elven_Ear','Ancient Fairy Ears','5','10','5','200','0','0','1','0','0','4294967295','63','2','512','0','0',NULL,'0','665','0','bonus bUnbreakableHelm,0; bonus bLuk,1; bonus bMaxHP,100; bonus bMaxSP,30;','','');
REPLACE INTO `item_db_re` VALUES ('5787','Tha_Maero_Mask','Tha Maero Mask','5','20','10','100','0','0','0','0','0','4294967295','63','2','513','0','30',NULL,'0','666','0','bonus bUnbreakableHelm,0; bonus bMdef,2;','','');
REPLACE INTO `item_db_re` VALUES ('5788','3D_Glasses','3D Glasses','5','20','10','100','0','0','1','0','0','4294967295','63','2','512','0','0',NULL,'0','661','0','bonus bUnbreakableHelm,0; bonus2 bSubEle,Ele_Neutral,5; bonus2 bMagicAddRace,RC_Formless,4;','','');
@@ -3482,7 +3482,7 @@ REPLACE INTO `item_db_re` VALUES ('5791','Tenkaippin_Ramen','Tenkaippin Ramen','
REPLACE INTO `item_db_re` VALUES ('5792','Fish_Pin','Fish Pin','5','20','10','100','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','669','0','bonus2 bSubRace,RC_Fish,1;','','');
REPLACE INTO `item_db_re` VALUES ('5793','Ribbon_Of_Life','Life Ribbon','5','20','10','0','0','0','2','0','0','4294967295','63','2','512','0','0',NULL,'0','575','0','bonus bUnbreakableHelm,0; bonus bInt,1; bonus bMdef,2;','','');
REPLACE INTO `item_db_re` VALUES ('5794','3D_Glasses_','3D Glasses','5','20','10','0','0','0','1','0','0','4294967295','63','2','512','0','0',NULL,'0','661','0','','','');
-REPLACE INTO `item_db_re` VALUES ('5795','Red_Dress_Hat','Bright Red Dress Hat','5','20','10','0','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','670','0','bonus bMdef,7;','','');
+REPLACE INTO `item_db_re` VALUES ('5795','Red_Dress_Hat','Bright Red Dress Hat','5','20','10','0','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','670','0','bonus bMdef,7;','','');
REPLACE INTO `item_db_re` VALUES ('5796','Cheer_Scarf','Cheering scarf','5','0','0','0','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','369','0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace,RC_Boss,10; bonus2 bExpAddRace,RC_NonBoss,10;','','');
REPLACE INTO `item_db_re` VALUES ('5797','Cheer_Scarf2','Cheering scarf II','5','0','0','0','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','369','0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace,RC_Boss,20; bonus2 bExpAddRace,RC_NonBoss,20;','','');
REPLACE INTO `item_db_re` VALUES ('5798','Cheer_Scarf3','Cheering scarf III','5','0','0','0','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','369','0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace,RC_Boss,30; bonus2 bExpAddRace,RC_NonBoss,30;','','');
@@ -3511,7 +3511,7 @@ REPLACE INTO `item_db_re` VALUES ('5820','Black_Elven_Ears','Black Fairy Ears','
REPLACE INTO `item_db_re` VALUES ('5821','Gold_Tulip_Hairpin','Golden Tulip Hairpin','5','10','5','100','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','499','0','bonus2 bExpAddRace,RC_Boss,5; bonus2 bExpAddRace,RC_NonBoss,5;','','');
REPLACE INTO `item_db_re` VALUES ('5822','Love_Chick_Hat','Chicken Of Love Hat','5','10000','5000','100','0','0','4','0','0','4294967295','63','2','256','0','0',NULL,'1','500','0','bonus bLuk,4; bonus bMaxHP,100; bonus bMaxSP,100; bonus2 bSubRace,RC_Brute,7; bonus2 bSubRace,RC_DemiHuman,7;','','');
REPLACE INTO `item_db_re` VALUES ('5823','Love_Arrow','Arrow Of Love','5','5000','2500','100','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','bonus bDex,5; bonus bAgi,5;','','');
-REPLACE INTO `item_db_re` VALUES ('5824','Fools_Day_Hat','April Fool\'s Day Hat','5','20','10','300','0','0','6','0','1','4294967295','63','2','256','0','30',NULL,'1','265','0','','','');
+REPLACE INTO `item_db_re` VALUES ('5824','Fools_Day_Hat','April Fool\'s Day Hat','5','20','10','300','0','0','6','0','0','4294967295','63','2','256','0','30',NULL,'1','265','0','','','');
REPLACE INTO `item_db_re` VALUES ('5825','Badge_Of_Order_Grace','Knight Of Honor Badge','5','0','0','0','0','0','1','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','bonus bAtkRate, 10; bonus bMatkRate, 10; bonus bMaxHP, 1500; bonus bMdef,1;','','');
REPLACE INTO `item_db_re` VALUES ('5826','Valkyrie_Helmet','Helm Of Valkyrie','5','0','0','0','0','0','10','0','0','4294967295','63','2','256','0','0',NULL,'0','225','0','bonus bStr,2; bonus bInt,2; bonus bDex,2; bonus bAgi,2; bonus bMdef,5;','','');
REPLACE INTO `item_db_re` VALUES ('5827','Book_File_Hat','Book Hat','5','20','10','100','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','423','0','','','');
@@ -6196,7 +6196,7 @@ REPLACE INTO `item_db_re` VALUES ('13001','Dragon_Killer','Dragon Killer','4','2
REPLACE INTO `item_db_re` VALUES ('13002','Ginnungagap','Ginnungagap','4','20','10','700','148','0','0','1','0','579821295','63','2','2','4','70',NULL,'1','1','0','bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50;','','');
REPLACE INTO `item_db_re` VALUES ('13003','Coward','Cowardice Blade','4','52000','26000','700','80','0','0','1','1','570560576','63','2','2','3','55',NULL,'1','1','0','bonus bDef,5;','','');
REPLACE INTO `item_db_re` VALUES ('13004','Coward_','Cowardice Blade','4','52000','26000','700','80','0','0','1','2','570560576','63','2','2','3','55',NULL,'1','1','0','bonus bDef,5;','','');
-REPLACE INTO `item_db_re` VALUES ('13005','Angelwing_Short_Sword','Angelic Wing Dagger','4','20','10','600','120','0','0','1','2','1','47','2','2','4','50',NULL,'1','1','0','','','');
+REPLACE INTO `item_db_re` VALUES ('13005','Angelwing_Short_Sword','Angelic Wing Dagger','4','20','10','600','120','0','0','1','1','1','47','2','2','4','50',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('13006','Khukri','Khukri','4','240000','120000','600','150','0','0','1','0','570425344','1','2','2','3','65',NULL,'1','1','0','bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,1000;','','');
REPLACE INTO `item_db_re` VALUES ('13007','Jitte','Jitte','4','20000','10000','400','70','0','0','1','0','570425344','1','2','2','2','35',NULL,'1','1','0','bonus bBreakWeaponRate,200;','','');
REPLACE INTO `item_db_re` VALUES ('13008','Jitte_','Jitte','4','20000','10000','400','70','0','0','1','1','570425344','1','2','2','2','35',NULL,'1','1','0','bonus bBreakWeaponRate,200;','','');
@@ -6240,7 +6240,7 @@ REPLACE INTO `item_db_re` VALUES ('13045','Kamaitachi_I','Kamaitachi','4','0','0
REPLACE INTO `item_db_re` VALUES ('13046','Krieg','Krieg','4','20','10','500','110','0','0','1','3','135232','58','2','2','2','50',NULL,'1','1','0','bonus3 bAddEffOnSkill,RG_BACKSTAP,Eff_Bleeding,1000; bonus2 bSkillAtk,RG_BACKSTAP,15;','','');
REPLACE INTO `item_db_re` VALUES ('13047','Weihna','Weihna','4','20','10','500','135','0','0','1','2','135232','58','2','2','3','50',NULL,'1','1','0','bonus3 bAddEffOnSkill,RG_RAID,Eff_Poison,1000; autobonus \"{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }\",5,5000,BF_WEAPON|BF_SHORT,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db_re` VALUES ('13048','Damascus_C','Damascus','4','0','0','0','153','0','0','1','0','579821294','63','2','2','3','0',NULL,'0','1','0','bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
-REPLACE INTO `item_db_re` VALUES ('13049','Lacma','Lacma','4','20','10','650','45','0','0','1','1','579821295','63','2','2','3','0',NULL,'1','38','0','','','');
+REPLACE INTO `item_db_re` VALUES ('13049','Lacma','Lacma','4','20','10','650','45','0','0','1','1','579821295','63','2','2','3','0',NULL,'1','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('13050','P_Dagger1','Eden Dagger I','4','0','0','0','124','60','0','1','0','579821295','63','2','2','2','26',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('13051','P_Dagger2','Eden Dagger II','4','0','0','0','158','70','0','1','0','579821295','63','2','2','2','40',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('13052','Tourist_Dagger','Traveler\'s Dagger','4','0','0','500','51','0','0','1','0','579821295','63','2','2','1','0',NULL,'0','1','0','bonus bUnbreakableWeapon,0; bonus bAgi,2;','','');
@@ -6426,8 +6426,8 @@ REPLACE INTO `item_db_re` VALUES ('13408','Fire_Brand_C','Refined Fireblend','4'
REPLACE INTO `item_db_re` VALUES ('13409','Immaterial_Sword_C','Refined Immaterial Sword','4','1','0','0','160','0','0','1','0','414946','63','2','2','4','0',NULL,'0','2','0','bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,45,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13410','BF_Sword1','Valorous Gladiator Blade','4','20','10','0','115','0','0','1','0','414947','63','2','2','3','80',NULL,'1','2','0','bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13411','BF_Sword2','Brave Gladiator Blade','4','20','10','0','115','74','0','1','0','414947','63','2','2','3','80',NULL,'1','2','0','bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bMatkRate,10; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('13412','Twin_Edge_B','Twin Edge of Naght Sieger','4','20','10','1500','150','0','0','1','3','414946','58','2','2','4','75',NULL,'1','45','0','bonus bAtkEle,Ele_Water; skill MG_FROSTDIVER,5; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
-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','46','0','bonus bAtkEle,Ele_Fire; skill WZ_METEOR,3; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
+REPLACE INTO `item_db_re` VALUES ('13412','Twin_Edge_B','Twin Edge of Naght Sieger','4','20','10','1500','150','0','0','1','3','414946','58','2','2','4','75',NULL,'1','2','0','bonus bAtkEle,Ele_Water; skill MG_FROSTDIVER,5; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
+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','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','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','','','');
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','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; }','','');
@@ -7988,9 +7988,9 @@ REPLACE INTO `item_db_re` VALUES ('18634','Green_Poring_Pin','Green Poring Hairp
REPLACE INTO `item_db_re` VALUES ('18635','Blue_Poring_Pin','Blue Poring Hairpin','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','789','0','','','');
REPLACE INTO `item_db_re` VALUES ('18636','Bridal_Ribbon','Ribbon of bride','5','20','10','200','0','0','6','0','0','4294967295','63','2','256','0','30',NULL,'1','790','0','bonus bDex,1;','','');
REPLACE INTO `item_db_re` VALUES ('18637','Ancient_Admiral_Helm','Ancient Admiral Helm','5','20','10','700','0','0','4','0','1','4294967295','63','2','768','0','0',NULL,'1','660','0','bonus bStr,2; bonus bVit,1;','','');
-REPLACE INTO `item_db_re` VALUES ('18638','Citron_Hat','Citron Hat','5','20','10','400','0','0','3','0','0','2147483646','63','2','256','0','0',NULL,'1','791','0','bonus bLuk,3;','','');
-REPLACE INTO `item_db_re` VALUES ('18639','Naval_Officer_Hat','Naval Officer Hat','5','20','10','200','0','0','2','0','0','2147483646','63','2','256','0','0',NULL,'1','792','0','bonus bLuk,3;','','');
-REPLACE INTO `item_db_re` VALUES ('18640','Starfish_Headband','Starfish Headband','5','20','10','200','0','0','2','0','0','2147483646','63','2','256','0','0',NULL,'1','793','0','','','');
+REPLACE INTO `item_db_re` VALUES ('18638','Citron_Hat','Citron Hat','5','20','10','400','0','0','3','0','1','2147483646','63','2','256','0','0',NULL,'1','791','0','bonus bLuk,3;','','');
+REPLACE INTO `item_db_re` VALUES ('18639','Naval_Officer_Hat','Naval Officer Hat','5','20','10','200','0','0','2','0','1','2147483646','63','2','256','0','0',NULL,'1','792','0','bonus bLuk,3;','','');
+REPLACE INTO `item_db_re` VALUES ('18640','Starfish_Headband','Starfish Headband','5','20','10','200','0','0','2','0','1','2147483646','63','2','256','0','0',NULL,'1','793','0','','','');
REPLACE INTO `item_db_re` VALUES ('18641','Ribbon_Magic_Hat','Ribbon Magic Hat','5','20','10','200','0','0','2','0','0','2147483646','63','2','256','0','0',NULL,'1','794','0','','','');
REPLACE INTO `item_db_re` VALUES ('18642','hand_Scissorhand_Model','Scissorhand Model','5','20','10','200','0','0','0','0','0','2147483646','63','2','1','0','20',NULL,'0','795','0','bonus bAgi,1;','','');
REPLACE INTO `item_db_re` VALUES ('18643','Rockhand_Model','Rockhand Model','5','20','10','200','0','0','0','0','0','2147483646','63','2','1','0','20',NULL,'0','796','0','bonus bStr,1;','','');
@@ -8080,7 +8080,7 @@ REPLACE INTO `item_db_re` VALUES ('18727','Sedora_Hat','Sedora Hat','5','20','10
REPLACE INTO `item_db_re` VALUES ('18728','Egir_Helm','Aegir Helm','5','200000','100000','800','0','0','10','0','1','4294967295','63','2','256','0','110',NULL,'1','870','0','bonus bMdef,5; bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('18729','MVP_Basketball','MVP Basketball Hat','5','20','10','150','0','0','6','0','1','4294967295','63','2','256','0','0',NULL,'1','871','0','bonus2 bSubRace,RC_DemiHuman,10; bonus2 bAddItemHealRate,522,30; bonus bVariableCastrate,-3; if(getrefine()>=12) { bonus bVariableCastrate,-1; } if(getrefine()>=14) { bonus bVariableCastrate,-1; } ;','','');
REPLACE INTO `item_db_re` VALUES ('18730','Cryptura_Academy_Hat','Criatura Hat','5','100','50','200','0','0','2','0','1','4294967295','63','2','256','0','0',NULL,'1','872','0','bonus bMaxSP,5; bonus bMaxHP,15;','','');
-REPLACE INTO `item_db_re` VALUES ('18731','Valkyrie_Headgear','Valkyrie Helm','5','1000','500','0','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','225','0','','','');
+REPLACE INTO `item_db_re` VALUES ('18731','Valkyrie_Headgear','Valkyrie Helm','5','1000','500','0','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','225','0','','','');
REPLACE INTO `item_db_re` VALUES ('18732','TE_WoE_Cap','TE WoE Cap','5','0','0','0','0','0','5','0','0','4294967295','63','2','256','0','1',NULL,'0','14','0','','','');
REPLACE INTO `item_db_re` VALUES ('18733','TE_WoE_Bone_Helm','TE WoE Bone Helm','5','0','0','0','0','0','10','0','0','279714','63','2','256','0','1',NULL,'0','103','0','','','');
REPLACE INTO `item_db_re` VALUES ('18734','TE_WoE_Magic_Eyes','TE WoE Magic Eyes','5','0','0','0','0','0','5','0','0','8462849','63','2','256','0','1',NULL,'0','209','0','','','');
@@ -8189,7 +8189,7 @@ REPLACE INTO `item_db_re` VALUES ('18900','Weisswurst','Weisswurst','5','0','0',
REPLACE INTO `item_db_re` VALUES ('18901','Seppl_Hat','Seppl Hat','5','0','0','500','0','0','5','0','1','4294967295','63','2','1','0','60',NULL,'1','1023','0','','','');
REPLACE INTO `item_db_re` VALUES ('18921','Costume_Tarnished_Lamp','Costume: Tarnished Lamp','5','0','0','200','0','0','0','0','0','4294967295','63','2','1024','0','50',NULL,'0','897','0','','','');
REPLACE INTO `item_db_re` VALUES ('19500','T_Mr_Smile','Costume: Mr. Smile','5','0','0','0','0','0','0','0','0','4294967295','63','2','6144','0','0',NULL,'0','65','0','bonus bStr,2;','','');
-REPLACE INTO `item_db_re` VALUES ('19501','T_Spinx_Helm','Costume: Sphinx Hat','5','0','0','0','0','0','0','0','1','4294967295','63','2','5120','0','0',NULL,'0','137','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19501','T_Spinx_Helm','Costume: Sphinx Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','5120','0','0',NULL,'0','137','0','','','');
REPLACE INTO `item_db_re` VALUES ('19502','T_Goggle','Costume: Goggles','5','20','10','0','0','0','0','0','0','4294967295','63','2','3072','0','0',NULL,'0','1','0','','','');
REPLACE INTO `item_db_re` VALUES ('19503','T_Munak_Hat','Costume: Munak Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'0','51','0','','','');
REPLACE INTO `item_db_re` VALUES ('19504','T_Sunglasses','Costume: Sunglasses','5','20','10','0','0','0','0','0','0','4294967295','63','2','2048','0','0',NULL,'0','12','0','','','');
@@ -8243,30 +8243,30 @@ REPLACE INTO `item_db_re` VALUES ('19551','C_Elven_Ears','Costume: Elven Ears','
REPLACE INTO `item_db_re` VALUES ('19552','C_Centimental_Flower','Costume: Romantic Flower','5','20','10','100','0','0','0','0','0','4294967295','63','2','4096','0','100',NULL,'0','56','0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('19553','C_Assassin_Mask_','Costume: Assassin Mask','5','20','10','100','0','0','0','0','0','4294967295','63','2','4096','0','100',NULL,'0','180','0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('19554','C_Hahoe_Mask','Costume Hahoe Mask','5','20','10','100','0','0','0','0','0','4294967295','63','2','6144','0','0',NULL,'0','230','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19555','Costume_Crescent_Helm','Costume Crescent Helm','5','1000','500','0','0','0','0','0','1','4294967295','63','2','3072','0','0',NULL,'1','213','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19556','Costume_Kabuki_Mask','Costume Kabuki Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','7168','0','0',NULL,'1','214','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19557','Costume_Ayothaya_Hat','Costume Ayothaya Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','334','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19558','Costume_Raven_Cap','Costume Raven Cap','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','524','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19559','Costume_Baby Dragon Hat','Costume Baby Dragon Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','525','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19560','Costume_Kwati_Hat','Costume Kwati Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','527','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19561','Costume_Tucan_Hat','Costume Tucan Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','528','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19562','Costume_Jaguar_Mask','Costume Jaguar Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','7168','0','0',NULL,'1','530','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19563','Costume_Dragon_Arhat_Mask','Costume Dragon Arhat Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','6144','0','0',NULL,'1','545','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19564','Costume_Tiger_Arhat_Mask','Costume Tiger Arhat Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','6144','0','0',NULL,'1','546','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19565','Costume_Dynasty_Decoration','Costume Dynasty Decoration','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','583','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19566','Costume_Samurai_Mask','Costume Samurai Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','4096','0','0',NULL,'1','644','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19567','Costume_Hatah_Black','Costume Hatah Black','5','1000','500','0','0','0','0','0','1','4294967295','63','2','7168','0','0',NULL,'1','676','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19568','Costume_Ancient_Horn','Costume Ancient Horn','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','757','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19569','Costume_Sprout_Hat','Costume Sprout Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','758','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19570','Costume_Mercury_Helm','Costume Mercury Helm','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','759','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19571','Costume_White_Musang_Hat','Costume White Musang Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','770','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19572','Costume_Black_Musang_Hat','Costume Black Musang Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','771','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19555','Costume_Crescent_Helm','Costume Crescent Helm','5','1000','500','0','0','0','0','0','0','4294967295','63','2','3072','0','0',NULL,'1','213','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19556','Costume_Kabuki_Mask','Costume Kabuki Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'1','214','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19557','Costume_Ayothaya_Hat','Costume Ayothaya Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','334','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19558','Costume_Raven_Cap','Costume Raven Cap','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','524','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19559','Costume_Baby Dragon Hat','Costume Baby Dragon Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','525','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19560','Costume_Kwati_Hat','Costume Kwati Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','527','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19561','Costume_Tucan_Hat','Costume Tucan Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','528','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19562','Costume_Jaguar_Mask','Costume Jaguar Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'1','530','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19563','Costume_Dragon_Arhat_Mask','Costume Dragon Arhat Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','6144','0','0',NULL,'1','545','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19564','Costume_Tiger_Arhat_Mask','Costume Tiger Arhat Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','6144','0','0',NULL,'1','546','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19565','Costume_Dynasty_Decoration','Costume Dynasty Decoration','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','583','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19566','Costume_Samurai_Mask','Costume Samurai Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','4096','0','0',NULL,'1','644','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19567','Costume_Hatah_Black','Costume Hatah Black','5','1000','500','0','0','0','0','0','0','4294967295','63','2','7168','0','0',NULL,'1','676','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19568','Costume_Ancient_Horn','Costume Ancient Horn','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','757','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19569','Costume_Sprout_Hat','Costume Sprout Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','758','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19570','Costume_Mercury_Helm','Costume Mercury Helm','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','759','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19571','Costume_White_Musang_Hat','Costume White Musang Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','770','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19572','Costume_Black_Musang_Hat','Costume Black Musang Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','771','0','','','');
REPLACE INTO `item_db_re` VALUES ('19573','C_Heart_Wing_Hairband','Costume: Heart Wing Hairband','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','733','0','','','');
REPLACE INTO `item_db_re` VALUES ('19574','C_Lord_of_Death','Costume: Lord Of Death Helm','5','0','0','0','0','0','0','0','0','4294967295','63','2','3072','0','0',NULL,'1','742','0','bonus bUnbreakableHelm,0;','','');
-REPLACE INTO `item_db_re` VALUES ('19575','Costume_Ascension_Black_Dragon','Costume Ascension Black Dragon','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','863','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19575','Costume_Ascension_Black_Dragon','Costume Ascension Black Dragon','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','863','0','','','');
REPLACE INTO `item_db_re` VALUES ('19576','C_Tare_Pope','Costume Tare Popedoll','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','817','0','','','');
REPLACE INTO `item_db_re` VALUES ('19577','Costume_10th_Poring_Hat','Costume 10th Poring Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','874','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19579','Costume_Red_Wind_Hat','Costume Red Wind Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','613','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19579','Costume_Red_Wind_Hat','Costume Red Wind Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','613','0','','','');
REPLACE INTO `item_db_re` VALUES ('19580','Costume_Sphinx_Helm','Costume Sphinx Helm','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','137','0','','','');
REPLACE INTO `item_db_re` VALUES ('19581','Costume_Adventurer\'s_Hat','Costume Adventurer\'s Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','891','0','','','');
REPLACE INTO `item_db_re` VALUES ('19582','Costume_Cowboy_Hat','Costume Cowboy Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','411','0','','','');
@@ -8276,50 +8276,50 @@ REPLACE INTO `item_db_re` VALUES ('19585','C_Feather_Beret','Costume Feather Ber
REPLACE INTO `item_db_re` VALUES ('19586','Costume_Pink_Bunny_Hair_Band','Costume Pink Bunny Hair Band','5','100','50','0','0','0','0','0','0','4294967295','2','2','1024','0','1',NULL,'1','898','0','','','');
REPLACE INTO `item_db_re` VALUES ('19587','C_King_Poring_Hat','Costume: King Poring','5','0','0','100','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','905','0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('19589','C_Fallen_Angel_Lost_J','C Fallen Angel Lost J','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','907','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19598','Costume_Wandering_Wolf_Hat','Costume Wandering Wolf Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','490','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19599','Costume_Imp_Hat','Costume Imp Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','589','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19598','Costume_Wandering_Wolf_Hat','Costume Wandering Wolf Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','490','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19599','Costume_Imp_Hat','Costume Imp Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','589','0','','','');
REPLACE INTO `item_db_re` VALUES ('19600','Costume_Drooping_Kiehl','Costume: Drooping Kiehl','5','0','0','400','0','0','0','0','0','4294967295','63','2','1024','0','30',NULL,'0','909','0','','','');
REPLACE INTO `item_db_re` VALUES ('19601','Costume_Drooping_Aliot','Costume: Drooping Aliot','5','0','0','100','0','0','0','0','0','4294967295','63','2','1024','0','1',NULL,'0','910','0','','','');
REPLACE INTO `item_db_re` VALUES ('19603','C_Invisible_Sunglasses','Costume Koneko Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','378','0','','','');
REPLACE INTO `item_db_re` VALUES ('19605','Spellcaster\'s_Supply_Crate','Spellcaster\'s Supply Crate','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','369','0','','','');
REPLACE INTO `item_db_re` VALUES ('19616','Costume_Wickebine\'s_Black_Cat_Ears','Costume Wickebine\'s Black Cat Ears','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','368','0','','','');
REPLACE INTO `item_db_re` VALUES ('19619','Costume_Corsair','Costume Corsair','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','105','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19625','Costume_Refined_Bunny_Band','Costume Refined Bunny Band','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','15','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19625','Costume_Refined_Bunny_Band','Costume Refined Bunny Band','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','15','0','','','');
REPLACE INTO `item_db_re` VALUES ('19627','Costume_Satellite_Hairband','Costume Satellite Hairband','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','266','0','','','');
REPLACE INTO `item_db_re` VALUES ('19629','C_Tiara','Costume Tiara','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','19','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19630','Costume_Crown','Costume Crown','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','45','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19632','Costume_Hat','Costume Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','16','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19633','Costume_Flower_Band','Costume Flower Band','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','5','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19634','Costume_Flu_Mask','Costume Flu Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','8','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19635','Costume_Mini_Propeller','Costume Mini Propeller','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','46','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19636','Costume_Clown_Nose','Costume Clown Nose','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','49','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19637','Costume_Nurse_Cap','Costume Nurse Cap','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','64','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19639','Costume_Sakkat','Costume Sakkat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','67','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19630','Costume_Crown','Costume Crown','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','45','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19632','Costume_Hat','Costume Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','16','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19633','Costume_Flower_Band','Costume Flower Band','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','5','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19634','Costume_Flu_Mask','Costume Flu Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','8','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19635','Costume_Mini_Propeller','Costume Mini Propeller','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','46','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19636','Costume_Clown_Nose','Costume Clown Nose','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','49','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19637','Costume_Nurse_Cap','Costume Nurse Cap','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','64','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19639','Costume_Sakkat','Costume Sakkat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','67','0','','','');
REPLACE INTO `item_db_re` VALUES ('19650','C_Rainbow_Feather_Deco','Costume: Five Colored Feathers','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','934','0','','','');
REPLACE INTO `item_db_re` VALUES ('19651','Costume_RWC_Shouting_Mouth','Costume RWC Shouting Mouth','5','1000','500','0','0','0','0','0','0','4294967295','2','2','4096','0','1',NULL,'1','194','0','','','');
REPLACE INTO `item_db_re` VALUES ('19655','C_Tiraya_Bonnet','C Tiraya Bonnet','5','20','10','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','398','0','','','');
REPLACE INTO `item_db_re` VALUES ('19682','C_Santa_Poring_Hat','Costume SantaPoring Cap','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','387','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19686','Costume_Santa_Doll_Headband','Costume Santa Doll Headband','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','964','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19687','Costume_Fresh_Roses','Costume Fresh Roses','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','963','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19701','Costumes_Red_Bonnet','Costumes Red Bonnet','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','190','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19702','Costume_Twin_Pompom_By_JB','Costume Twin Pompom By JB','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','390','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19706','Costume_Red_Dress_Hat','Costume Red Dress Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','670','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19686','Costume_Santa_Doll_Headband','Costume Santa Doll Headband','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','964','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19687','Costume_Fresh_Roses','Costume Fresh Roses','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','963','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19701','Costumes_Red_Bonnet','Costumes Red Bonnet','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','190','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19702','Costume_Twin_Pompom_By_JB','Costume Twin Pompom By JB','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','390','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19706','Costume_Red_Dress_Hat','Costume Red Dress Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','670','0','','','');
REPLACE INTO `item_db_re` VALUES ('19707','Costume_Polar_Bear_Cap','Costume Polar Bear Cap','5','20','10','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','966','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19708','Costume_Withe_Snake_Hat','Costume Withe Snake Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','413','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19708','Costume_Withe_Snake_Hat','Costume Withe Snake Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','413','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','','','');
REPLACE INTO `item_db_re` VALUES ('19730','C_Snake_Hat','C Snake Hat','5','20','10','10','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','986','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19731','Costume_Evolved_Evil_Wing','Costume Evolved Evil Wing','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','39','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19732','Costume_Goblin_Leader_Mask','Costume Goblin Leader Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','174','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19731','Costume_Evolved_Evil_Wing','Costume Evolved Evil Wing','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','39','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19732','Costume_Goblin_Leader_Mask','Costume Goblin Leader Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','174','0','','','');
REPLACE INTO `item_db_re` VALUES ('19733','C_Panda_Cap','Costume Panda Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','115','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19734','Costume_Binoculars','Costume Binoculars','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','83','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19735','Costume_Fin_Helm','Costume Fin Helm','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','100','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19736','Costume_Gas_Mask','Costume Gas Mask','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','91','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19734','Costume_Binoculars','Costume Binoculars','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','83','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19735','Costume_Fin_Helm','Costume Fin Helm','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','100','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19736','Costume_Gas_Mask','Costume Gas Mask','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','91','0','','','');
REPLACE INTO `item_db_re` VALUES ('19737','C_Corsair_K','Costume Refined Corsair','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','105','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19738','Costume_Renown_Detective\'s_Cap','Costume Renown Detective\'s Cap','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','189','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19739','Costume_Sleeping_Cat_Hat','Costume Sleeping Cat Hat','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','838','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19742','Costume_Small_Golden_Wings','Costume Small Golden Wings','5','1000','500','0','0','0','0','0','1','4294967295','63','2','1024','0','0',NULL,'1','724','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19764','Costume_Monster_Card','Costume Monster Card','5','1000','500','0','0','0','0','0','1','4294967295','63','2','4096','0','0',NULL,'1','526','0','','','');
-REPLACE INTO `item_db_re` VALUES ('19765','Costume_Wing_Angels_Ears','Costume Wing Angels Ears','5','1000','500','0','0','0','0','0','1','4294967295','63','2','2048','0','0',NULL,'1','158','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19738','Costume_Renown_Detective\'s_Cap','Costume Renown Detective\'s Cap','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','189','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19739','Costume_Sleeping_Cat_Hat','Costume Sleeping Cat Hat','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','838','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19742','Costume_Small_Golden_Wings','Costume Small Golden Wings','5','1000','500','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','724','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19764','Costume_Monster_Card','Costume Monster Card','5','1000','500','0','0','0','0','0','0','4294967295','63','2','4096','0','0',NULL,'1','526','0','','','');
+REPLACE INTO `item_db_re` VALUES ('19765','Costume_Wing_Angels_Ears','Costume Wing Angels Ears','5','1000','500','0','0','0','0','0','0','4294967295','63','2','2048','0','0',NULL,'1','158','0','','','');
REPLACE INTO `item_db_re` VALUES ('19787','Costume_Devoted_Eyes','Costume: Devoted Eyes','5','0','0','0','0','0','0','0','0','4294967295','63','2','2048','0','1',NULL,'0','1021','0','','','');
REPLACE INTO `item_db_re` VALUES ('19788','Costume_Heart_Eyepatch','Costume: Heart Eyepatch','5','0','0','0','0','0','0','0','0','4294967295','63','2','2048','0','1',NULL,'0','779','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','','sc_start SC_DECORATION_OF_MUSIC,-1,0;','sc_end SC_DECORATION_OF_MUSIC;');
diff --git a/sql-files/main.sql b/sql-files/main.sql
index 25045226a..9c2c1ca43 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -577,7 +577,7 @@ CREATE TABLE IF NOT EXISTS `pet` (
`intimate` smallint(9) unsigned NOT NULL default '0',
`hungry` smallint(9) unsigned NOT NULL default '0',
`rename_flag` tinyint(4) unsigned NOT NULL default '0',
- `incuvate` int(11) unsigned NOT NULL default '0',
+ `incubate` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`pet_id`)
) ENGINE=MyISAM;
@@ -668,6 +668,7 @@ INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626); -- 2014-02-19--17-5
INSERT INTO `sql_updates` (`timestamp`) VALUES (1395789302); -- 2014-03-25--23-57.sql
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
--
-- Table structure for table `sstatus`
diff --git a/sql-files/upgrades/2013-10-09--21-38.sql b/sql-files/upgrades/2013-10-09--21-38.sql
index fee85c40b..918f8cd21 100644
--- a/sql-files/upgrades/2013-10-09--21-38.sql
+++ b/sql-files/upgrades/2013-10-09--21-38.sql
@@ -1,3 +1,3 @@
#1381354728
ALTER TABLE `zenylog` MODIFY `type` enum('T','V','P','M','S','N','D','C','A','E','I','B','K') NOT NULL DEFAULT 'S';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1381354728); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1381354728);
diff --git a/sql-files/upgrades/2013-10-10--16-36.sql b/sql-files/upgrades/2013-10-10--16-36.sql
index 784449898..764e632aa 100644
--- a/sql-files/upgrades/2013-10-10--16-36.sql
+++ b/sql-files/upgrades/2013-10-10--16-36.sql
@@ -4,4 +4,4 @@ CREATE TABLE IF NOT EXISTS `account_data` (
`bank_vault` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`account_id`)
) ENGINE=MyISAM;
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1381423003); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1381423003);
diff --git a/sql-files/upgrades/2013-10-27--16-47.sql b/sql-files/upgrades/2013-10-27--16-47.sql
index e1a4a28f2..81131726c 100644
--- a/sql-files/upgrades/2013-10-27--16-47.sql
+++ b/sql-files/upgrades/2013-10-27--16-47.sql
@@ -3,4 +3,4 @@ ALTER TABLE `inventory` MODIFY `equip` int(11) unsigned NOT NULL default '0';
ALTER TABLE `storage` MODIFY `equip` int(11) unsigned NOT NULL default '0';
ALTER TABLE `cart_inventory` MODIFY `equip` int(11) unsigned NOT NULL default '0';
ALTER TABLE `guild_storage` MODIFY `equip` int(11) unsigned NOT NULL default '0';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1382892428); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1382892428);
diff --git a/sql-files/upgrades/2013-10-30--19-53.sql b/sql-files/upgrades/2013-10-30--19-53.sql
index 8bc63b1f1..6bff8eaa5 100644
--- a/sql-files/upgrades/2013-10-30--19-53.sql
+++ b/sql-files/upgrades/2013-10-30--19-53.sql
@@ -2,4 +2,4 @@
ALTER TABLE `account_data` ADD `base_exp` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
ALTER TABLE `account_data` ADD `base_drop` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
ALTER TABLE `account_data` ADD `base_death` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1383162785); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1383162785);
diff --git a/sql-files/upgrades/2013-10-30--21-12.sql b/sql-files/upgrades/2013-10-30--21-12.sql
index fdc16f418..33f052326 100644
--- a/sql-files/upgrades/2013-10-30--21-12.sql
+++ b/sql-files/upgrades/2013-10-30--21-12.sql
@@ -1,3 +1,3 @@
#1383167577
ALTER TABLE `char` ADD `font` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1383167577); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1383167577);
diff --git a/sql-files/upgrades/2013-10-31--07-49.sql b/sql-files/upgrades/2013-10-31--07-49.sql
index f0c51b0d9..607753d54 100644
--- a/sql-files/upgrades/2013-10-31--07-49.sql
+++ b/sql-files/upgrades/2013-10-31--07-49.sql
@@ -3,4 +3,4 @@ ALTER TABLE `inventory` ADD COLUMN `bound` TINYINT(1) UNSIGNED NOT NULL DEFAULT
ALTER TABLE `cart_inventory` ADD COLUMN `bound` tinyint(1) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
ALTER TABLE `storage` ADD COLUMN `bound` tinyint(1) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
ALTER TABLE `guild_storage` ADD COLUMN `bound` TINYINT(1) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1383205740); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1383205740);
diff --git a/sql-files/upgrades/2013-11-09--00-03.sql b/sql-files/upgrades/2013-11-09--00-03.sql
index 09c63307f..7ca887653 100644
--- a/sql-files/upgrades/2013-11-09--00-03.sql
+++ b/sql-files/upgrades/2013-11-09--00-03.sql
@@ -2,4 +2,4 @@
ALTER TABLE `account_data` MODIFY `base_exp` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
ALTER TABLE `account_data` MODIFY `base_drop` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
ALTER TABLE `account_data` MODIFY `base_death` TINYINT( 4 ) UNSIGNED NOT NULL default '100';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1383955424); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1383955424);
diff --git a/sql-files/upgrades/2013-11-15--19-57.sql b/sql-files/upgrades/2013-11-15--19-57.sql
index 0644c47c9..d4d8ec501 100644
--- a/sql-files/upgrades/2013-11-15--19-57.sql
+++ b/sql-files/upgrades/2013-11-15--19-57.sql
@@ -2,4 +2,4 @@
UPDATE `account_data` SET `base_exp` = '100' WHERE `base_exp` = '0';
UPDATE `account_data` SET `base_drop` = '100' WHERE `base_drop` = '0';
UPDATE `account_data` SET `base_death` = '100' WHERE `base_death` = '0';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1384545461); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1384545461);
diff --git a/sql-files/upgrades/2013-11-16--07-49.sql b/sql-files/upgrades/2013-11-16--07-49.sql
index 9f4b80452..15c740fd0 100644
--- a/sql-files/upgrades/2013-11-16--07-49.sql
+++ b/sql-files/upgrades/2013-11-16--07-49.sql
@@ -1,3 +1,3 @@
#1384588175
ALTER TABLE `char` ADD COLUMN `unban_time` int(11) unsigned NOT NULL default '0';
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1384588175); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1384588175);
diff --git a/sql-files/upgrades/2014-01-04--16-47.sql b/sql-files/upgrades/2014-01-04--16-47.sql
index a60ec1d24..53320a712 100644
--- a/sql-files/upgrades/2014-01-04--16-47.sql
+++ b/sql-files/upgrades/2014-01-04--16-47.sql
@@ -58,4 +58,4 @@ INSERT INTO `char_reg_str_db` (`char_id`, `key`, `index`, `value`) SELECT `char_
INSERT INTO `global_acc_reg_num_db` (`account_id`, `key`, `index`, `value`) SELECT `account_id`, `str`, 0, `value` FROM `global_reg_value` WHERE `type` = 1 AND `str` NOT LIKE '%$';
INSERT INTO `global_acc_reg_str_db` (`account_id`, `key`, `index`, `value`) SELECT `account_id`, `str`, 0, `value` FROM `global_reg_value` WHERE `type` = 1 AND `str` LIKE '%$';
#DROP TABLE `global_reg_value`;
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1388854043); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1388854043);
diff --git a/sql-files/upgrades/2014-02-19--17-57.sql b/sql-files/upgrades/2014-02-19--17-57.sql
index ebebe6665..74cfdfe37 100644
--- a/sql-files/upgrades/2014-02-19--17-57.sql
+++ b/sql-files/upgrades/2014-02-19--17-57.sql
@@ -1,4 +1,4 @@
#1392832626
DELETE FROM `sc_data` WHERE `tick` = '-1';
ALTER TABLE `sc_data` ADD PRIMARY KEY (`account_id`,`char_id`,`type`);
-INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626); \ No newline at end of file
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626);
diff --git a/sql-files/upgrades/2014-05-17--00-06.sql b/sql-files/upgrades/2014-05-17--00-06.sql
new file mode 100644
index 000000000..4e5d0d32a
--- /dev/null
+++ b/sql-files/upgrades/2014-05-17--00-06.sql
@@ -0,0 +1,3 @@
+#1400256139
+ALTER TABLE `pet` CHANGE `incuvate` `incubate` int(11) unsigned NOT NULL default '0';
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1400256139);
diff --git a/sql-files/upgrades/index.txt b/sql-files/upgrades/index.txt
index 88019e12a..ab8ee772d 100644
--- a/sql-files/upgrades/index.txt
+++ b/sql-files/upgrades/index.txt
@@ -21,4 +21,5 @@
2014-02-19--17-57.sql
2014-03-25--23-57.sql
2014-04-07--22-04.sql
-2014-04-26--10-00.sql \ No newline at end of file
+2014-04-26--10-00.sql
+2014-05-17--00-06.sql
diff --git a/sql-files/upgrades/rAthena-main-upgrade.sql b/sql-files/upgrades/rAthena-main-upgrade.sql
index 818cdcfb6..cc198e834 100644
--- a/sql-files/upgrades/rAthena-main-upgrade.sql
+++ b/sql-files/upgrades/rAthena-main-upgrade.sql
@@ -6,7 +6,7 @@
-- Apply in the same database you applied your main.sql
-- Last revised: April 26, 2014 12:29 GMT
--- Drop table contents from ´sc_data´ since we use a different status order than rAthena
+-- Drop table contents from `sc_data` since we use a different status order than rAthena
-- /!\ WARNING /!\ This will remove _ALL_ of the status effects active on the server
-- You can disable this, but this is a SECURITY MEASURE
-- This will remove even jailed status from users!
@@ -51,6 +51,10 @@ ALTER TABLE `mapreg` MODIFY `varname` varchar(32) BINARY NOT NULL,
-- Upgrades for table `sc_data`
+ALTER TABLE `pet` CHANGE `incuvate` `incubate` int(11) unsigned NOT NULL default '0';
+
+
+-- Upgrades for table `sc_data`
ALTER TABLE `sc_data` ADD PRIMARY KEY (`account_id`,`char_id`,`type`);
@@ -91,6 +95,7 @@ INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626); -- 2014-02-19--17-5
INSERT INTO `sql_updates` (`timestamp`) VALUES (1395789302); -- 2014-03-25--23-57.sql
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
-- Updates to table `storage`
diff --git a/src/char/char.c b/src/char/char.c
index 6c0902644..57031e3ee 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -797,7 +797,7 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
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 )
- StrBuf->Printf(&buf, ", `card%d`=%d", j, items[i].card[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)) )
@@ -1674,7 +1674,7 @@ int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int ag
{
if( SQL_ERROR == SQL->Query(sql_handle,
"INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')",
- inventory_db, char_id, start_items[k], 1, 1)
+ inventory_db, char_id, start_items[k], 1, 1)
)
Sql_ShowDebug(sql_handle);
}
@@ -1780,7 +1780,7 @@ int delete_char_sql(int 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 `incuvate` = '0'", pet_db, char_id) )
+ 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);
//Delete all pets that are stored in eggs (inventory + cart)
@@ -2048,7 +2048,7 @@ int mmo_char_send006b(int fd, struct char_session_data* sd)
int j, offset = 0;
#if PACKETVER >= 20100413
offset += 3;
-#endif
+#endif
if (save_log)
ShowInfo("Loading Char Data ("CL_BOLD"%d"CL_RESET")\n",sd->account_id);
@@ -3978,7 +3978,7 @@ 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)
+ 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)
)
{
@@ -4268,7 +4268,7 @@ int parse_char(int fd)
#if PACKETVER >= 20110309
if( *pincode->enabled ){ // hack check
- struct online_char_data* character;
+ 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);
@@ -4508,7 +4508,7 @@ int parse_char(int fd)
int i;
#if PACKETVER >= 20110309
if( *pincode->enabled ){ // hack check
- struct online_char_data* character;
+ 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);
diff --git a/src/char/int_auction.c b/src/char/int_auction.c
index 886b5be26..d246e9851 100644
--- a/src/char/int_auction.c
+++ b/src/char/int_auction.c
@@ -268,7 +268,7 @@ static void mapif_parse_Auction_requestlist(int fd)
for( auction = dbi_first(iter); dbi_exists(iter); auction = dbi_next(iter) )
{
- if( (type == 0 && auction->type != IT_ARMOR && auction->type != IT_PETARMOR) ||
+ if( (type == 0 && auction->type != IT_ARMOR && auction->type != IT_PETARMOR) ||
(type == 1 && auction->type != IT_WEAPON) ||
(type == 2 && auction->type != IT_CARD) ||
(type == 3 && auction->type != IT_ETC) ||
diff --git a/src/char/int_party.c b/src/char/int_party.c
index 3e4a743d6..5dd64a32b 100644
--- a/src/char/int_party.c
+++ b/src/char/int_party.c
@@ -652,7 +652,7 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
if (p == NULL)
return 0;
- for(i = 0; i < MAX_PARTY &&
+ for(i = 0; i < MAX_PARTY &&
(p->party.member[i].account_id != account_id ||
p->party.member[i].char_id != char_id); i++);
@@ -666,7 +666,7 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
else
p->party.count--;
// Even share check situations: Family state (always breaks)
- // character logging on/off is max/min level (update level range)
+ // character logging on/off is max/min level (update level range)
// or character logging on/off has a different level (update level range using new level)
if (p->family ||
(p->party.member[i].lv <= p->min_lv || p->party.member[i].lv >= p->max_lv) ||
@@ -731,7 +731,7 @@ int mapif_parse_PartyLeaderChange(int fd,int party_id,int account_id,int char_id
for (i = 0; i < MAX_PARTY; i++)
{
- if(p->party.member[i].leader)
+ 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)
diff --git a/src/char/int_party.h b/src/char/int_party.h
index 098c1e9a9..33325b46b 100644
--- a/src/char/int_party.h
+++ b/src/char/int_party.h
@@ -6,7 +6,7 @@
//Party Flags on what to save/delete.
enum {
- PS_CREATE = 0x01, //Create a new party entry (index holds leader's info)
+ PS_CREATE = 0x01, //Create a new party entry (index holds leader's info)
PS_BASIC = 0x02, //Update basic party info.
PS_LEADER = 0x04, //Update party's leader
PS_ADDMEMBER = 0x08, //Specify new party member (index specifies which party member)
diff --git a/src/char/int_pet.c b/src/char/int_pet.c
index 29c40eff9..0f7c683f8 100644
--- a/src/char/int_pet.c
+++ b/src/char/int_pet.c
@@ -25,7 +25,7 @@ struct s_pet *pet_pt;
//---------------------------------------------------------
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`,`incuvate`)
+ //`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));
@@ -35,10 +35,10 @@ int inter_pet_tosql(int pet_id, struct s_pet* p)
if( pet_id == -1 )
{// New pet.
if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` "
- "(`class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incuvate`) "
+ "(`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->incuvate) )
+ p->equip, p->intimate, p->hungry, p->rename_flag, p->incubate) )
{
Sql_ShowDebug(sql_handle);
return 0;
@@ -47,9 +47,9 @@ int inter_pet_tosql(int pet_id, struct s_pet* p)
}
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',`incuvate`='%d' WHERE `pet_id`='%d'",
+ 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'",
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->incuvate, p->pet_id) )
+ p->equip, p->intimate, p->hungry, p->rename_flag, p->incubate, p->pet_id) )
{
Sql_ShowDebug(sql_handle);
return 0;
@@ -71,9 +71,9 @@ int inter_pet_fromsql(int pet_id, struct s_pet* p)
#endif
memset(p, 0, sizeof(struct s_pet));
- //`pet` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incuvate`)
+ //`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`,`incuvate` FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) )
+ 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) )
{
Sql_ShowDebug(sql_handle);
return 0;
@@ -92,7 +92,7 @@ int inter_pet_fromsql(int pet_id, struct s_pet* p)
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->incuvate = atoi(data);
+ SQL->GetData(sql_handle, 11, &data, NULL); p->incubate = atoi(data);
SQL->FreeResult(sql_handle);
@@ -186,11 +186,11 @@ 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 incuvate, char *pet_name)
+ 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);
- if(incuvate == 1)
+ if(incubate == 1)
pet_pt->account_id = pet_pt->char_id = 0;
else {
pet_pt->account_id = account_id;
@@ -203,7 +203,7 @@ int mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short
pet_pt->intimate = intimate;
pet_pt->hungry = hungry;
pet_pt->rename_flag = rename_flag;
- pet_pt->incuvate = incuvate;
+ pet_pt->incubate = incubate;
if(pet_pt->hungry < 0)
pet_pt->hungry = 0;
@@ -229,7 +229,7 @@ int mapif_load_pet(int fd, int account_id, int char_id, int pet_id){
inter_pet_fromsql(pet_id, pet_pt);
if(pet_pt!=NULL) {
- if(pet_pt->incuvate == 1) {
+ if(pet_pt->incubate == 1) {
pet_pt->account_id = pet_pt->char_id = 0;
mapif_pet_info(fd, account_id, pet_pt);
}
diff --git a/src/common/HPM.c b/src/common/HPM.c
index 00b92dc60..d33a4c1aa 100644
--- a/src/common/HPM.c
+++ b/src/common/HPM.c
@@ -505,7 +505,7 @@ bool hplugins_addpacket(unsigned short cmd, short length,void (*receive) (int fd
return true;
}
-/*
+/*
0 = unknown
1 = OK
2 = incomplete
@@ -635,7 +635,7 @@ bool hpm_add_arg(unsigned int pluginID, char *name, bool has_param, void (*func)
CREATE(data, struct HPMArgData, 1);
- data->pluginID = pluginID;
+ data->pluginID = pluginID;
data->name = aStrdup(name);
data->func = func;
data->help = help;
diff --git a/src/common/atomic.h b/src/common/atomic.h
index 8c01943e7..1349d0887 100644
--- a/src/common/atomic.h
+++ b/src/common/atomic.h
@@ -4,16 +4,16 @@
#ifndef _COMMON_ATOMIC_H_
#define _COMMON_ATOMIC_H_
-// Atomic Operations
+// Atomic Operations
// (Interlocked CompareExchange, Add .. and so on ..)
-//
+//
// Implementation varies / depends on:
// - Architecture
// - Compiler
// - Operating System
//
// our Abstraction is fully API-Compatible to Microsofts implementation @ NT5.0+
-//
+//
#include "../common/cbasetypes.h"
#if defined(_MSC_VER)
@@ -36,7 +36,7 @@ forceinline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch,
mov ecx,4[edi];
mov esi,dest;
- lock CMPXCHG8B [esi];
+ lock CMPXCHG8B [esi];
}
}
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h
index da0d6b307..ac65b08a8 100644
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -313,7 +313,7 @@ typedef char bool;
#undef swap
#endif
// hmm only ints?
-//#define swap(a,b) { int temp=a; a=b; b=temp;}
+//#define swap(a,b) { int temp=a; a=b; b=temp;}
// if using macros then something that is type independent
//#define swap(a,b) ((a == b) || ((a ^= b), (b ^= a), (a ^= b)))
// Avoid "value computed is not used" warning and generates the same assembly code
diff --git a/src/common/core.c b/src/common/core.c
index 85f824866..d74e5a451 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -7,6 +7,11 @@
#include "../config/core.h"
#include "core.h"
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "../common/cbasetypes.h"
#include "../common/console.h"
#include "../common/malloc.h"
@@ -28,10 +33,6 @@
# include "../common/utils.h"
#endif
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#ifndef _WIN32
# include <unistd.h>
#else
diff --git a/src/common/db.c b/src/common/db.c
index 1781aa96f..bbeaf0b61 100644
--- a/src/common/db.c
+++ b/src/common/db.c
@@ -94,7 +94,7 @@
\*****************************************************************************/
/**
- * If defined statistics about database nodes, database creating/destruction
+ * If defined statistics about database nodes, database creating/destruction
* and function usage are keept and displayed when finalizing the database
* system.
* WARNING: This adds overhead to every database operation (not shure how much).
@@ -522,7 +522,7 @@ static void db_rebalance_erase(DBNode node, DBNode *root)
x_parent = y->parent;
if (x) x->parent = y->parent;
y->parent->left = x;
- // put the right of 'node' in 'y'
+ // put the right of 'node' in 'y'
y->right = node->right;
node->right->parent = y;
// 'y' is a direct child of 'node'
@@ -1409,7 +1409,7 @@ DBData* dbit_obj_prev(DBIterator* self, DBKey* out_key)
/**
* Returns true if the fetched entry exists.
- * The databases entries might have NULL data, so use this to to test if
+ * The databases entries might have NULL data, so use this to to test if
* the iterator is done.
* @param self Iterator
* @return true if the entry exists
@@ -1426,7 +1426,7 @@ bool dbit_obj_exists(DBIterator* self)
/**
* Removes the current entry from the database.
- * NOTE: {@link DBIterator#exists} will return false until another entry
+ * NOTE: {@link DBIterator#exists} will return false until another entry
* is fetched
* Puts data of the removed entry in out_data, if out_data is not NULL.
* @param self Iterator
@@ -1477,7 +1477,7 @@ void dbit_obj_destroy(DBIterator* self)
/**
* Returns a new iterator for this database.
* The iterator keeps the database locked until it is destroyed.
- * The database will keep functioning normally but will only free internal
+ * The database will keep functioning normally but will only free internal
* memory when unlocked, so destroy the iterator as soon as possible.
* @param self Database
* @return New iterator
@@ -1615,7 +1615,7 @@ static DBData* db_obj_get(DBMap* self, DBKey key)
* It puts a maximum of <code>max</code> entries into <code>buf</code>.
* If <code>buf</code> is NULL, it only counts the matches.
* Returns the number of entries that matched.
- * NOTE: if the value returned is greater than <code>max</code>, only the
+ * NOTE: if the value returned is greater than <code>max</code>, only the
* first <code>max</code> entries found are put into the buffer.
* @param self Interface of the database
* @param buf Buffer to put the data of the matched entries
@@ -1686,7 +1686,7 @@ static unsigned int db_obj_vgetall(DBMap* self, DBData **buf, unsigned int max,
* It puts a maximum of <code>max</code> entries into <code>buf</code>.
* If <code>buf</code> is NULL, it only counts the matches.
* Returns the number of entries that matched.
- * NOTE: if the value returned is greater than <code>max</code>, only the
+ * NOTE: if the value returned is greater than <code>max</code>, only the
* first <code>max</code> entries found are put into the buffer.
* @param self Interface of the database
* @param buf Buffer to put the data of the matched entries
@@ -1714,7 +1714,7 @@ static unsigned int db_obj_getall(DBMap* self, DBData **buf, unsigned int max, D
/**
* Get the data of the entry identified by the key.
- * If the entry does not exist, an entry is added with the data returned by
+ * If the entry does not exist, an entry is added with the data returned by
* <code>create</code>.
* @param self Interface of the database
* @param key Key that identifies the entry
@@ -1813,7 +1813,7 @@ static DBData* db_obj_vensure(DBMap* self, DBKey key, DBCreateData create, va_li
/**
* Just calls {@link DBMap#vensure}.
* Get the data of the entry identified by the key.
- * If the entry does not exist, an entry is added with the data returned by
+ * If the entry does not exist, an entry is added with the data returned by
* <code>create</code>.
* @param self Interface of the database
* @param key Key that identifies the entry
@@ -2163,7 +2163,7 @@ static int db_obj_vclear(DBMap* self, DBApply func, va_list args)
* Before deleting an entry, func is applied to it.
* Releases the key and the data.
* Returns the sum of values returned by func, if it exists.
- * NOTE: This locks the database globally. Any attempt to insert or remove
+ * NOTE: This locks the database globally. Any attempt to insert or remove
* a database entry will give an error and be aborted (except for clearing).
* @param self Interface of the database
* @param func Function to be applied to every entry before deleting
@@ -2191,7 +2191,7 @@ static int db_obj_clear(DBMap* self, DBApply func, ...)
* Finalize the database, feeing all the memory it uses.
* Before deleting an entry, func is applied to it.
* Returns the sum of values returned by func, if it exists.
- * NOTE: This locks the database globally. Any attempt to insert or remove
+ * NOTE: This locks the database globally. Any attempt to insert or remove
* a database entry will give an error and be aborted (except for clearing).
* @param self Interface of the database
* @param func Function to be applied to every entry before deleting
@@ -2246,7 +2246,7 @@ static int db_obj_vdestroy(DBMap* self, DBApply func, va_list args)
* Before deleting an entry, func is applied to it.
* Releases the key and the data.
* Returns the sum of values returned by func, if it exists.
- * NOTE: This locks the database globally. Any attempt to insert or remove
+ * NOTE: This locks the database globally. Any attempt to insert or remove
* a database entry will give an error and be aborted.
* @param self Database
* @param func Function to be applied to every entry before deleting
@@ -2448,7 +2448,7 @@ DBHasher db_default_hash(DBType type)
}
/**
- * Returns the default releaser for the specified type of database with the
+ * Returns the default releaser for the specified type of database with the
* specified options.
* NOTE: the options are fixed with {@link #db_fix_options(DBType,DBOptions)}
* before choosing the releaser.
@@ -2509,7 +2509,7 @@ DBReleaser db_custom_release(DBRelease which)
* @param line Line of the file where the database is being allocated
* @param type Type of database
* @param options Options of the database
- * @param maxlen Maximum length of the string to be used as key in string
+ * @param maxlen Maximum length of the string to be used as key in string
* databases. If 0, the maximum number of maxlen is used (64K).
* @return The interface of the database
* @public
diff --git a/src/common/db.h b/src/common/db.h
index 0d2548806..f5714ceaf 100644
--- a/src/common/db.h
+++ b/src/common/db.h
@@ -79,7 +79,7 @@ typedef enum DBRelease {
/**
* Supported types of database.
- * See {@link #db_fix_options(DBType,DBOptions)} for restrictions of the
+ * See {@link #db_fix_options(DBType,DBOptions)} for restrictions of the
* types of databases.
* @param DB_INT Uses int's for keys
* @param DB_UINT Uses unsigned int's for keys
@@ -107,14 +107,14 @@ typedef enum DBType {
/**
* Bitfield of options that define the behaviour of the database.
- * See {@link #db_fix_options(DBType,DBOptions)} for restrictions of the
+ * See {@link #db_fix_options(DBType,DBOptions)} for restrictions of the
* types of databases.
* @param DB_OPT_BASE Base options: does not duplicate keys, releases nothing
* and does not allow NULL keys or NULL data.
- * @param DB_OPT_DUP_KEY Duplicates the keys internally. If DB_OPT_RELEASE_KEY
+ * @param DB_OPT_DUP_KEY Duplicates the keys internally. If DB_OPT_RELEASE_KEY
* is defined, the real key is freed as soon as the entry is added.
* @param DB_OPT_RELEASE_KEY Releases the key.
- * @param DB_OPT_RELEASE_DATA Releases the data whenever an entry is removed
+ * @param DB_OPT_RELEASE_DATA Releases the data whenever an entry is removed
* from the database.
* WARNING: for funtions that return the data (like DBMap::remove),
* a dangling pointer will be returned.
@@ -188,7 +188,7 @@ typedef struct DBData {
} DBData;
/**
- * Format of functions that create the data for the key when the entry doesn't
+ * Format of functions that create the data for the key when the entry doesn't
* exist in the database yet.
* @param key Key of the database entry
* @param args Extra arguments of the function
@@ -200,9 +200,9 @@ typedef struct DBData {
typedef DBData (*DBCreateData)(DBKey key, va_list args);
/**
- * Format of functions to be applied to an unspecified quantity of entries of
+ * Format of functions to be applied to an unspecified quantity of entries of
* a database.
- * Any function that applies this function to the database will return the sum
+ * Any function that applies this function to the database will return the sum
* of values returned by this function.
* @param key Key of the database entry
* @param data Data of the database entry
@@ -280,7 +280,7 @@ typedef struct DBMap DBMap;
* Database iterator.
* Supports forward iteration, backward iteration and removing entries from the database.
* The iterator is initially positioned before the first entry of the database.
- * While the iterator exists the database is locked internally, so invoke
+ * While the iterator exists the database is locked internally, so invoke
* {@link DBIterator#destroy} as soon as possible.
* @public
* @see #DBMap
@@ -334,7 +334,7 @@ struct DBIterator
/**
* Returns true if the fetched entry exists.
- * The databases entries might have NULL data, so use this to to test if
+ * The databases entries might have NULL data, so use this to to test if
* the iterator is done.
* @param self Iterator
* @return true is the entry exists
@@ -344,7 +344,7 @@ struct DBIterator
/**
* Removes the current entry from the database.
- * NOTE: {@link DBIterator#exists} will return false until another entry
+ * NOTE: {@link DBIterator#exists} will return false until another entry
* is fetched
* Puts data of the removed entry in out_data, if out_data is not NULL.
* @param self Iterator
@@ -375,7 +375,7 @@ struct DBMap {
/**
* Returns a new iterator for this database.
* The iterator keeps the database locked until it is destroyed.
- * The database will keep functioning normally but will only free internal
+ * The database will keep functioning normally but will only free internal
* memory when unlocked, so destroy the iterator as soon as possible.
* @param self Database
* @return New iterator
@@ -407,7 +407,7 @@ struct DBMap {
* It puts a maximum of <code>max</code> entries into <code>buf</code>.
* If <code>buf</code> is NULL, it only counts the matches.
* Returns the number of entries that matched.
- * NOTE: if the value returned is greater than <code>max</code>, only the
+ * NOTE: if the value returned is greater than <code>max</code>, only the
* first <code>max</code> entries found are put into the buffer.
* @param self Database
* @param buf Buffer to put the data of the matched entries
@@ -425,7 +425,7 @@ struct DBMap {
* It puts a maximum of <code>max</code> entries into <code>buf</code>.
* If <code>buf</code> is NULL, it only counts the matches.
* Returns the number of entries that matched.
- * NOTE: if the value returned is greater than <code>max</code>, only the
+ * NOTE: if the value returned is greater than <code>max</code>, only the
* first <code>max</code> entries found are put into the buffer.
* @param self Database
* @param buf Buffer to put the data of the matched entries
@@ -441,7 +441,7 @@ struct DBMap {
/**
* Just calls {@link DBMap#vensure}.
* Get the data of the entry identified by the key.
- * If the entry does not exist, an entry is added with the data returned by
+ * If the entry does not exist, an entry is added with the data returned by
* <code>create</code>.
* @param self Database
* @param key Key that identifies the entry
@@ -455,7 +455,7 @@ struct DBMap {
/**
* Get the data of the entry identified by the key.
- * If the entry does not exist, an entry is added with the data returned by
+ * If the entry does not exist, an entry is added with the data returned by
* <code>create</code>.
* @param self Database
* @param key Key that identifies the entry
@@ -552,7 +552,7 @@ struct DBMap {
* Before deleting an entry, func is applied to it.
* Releases the key and the data.
* Returns the sum of values returned by func, if it exists.
- * NOTE: This locks the database globally. Any attempt to insert or remove
+ * NOTE: This locks the database globally. Any attempt to insert or remove
* a database entry will give an error and be aborted (except for clearing).
* @param self Database
* @param func Function to be applied to every entry before deleting
@@ -567,7 +567,7 @@ struct DBMap {
* Finalize the database, feeing all the memory it uses.
* Before deleting an entry, func is applied to it.
* Returns the sum of values returned by func, if it exists.
- * NOTE: This locks the database globally. Any attempt to insert or remove
+ * NOTE: This locks the database globally. Any attempt to insert or remove
* a database entry will give an error and be aborted (except for clearing).
* @param self Database
* @param func Function to be applied to every entry before deleting
@@ -759,7 +759,7 @@ DBComparator (*default_cmp) (DBType type);
DBHasher (*default_hash) (DBType type);
/**
- * Returns the default releaser for the specified type of database with the
+ * Returns the default releaser for the specified type of database with the
* specified options.
* NOTE: the options are fixed by {@link #db_fix_options(DBType,DBOptions)}
* before choosing the releaser
@@ -788,7 +788,7 @@ DBReleaser (*custom_release) (DBRelease which);
/**
* Allocate a new database of the specified type.
- * It uses the default comparator, hasher and releaser of the specified
+ * It uses the default comparator, hasher and releaser of the specified
* database type and fixed options.
* NOTE: the options are fixed by {@link #db_fix_options(DBType,DBOptions)}
* before creating the database.
@@ -796,7 +796,7 @@ DBReleaser (*custom_release) (DBRelease which);
* @param line Line of the file where the database is being allocated
* @param type Type of database
* @param options Options of the database
- * @param maxlen Maximum length of the string to be used as key in string
+ * @param maxlen Maximum length of the string to be used as key in string
* databases. If 0, the maximum number of maxlen is used (64K).
* @return The interface of the database
* @public
diff --git a/src/common/ers.c b/src/common/ers.c
index d9895e4f2..39e05a14c 100644
--- a/src/common/ers.c
+++ b/src/common/ers.c
@@ -78,7 +78,7 @@ typedef struct ers_cache
// Memory blocks array
unsigned char **Blocks;
- // Max number of blocks
+ // Max number of blocks
unsigned int Max;
// Free objects count
@@ -190,26 +190,19 @@ static void *ers_obj_alloc_entry(ERS self)
struct ers_instance_t *instance = (struct ers_instance_t *)self;
void *ret;
- if (instance == NULL)
- {
+ if (instance == NULL) {
ShowError("ers_obj_alloc_entry: NULL object, aborting entry freeing.\n");
return NULL;
}
- if (instance->Cache->ReuseList != NULL)
- {
+ if (instance->Cache->ReuseList != NULL) {
ret = (void *)((unsigned char *)instance->Cache->ReuseList + sizeof(struct ers_list));
instance->Cache->ReuseList = instance->Cache->ReuseList->Next;
- }
- else if (instance->Cache->Free > 0)
- {
+ } else if (instance->Cache->Free > 0) {
instance->Cache->Free--;
ret = &instance->Cache->Blocks[instance->Cache->Used - 1][instance->Cache->Free * instance->Cache->ObjectSize + sizeof(struct ers_list)];
- }
- else
- {
- if (instance->Cache->Used == instance->Cache->Max)
- {
+ } else {
+ if (instance->Cache->Used == instance->Cache->Max) {
instance->Cache->Max = (instance->Cache->Max * 4) + 3;
RECREATE(instance->Cache->Blocks, unsigned char *, instance->Cache->Max);
}
@@ -237,13 +230,10 @@ static void ers_obj_free_entry(ERS self, void *entry)
struct ers_instance_t *instance = (struct ers_instance_t *)self;
struct ers_list *reuse = (struct ers_list *)((unsigned char *)entry - sizeof(struct ers_list));
- if (instance == NULL)
- {
+ if (instance == NULL) {
ShowError("ers_obj_free_entry: NULL object, aborting entry freeing.\n");
return;
- }
- else if (entry == NULL)
- {
+ } else if (entry == NULL) {
ShowError("ers_obj_free_entry: NULL entry, nothing to free.\n");
return;
}
@@ -261,11 +251,10 @@ static size_t ers_obj_entry_size(ERS self)
{
struct ers_instance_t *instance = (struct ers_instance_t *)self;
- if (instance == NULL)
- {
+ if (instance == NULL) {
ShowError("ers_obj_entry_size: NULL object, aborting entry freeing.\n");
return 0;
- }
+ }
return instance->Cache->ObjectSize;
}
@@ -274,8 +263,7 @@ static void ers_obj_destroy(ERS self)
{
struct ers_instance_t *instance = (struct ers_instance_t *)self;
- if (instance == NULL)
- {
+ if (instance == NULL) {
ShowError("ers_obj_destroy: NULL object, aborting entry freeing.\n");
return;
}
diff --git a/src/common/ers.h b/src/common/ers.h
index 23a996923..7eceaf87a 100644
--- a/src/common/ers.h
+++ b/src/common/ers.h
@@ -55,7 +55,7 @@
/**
* Define this to disable the Entry Reusage System.
* All code except the typedef of ERInterface will be disabled.
- * To allow a smooth transition,
+ * To allow a smooth transition,
*/
//#define DISABLE_ERS
@@ -63,7 +63,7 @@
* Entries are aligned to ERS_ALIGNED bytes in the blocks of entries.
* By default it aligns to one byte, using the "natural order" of the entries.
* This should NEVER be set to zero or less.
- * If greater than one, some memory can be wasted. This should never be needed
+ * If greater than one, some memory can be wasted. This should never be needed
* but is here just in case some aligment issues arise.
*/
#ifndef ERS_ALIGNED
@@ -118,7 +118,7 @@ typedef struct eri {
/**
* Destroy this instance of the manager.
* The manager is actually only destroyed when all the instances are destroyed.
- * When destroying the manager a warning is shown if the manager has
+ * When destroying the manager a warning is shown if the manager has
* missing/extra entries.
* @param self Interface of the entry manager
*/
@@ -140,7 +140,7 @@ typedef struct eri {
# define ers_report()
# define ers_final()
#else /* not DISABLE_ERS */
-// These defines should be used to allow the code to keep working whenever
+// These defines should be used to allow the code to keep working whenever
// the system is disabled
# define ers_alloc(obj,type) ((type *)(obj)->alloc(obj))
# define ers_free(obj,entry) ((obj)->free((obj),(entry)))
@@ -151,9 +151,9 @@ typedef struct eri {
/**
* Get a new instance of the manager that handles the specified entry size.
* Size has to greater than 0.
- * If the specified size is smaller than a pointer, the size of a pointer is
+ * If the specified size is smaller than a pointer, the size of a pointer is
* used instead.
- * It's also aligned to ERS_ALIGNED bytes, so the smallest multiple of
+ * It's also aligned to ERS_ALIGNED bytes, so the smallest multiple of
* ERS_ALIGNED that is greater or equal to size is what's actually used.
* @param The requested size of the entry in bytes
* @return Interface of the object
diff --git a/src/common/malloc.c b/src/common/malloc.c
index 13cf0b5ce..74303fa92 100644
--- a/src/common/malloc.c
+++ b/src/common/malloc.c
@@ -21,7 +21,7 @@ struct malloc_interface iMalloc_s;
#if defined(MEMWATCH)
-# include <string.h>
+# include <string.h>
# include "memwatch.h"
# define MALLOC(n,file,line,func) mwMalloc((n),(file),(line))
# define CALLOC(m,n,file,line,func) mwCalloc((m),(n),(file),(line))
@@ -421,7 +421,7 @@ void _mfree(void *ptr, const char *file, int line, const char *func )
struct unit_head *head;
if (ptr == NULL)
- return;
+ return;
head = (struct unit_head *)((char *)ptr - sizeof(struct unit_head) + sizeof(long));
if(head->size == 0) {
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 0003aa917..4ac7ee793 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -352,7 +352,7 @@ struct s_pet {
short hungry;//pet hungry
char name[NAME_LENGTH];
char rename_flag;
- char incuvate;
+ char incubate;
};
struct s_homunculus { //[orn]
diff --git a/src/common/mutex.c b/src/common/mutex.c
index 12524c3b7..626dfa2e1 100644
--- a/src/common/mutex.c
+++ b/src/common/mutex.c
@@ -5,6 +5,8 @@
#include "mutex.h"
+#include "../common/cbasetypes.h" // for WIN32
+
#ifdef WIN32
#include "../common/winapi.h"
#else
@@ -13,7 +15,6 @@
#include <sys/time.h>
#endif
-#include "../common/cbasetypes.h"
#include "../common/malloc.h"
#include "../common/showmsg.h"
#include "../common/timer.h"
@@ -119,7 +120,7 @@ void ramutex_unlock( ramutex m ){
///////////////
// Condition Variables
-//
+//
// Implementation:
//
diff --git a/src/common/mutex.h b/src/common/mutex.h
index 3b83b66d6..f78e31841 100644
--- a/src/common/mutex.h
+++ b/src/common/mutex.h
@@ -1,5 +1,5 @@
// Copyright (c) rAthena Project (www.rathena.org) - Licensed under GNU GPL
-// For more information, see LICENCE in the main folder
+// For more information, see LICENCE in the main folder
#ifndef _COMMON_MUTEX_H_
#define _COMMON_MUTEX_H_
@@ -10,36 +10,36 @@ typedef struct ramutex *ramutex; // Mutex
typedef struct racond *racond; // Condition Var
/**
- * Creates a Mutex
+ * Creates a Mutex
*
* @return not NULL
*/
ramutex ramutex_create();
-/**
+/**
* Destroys a Mutex
- *
+ *
* @param m - the mutex to destroy
*/
void ramutex_destroy( ramutex m );
-/**
+/**
* Gets a lock
*
* @param m - the mutex to lock
*/
void ramutex_lock( ramutex m);
-/**
+/**
* Trys to get the Lock
- *
+ *
* @param m - the mutex try to lock
- *
+ *
* @return boolean (true = got the lock)
*/
bool ramutex_trylock( ramutex m );
-/**
+/**
* Unlocks a mutex
*
* @param m - the mutex to unlock
@@ -47,14 +47,14 @@ bool ramutex_trylock( ramutex m );
void ramutex_unlock( ramutex m);
-/**
+/**
* Creates a Condition variable
*
* @return not NULL
*/
racond racond_create();
-/**
+/**
* Destroy a Condition variable
*
* @param c - the condition varaible to destroy
@@ -63,14 +63,14 @@ void racond_destroy( racond c );
/**
* Waits Until state is signalled
- *
- * @param c - the condition var to wait for signalled state
+ *
+ * @param c - the condition var to wait for signalled state
* @param m - the mutex used for syncronization
* @param timeout_ticks - timeout in ticks ( -1 = INFINITE )
*/
void racond_wait( racond c, ramutex m, sysint timeout_ticks);
-/**
+/**
* Sets the given condition var to signalled state
*
* @param c - condition var to set in signalled state.
@@ -80,13 +80,13 @@ void racond_wait( racond c, ramutex m, sysint timeout_ticks);
*/
void racond_signal( racond c );
-/**
+/**
* Sets notifys all waiting threads thats signalled.
* @param c - condition var to set in signalled state
- *
+ *
* @note:
* All Waiters getting notified.
- */
+ */
void racond_broadcast( racond c );
diff --git a/src/common/nullpo.c b/src/common/nullpo.c
index 1891835f1..a3471b00d 100644
--- a/src/common/nullpo.c
+++ b/src/common/nullpo.c
@@ -14,7 +14,7 @@
/**
* Reports failed assertions or NULL pointers
- *
+ *
* @param file Source file where the error was detected
* @param line Line
* @param func Function
diff --git a/src/common/random.c b/src/common/random.c
index 7019a31f3..88d5748cf 100644
--- a/src/common/random.c
+++ b/src/common/random.c
@@ -9,6 +9,7 @@
#include <mt19937ar.h> // init_genrand, genrand_int32, genrand_res53
+#include "../common/cbasetypes.h" // for WIN32
#include "../common/showmsg.h"
#include "../common/timer.h" // gettick
diff --git a/src/common/showmsg.c b/src/common/showmsg.c
index 1dbcba282..2a8e2d5f8 100644
--- a/src/common/showmsg.c
+++ b/src/common/showmsg.c
@@ -91,7 +91,7 @@ int console_msg_log = 0;//[Ind] msg error logging
// ansi compatible printf with control sequence parser for windows
// fast hack, handle with care, not everything implemented
//
-// \033[#;...;#m - Set Graphics Rendition (SGR)
+// \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)
@@ -110,19 +110,19 @@ int console_msg_log = 0;//[Ind] msg error logging
// 8 - Concealed (invisible)
//
// \033[#A - Cursor Up (CUU)
-// Moves the cursor up by the specified number of lines without changing columns.
+// Moves the cursor up by the specified number of lines without changing columns.
// If the cursor is already on the top line, this sequence is ignored. \e[A is equivalent to \e[1A.
//
// \033[#B - Cursor Down (CUD)
-// Moves the cursor down by the specified number of lines without changing columns.
+// Moves the cursor down by the specified number of lines without changing columns.
// If the cursor is already on the bottom line, this sequence is ignored. \e[B is equivalent to \e[1B.
//
// \033[#C - Cursor Forward (CUF)
-// Moves the cursor forward by the specified number of columns without changing lines.
+// Moves the cursor forward by the specified number of columns without changing lines.
// If the cursor is already in the rightmost column, this sequence is ignored. \e[C is equivalent to \e[1C.
//
// \033[#D - Cursor Backward (CUB)
-// Moves the cursor back by the specified number of columns without changing lines.
+// Moves the cursor back by the specified number of columns without changing lines.
// If the cursor is already in the leftmost column, this sequence is ignored. \e[D is equivalent to \e[1D.
//
// \033[#E - Cursor Next Line (CNL)
@@ -135,15 +135,15 @@ int console_msg_log = 0;//[Ind] msg error logging
// Moves the cursor to indicated column in current row. \e[G is equivalent to \e[1G.
//
// \033[#;#H - Cursor Position (CUP)
-// Moves the cursor to the specified position. The first # specifies the line number,
-// the second # specifies the column. If you do not specify a position, the cursor moves to the home position:
+// Moves the cursor to the specified position. The first # specifies the line number,
+// the second # specifies the column. If you do not specify a position, the cursor moves to the home position:
// the upper-left corner of the screen (line 1, column 1).
//
// \033[#;#f - Horizontal & Vertical Position
// (same as \033[#;#H)
//
// \033[s - Save Cursor Position (SCP)
-// The current cursor position is saved.
+// The current cursor position is saved.
//
// \033[u - Restore cursor position (RCP)
// Restores the cursor position saved with the (SCP) sequence \033[s.
@@ -213,7 +213,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
WriteFile(handle, p, (DWORD)(q-p), &written, 0);
if( q[1]!='[' )
- { // write the escape char (whatever purpose it has)
+ { // 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
@@ -233,7 +233,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
q=q+2;
for(;;)
{
- if( ISDIGIT(*q) )
+ 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');
@@ -350,12 +350,12 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
else if(num==2)
{ // Number of chars on screen.
cnt = info.dwSize.X * info.dwSize.Y;
- SetConsoleCursorPosition(handle, origin);
+ SetConsoleCursorPosition(handle, origin);
}
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;
+ 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);
@@ -389,7 +389,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
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 first # specifies the line number, the second # specifies the column.
// The default for both is 1
info.dwCursorPosition.X = (numbers[numpoint])?(numbers[numpoint]>>4)*10+((numbers[numpoint]&0x0F)-1):0;
info.dwCursorPosition.Y = (numpoint && numbers[numpoint-1])?(numbers[numpoint-1]>>4)*10+((numbers[numpoint-1]&0x0F)-1):0;
@@ -486,7 +486,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
--q;
}
// skip the sequencer and search again
- p = q+1;
+ p = q+1;
break;
}// end while
}
@@ -542,7 +542,7 @@ int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
{ // 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)
+ { // write the escape char (whatever purpose it has)
fprintf(file, "%.*s", 1, q);
p=q+1; //and start searching again
}
@@ -555,7 +555,7 @@ int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
q=q+2;
while(1)
{
- if( ISDIGIT(*q) )
+ if( ISDIGIT(*q) )
{
++q;
// and next character
@@ -624,7 +624,7 @@ int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
--q;
}
// skip the sequencer and search again
- p = q+1;
+ p = q+1;
break;
}// end while
}
diff --git a/src/common/socket.c b/src/common/socket.c
index 3738f2c2a..ac6be68fe 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -64,7 +64,7 @@ struct socket_interface sockt_s;
/////////////////////////////////////////////////////////////////////
#if defined(WIN32)
/////////////////////////////////////////////////////////////////////
-// windows portability layer
+// windows portability layer
typedef int socklen_t;
@@ -110,7 +110,7 @@ int sock2fd(SOCKET s)
/// Inserts the socket into the global array of sockets.
/// Returns a new fd associated with the socket.
-/// If there are too many sockets it closes the socket, sets an error and
+/// If there are too many sockets it closes the socket, sets an error and
// returns -1 instead.
/// Since fd 0 is reserved, it returns values in the range [1,FD_SETSIZE[.
///
@@ -293,8 +293,8 @@ void set_defaultparse(ParseFunc defaultparse)
*--------------------------------------*/
void set_nonblocking(int fd, unsigned long yes)
{
- // FIONBIO Use with a nonzero argp parameter to enable the nonblocking mode of socket s.
- // The argp parameter is zero if nonblocking is to be disabled.
+ // FIONBIO Use with a nonzero argp parameter to enable the nonblocking mode of socket s.
+ // The argp parameter is zero if nonblocking is to be disabled.
if( sIoctl(fd, FIONBIO, &yes) != 0 )
ShowError("set_nonblocking: Failed to set socket #%d to non-blocking mode (%s) - Please report this!!!\n", fd, error_msg());
}
diff --git a/src/common/spinlock.h b/src/common/spinlock.h
index 0058e1d83..1c0825181 100644
--- a/src/common/spinlock.h
+++ b/src/common/spinlock.h
@@ -57,7 +57,7 @@ static forceinline void FinalizeSpinLock(PSPIN_LOCK lck){
static forceinline void EnterSpinLock(PSPIN_LOCK lck){
int tid = rathread_get_tid();
- // Get Sync Lock && Check if the requester thread already owns the lock.
+ // Get Sync Lock && Check if the requester thread already owns the lock.
// if it owns, increase nesting level
getsynclock(&lck->sync_lock);
if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
@@ -69,7 +69,7 @@ static forceinline void EnterSpinLock(PSPIN_LOCK lck){
dropsynclock(&lck->sync_lock);
- // Spin until we've got it !
+ // Spin until we've got it !
while(1){
if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
diff --git a/src/common/sql.c b/src/common/sql.c
index aeb56bff0..ffc4d63ef 100644
--- a/src/common/sql.c
+++ b/src/common/sql.c
@@ -402,8 +402,7 @@ void Sql_ShowDebug_(Sql* self, const char* debug_file, const unsigned long debug
/// Frees a Sql handle returned by Sql_Malloc.
-void Sql_Free(Sql* self)
-{
+void Sql_Free(Sql* self) {
if( self )
{
SQL->FreeResult(self);
@@ -549,7 +548,7 @@ static void Sql_P_ShowDebugMysqlFieldInfo(const char* prefix, enum enum_field_ty
SHOW_DEBUG_OF(MYSQL_TYPE_NULL);
#undef SHOW_DEBUG_TYPE_OF
}
- ShowDebug("%stype=%s%s, length=%d%s\n", prefix, sign, type_string, length, length_postfix);
+ ShowDebug("%stype=%s%s, length=%d%s\n", prefix, sign, type_string, length, length_postfix);
}
diff --git a/src/common/sql.h b/src/common/sql.h
index 807e0843c..64d8307fc 100644
--- a/src/common/sql.h
+++ b/src/common/sql.h
@@ -147,10 +147,10 @@ struct sql_interface {
///////////////////////////////////////////////////////////////////////////////
// Prepared Statements
///////////////////////////////////////////////////////////////////////////////
- // Parameters are placed in the statement by embedding question mark ('?')
+ // Parameters are placed in the statement by embedding question mark ('?')
// characters into the query at the appropriate positions.
// The markers are legal only in places where they represent data.
- // The markers cannot be inside quotes. Quotes will be added automatically
+ // The markers cannot be inside quotes. Quotes will be added automatically
// when they are required.
//
// example queries with parameters:
@@ -236,7 +236,7 @@ struct sql_interface {
/// Binds the result of a column to a buffer.
/// The buffer will be filled with data when the next row is fetched.
- /// For string/enum buffer types there has to be enough space for the data
+ /// For string/enum buffer types there has to be enough space for the data
/// and the nul-terminator (an extra byte).
///
/// @return SQL_SUCCESS or SQL_ERROR
diff --git a/src/common/strlib.c b/src/common/strlib.c
index e2e802915..10e893c3a 100644
--- a/src/common/strlib.c
+++ b/src/common/strlib.c
@@ -192,7 +192,7 @@ char* normalize_name(char* str,const char* delims)
return str;
}
-//stristr: Case insensitive version of strstr, code taken from
+//stristr: Case insensitive version of strstr, code taken from
//http://www.daniweb.com/code/snippet313.html, Dave Sinkula
//
const char* stristr(const char* haystack, const char* needle)
@@ -618,13 +618,13 @@ int sv_parse_next(struct s_svstate* svstate)
/// 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.
-///
+///
/// out_pos can be NULL.
/// If a line terminator is found, the end position is placed there.
-/// out_pos[2] and out_pos[3] for the first field, out_pos[4] and out_pos[5]
+/// out_pos[2] and out_pos[3] for the first field, out_pos[4] and out_pos[5]
/// for the seconds field and so on.
/// Unfilled positions are set to -1.
-///
+///
/// @param str String to parse
/// @param len Length of the string
/// @param startoff Where to start parsing
@@ -668,11 +668,11 @@ int sv_parse(const char* str, int len, int startoff, char delim, int* out_pos, i
/// out_fields[0] is the start of the next line.
/// Other entries are the start of fields (nul-teminated).
/// Returns the number of fields found or -1 if an error occurs.
-///
+///
/// out_fields can be NULL.
/// Fields that don't fit in out_fields are not nul-terminated.
/// Extra entries in out_fields are filled with the end of the last field (empty string).
-///
+///
/// @param str String to parse
/// @param len Length of the string
/// @param startoff Where to start parsing
diff --git a/src/common/thread.c b/src/common/thread.c
index 4f73aa9b3..91360537f 100644
--- a/src/common/thread.c
+++ b/src/common/thread.c
@@ -17,19 +17,19 @@
#ifdef WIN32
# include "../common/winapi.h"
# define getpagesize() 4096 // @TODO: implement this properly (GetSystemInfo .. dwPageSize..). (Atm as on all supported win platforms its 4k its static.)
-# define __thread __declspec( thread )
+# define __thread __declspec( thread )
#else
-# include <stdlib.h>
-# include <unistd.h>
-# include <string.h>
-# include <signal.h>
# include <pthread.h>
# include <sched.h>
+# include <signal.h>
+# include <stdlib.h>
+# include <string.h>
+# include <unistd.h>
#endif
// When Compiling using MSC (on win32..) we know we have support in any case!
-#ifdef _MSC_VER
-#define HAS_TLS
+#ifdef _MSC_VER
+#define HAS_TLS
#endif
@@ -40,7 +40,7 @@ struct rAthread {
RATHREAD_PRIO prio;
rAthreadProc proc;
- void *param;
+ void *param;
#ifdef WIN32
HANDLE hThread;
@@ -82,9 +82,9 @@ void rathread_init(){
void rathread_final(){
register unsigned int i;
- // Unterminated Threads Left?
+ // Unterminated Threads Left?
// Should'nt happen ..
- // Kill 'em all!
+ // Kill 'em all!
//
for(i = 1; i < RA_THREADS_MAX; i++){
if(l_threads[i].proc != NULL){
@@ -116,12 +116,12 @@ static void *_raThreadMainRedirector( void *p ){
// Update myID @ TLS to right id.
#ifdef HAS_TLS
- g_rathread_ID = ((rAthread)p)->myID;
+ g_rathread_ID = ((rAthread)p)->myID;
#endif
#ifndef WIN32
// When using posix threads
- // the threads inherits the Signal mask from the thread which's spawned
+ // the threads inherits the Signal mask from the thread which's spawned
// this thread
// so we've to block everything we dont care about.
sigemptyset(&set);
@@ -136,7 +136,7 @@ static void *_raThreadMainRedirector( void *p ){
ret = ((rAthread)p)->proc( ((rAthread)p)->param ) ;
-#ifdef WIN32
+#ifdef WIN32
CloseHandle( ((rAthread)p)->hThread );
#endif
@@ -154,7 +154,7 @@ static void *_raThreadMainRedirector( void *p ){
///
/// API Level
-///
+///
rAthread rathread_create( rAthreadProc entryPoint, void *param ){
return rathread_createEx( entryPoint, param, (1<<23) /*8MB*/, RAT_PRIO_NORMAL );
}//end: rathread_create()
@@ -175,7 +175,7 @@ rAthread rathread_createEx( rAthreadProc entryPoint, void *param, size_t szSta
szStack += tmp;
- // Get a free Thread Slot.
+ // Get a free Thread Slot.
for(i = 0; i < RA_THREADS_MAX; i++){
if(l_threads[i].proc == NULL){
handle = &l_threads[i];
@@ -223,7 +223,6 @@ void rathread_destroy ( rAthread handle ){
if( pthread_cancel( handle->hThread ) == 0){
// We have to join it, otherwise pthread wont re-cycle its internal ressources assoc. with this thread.
- //
pthread_join( handle->hThread, NULL );
// Tell our manager to release ressources ;)
@@ -236,10 +235,10 @@ rAthread rathread_self( ){
#ifdef HAS_TLS
rAthread handle = &l_threads[g_rathread_ID];
- if(handle->proc != NULL) // entry point set, so its used!
+ if(handle->proc != NULL) // entry point set, so its used!
return handle;
#else
- // .. so no tls means we have to search the thread by its api-handle ..
+ // .. so no tls means we have to search the thread by its api-handle ..
int i;
#ifdef WIN32
@@ -257,13 +256,13 @@ rAthread rathread_self( ){
#endif
- return NULL;
+ return NULL;
}//end: rathread_self()
int rathread_get_tid(){
-#ifdef HAS_TLS
+#ifdef HAS_TLS
return g_rathread_ID;
#else
// todo
@@ -286,7 +285,7 @@ bool rathread_wait( rAthread handle, void* *out_exitCode ){
//
#ifdef WIN32
WaitForSingleObject(handle->hThread, INFINITE);
- return true;
+ return true;
#else
if(pthread_join(handle->hThread, out_exitCode) == 0)
return true;
@@ -297,8 +296,8 @@ bool rathread_wait( rAthread handle, void* *out_exitCode ){
void rathread_prio_set( rAthread handle, RATHREAD_PRIO prio ){
- handle->prio = RAT_PRIO_NORMAL;
- //@TODO
+ handle->prio = RAT_PRIO_NORMAL;
+ //@TODO
}//end: rathread_prio_set()
@@ -308,9 +307,9 @@ RATHREAD_PRIO rathread_prio_get( rAthread handle){
void rathread_yield(){
-#ifdef WIN32
+#ifdef WIN32
SwitchToThread();
#else
sched_yield();
-#endif
+#endif
}//end: rathread_yield()
diff --git a/src/common/thread.h b/src/common/thread.h
index 887c03179..7ad326509 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -12,7 +12,7 @@ typedef void* (*rAthreadProc)(void*);
typedef enum RATHREAD_PRIO {
RAT_PRIO_LOW = 0,
RAT_PRIO_NORMAL,
- RAT_PRIO_HIGH
+ RAT_PRIO_HIGH
} RATHREAD_PRIO;
@@ -21,18 +21,18 @@ typedef enum RATHREAD_PRIO {
*
* @param entyPoint - entryProc,
* @param param - general purpose parameter, would be given as parameter to the thread's entrypoint.
- *
+ *
* @return not NULL if success
*/
rAthread rathread_create( rAthreadProc entryPoint, void *param );
-/**
+/**
* Creates a new Thread (with more creation options)
*
* @param entyPoint - entryProc,
* @param param - general purpose parameter, would be given as parameter to the thread's entrypoint
- * @param szStack - stack Size in bytes
+ * @param szStack - stack Size in bytes
* @param prio - Priority of the Thread @ OS Scheduler..
*
* @return not NULL if success
@@ -43,29 +43,29 @@ rAthread rathread_createEx( rAthreadProc entryPoint, void *param, size_t szSta
/**
* Destroys the given Thread immediatly
*
- * @note The Handle gets invalid after call! dont use it afterwards.
+ * @note The Handle gets invalid after call! dont use it afterwards.
*
* @param handle - thread to destroy.
*/
void rathread_destroy ( rAthread handle );
-/**
+/**
* Returns the thread handle of the thread calling this function
- *
+ *
* @note this wont work @ programms main thread
- * @note the underlying implementation might not perform very well, cache the value received!
- *
+ * @note the underlying implementation might not perform very well, cache the value received!
+ *
* @return not NULL if success
*/
rAthread rathread_self( );
/**
- * Returns own thrad id (TID)
+ * Returns own thrad id (TID)
*
- * @note this is an unique identifier for the calling thread, and
- * depends on platfrom / compiler, and may not be the systems Thread ID!
+ * @note this is an unique identifier for the calling thread, and
+ * depends on platfrom / compiler, and may not be the systems Thread ID!
*
* @return -1 when fails, otherwise >= 0
*/
@@ -73,26 +73,26 @@ int rathread_get_tid();
/**
- * Waits for the given thread to terminate
+ * Waits for the given thread to terminate
*
* @param handle - thread to wait (join) for
* @param out_Exitcode - [OPTIONAL] - if given => Exitcode (value) of the given thread - if it's terminated
- *
+ *
* @return true - if the given thread has been terminated.
*/
bool rathread_wait( rAthread handle, void* *out_exitCode );
-/**
+/**
* Sets the given PRIORITY @ OS Task Scheduler
- *
+ *
* @param handle - thread to set prio for
* @param rio - the priority (RAT_PRIO_LOW ... )
*/
void rathread_prio_set( rAthread handle, RATHREAD_PRIO prio );
-/**
+/**
* Gets the current Prio of the given trhead
*
* @param handle - the thread to get the prio for.
@@ -102,9 +102,9 @@ 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
+ * it just allows the OS to spent the remaining time
* of the slice to another thread.
*/
void rathread_yield();
diff --git a/src/common/timer.c b/src/common/timer.c
index 10f14b0f2..5240ec202 100644
--- a/src/common/timer.c
+++ b/src/common/timer.c
@@ -130,7 +130,7 @@ static void rdtsc_calibrate(){
t1 = _rdtsc();
usleep(1000000); //1000 MS
t2 = _rdtsc();
- RDTSC_CLOCK += (t2 - t1) / 1000;
+ RDTSC_CLOCK += (t2 - t1) / 1000;
}
RDTSC_CLOCK /= 5;
@@ -180,7 +180,7 @@ static int64 sys_tick(void) {
// Monotinic clock: Implementation-defined.
// Clock that cannot be set and represents monotonic time since some
// unspecified starting point. This clock is not affected by
- // discontinâ€uous jumps in the system time (e.g., if the system
+ // discontinuous jumps in the system time (e.g., if the system
// administrator manually changes the clock), but is affected by
// the incremental adjustments performed by adjtime(3) and NTP.
struct timespec tval;
@@ -453,7 +453,7 @@ void timer_final(void) {
if (free_timer_list) aFree(free_timer_list);
}
/*=====================================
-* Default Functions : timer.h
+* Default Functions : timer.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/common/timer.h b/src/common/timer.h
index 1ce8cf203..a07f81612 100644
--- a/src/common/timer.h
+++ b/src/common/timer.h
@@ -30,13 +30,13 @@ struct TimerData {
int interval;
// general-purpose storage
- int id;
+ int id;
intptr_t data;
};
/*=====================================
-* Interface : timer.h
+* Interface : timer.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/common/utils.c b/src/common/utils.c
index 84925f707..80954f848 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -265,9 +265,9 @@ uint32 MakeDWord(uint16 word0, uint16 word1)
( (uint32)(word0 ) )|
( (uint32)(word1 << 0x10) );
}
+
/*************************************
-* Big-endian compatibility functions *
-* From mapcache.c *
+* Big-endian compatibility functions *
*************************************/
// Converts an int16 from current machine order to little-endian
diff --git a/src/common/winapi.h b/src/common/winapi.h
index 7ce555049..b7c2bea1e 100644
--- a/src/common/winapi.h
+++ b/src/common/winapi.h
@@ -7,7 +7,7 @@
#define WINVER 0x0500
#define _WIN32_IE 0x0600
#define WIN32_LEAN_AND_MEAN
-#define NOCOMM
+#define NOCOMM
#define NOKANJI
#define NOHELP
#define NOMCX
@@ -32,5 +32,3 @@
#include <Ws2tcpip.h>
#include <Mswsock.h>
#include <MMSystem.h>
-
-
diff --git a/src/config/const.h b/src/config/const.h
index ba06d70cb..23467bfa6 100644
--- a/src/config/const.h
+++ b/src/config/const.h
@@ -15,7 +15,7 @@
*/
/**
- * "Sane Checks" to save you from compiling with cool bugs
+ * "Sane Checks" to save you from compiling with cool bugs
**/
#if SECURE_NPCTIMEOUT_INTERVAL <= 0
#error SECURE_NPCTIMEOUT_INTERVAL should be at least 1 (1s)
diff --git a/src/login/login.c b/src/login/login.c
index cb46e0226..43883c6ce 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -173,7 +173,7 @@ static int online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
static int online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
online_db->foreach(online_db, online_data_cleanup_sub);
return 0;
-}
+}
//--------------------------------------------------------------------
@@ -1109,7 +1109,7 @@ void login_auth_ok(struct login_session_data* sd)
WFIFOW(fd,0) = 0x81;
WFIFOB(fd,2) = 1; // 01 = Server closed
WFIFOSET(fd,3);
- return;
+ return;
}
server_num = 0;
@@ -1827,7 +1827,7 @@ int do_init(int argc, char** argv)
HPM->config_read(NULL, 0);
HPM->event(HPET_INIT);
- // server port open & binding
+ // server port open & binding
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);
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 7a6ad84e4..a7e4cef39 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -12,6 +12,7 @@
#include <stdlib.h>
#include <string.h>
+#include "HPMmap.h"
#include "battle.h"
#include "chat.h"
#include "chrif.h"
@@ -54,7 +55,6 @@
#include "../common/sysinfo.h"
#include "../common/timer.h"
#include "../common/utils.h"
-#include "HPMmap.h"
struct atcommand_interface atcommand_s;
@@ -1123,14 +1123,14 @@ ACMD(item)
memset(item_name, '\0', sizeof(item_name));
if (!strcmpi(info->command,"itembound") && (!message || !*message || (
- sscanf(message, "\"%99[^\"]\" %d %d", item_name, &number, &bound) < 2 &&
- sscanf(message, "%99s %d %d", item_name, &number, &bound) < 2
+ sscanf(message, "\"%99[^\"]\" %d %d", item_name, &number, &bound) < 2 &&
+ sscanf(message, "%99s %d %d", item_name, &number, &bound) < 2
))) {
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 ))
+ 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;
@@ -1721,67 +1721,63 @@ ACMD(hair_color)
/*==========================================
* @go [city_number or city_name] - Updated by Harbin
*------------------------------------------*/
-ACMD(go)
-{
+ACMD(go) {
int i;
- int town;
+ 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];
- int16 m;
const struct {
char map[MAP_NAME_LENGTH];
int x, y;
+ int min_match; ///< Minimum string length to match
} data[] = {
- { MAP_PRONTERA, 156, 191 }, // 0=Prontera
- { MAP_MORROC, 156, 93 }, // 1=Morroc
- { MAP_GEFFEN, 119, 59 }, // 2=Geffen
- { MAP_PAYON, 162, 233 }, // 3=Payon
- { MAP_ALBERTA, 192, 147 }, // 4=Alberta
+ { MAP_PRONTERA, 156, 191, 3 }, // 0 = Prontera
+ { MAP_MORROC, 156, 93, 4 }, // 1 = Morroc
+ { MAP_GEFFEN, 119, 59, 3 }, // 2 = Geffen
+ { MAP_PAYON, 162, 233, 3 }, // 3 = Payon
+ { MAP_ALBERTA, 192, 147, 3 }, // 4 = Alberta
#ifdef RENEWAL
- { MAP_IZLUDE, 128, 146 }, // 5=Izlude (Renewal)
+ { MAP_IZLUDE, 128, 146, 3 }, // 5 = Izlude (Renewal)
#else
- { MAP_IZLUDE, 128, 114 }, // 5=Izlude
+ { MAP_IZLUDE, 128, 114, 3 }, // 5 = Izlude
#endif
- { MAP_ALDEBARAN, 140, 131 }, // 6=Al de Baran
- { MAP_LUTIE, 147, 134 }, // 7=Lutie
- { MAP_COMODO, 209, 143 }, // 8=Comodo
- { MAP_YUNO, 157, 51 }, // 9=Yuno
- { MAP_AMATSU, 198, 84 }, // 10=Amatsu
- { MAP_GONRYUN, 160, 120 }, // 11=Gonryun
- { MAP_UMBALA, 89, 157 }, // 12=Umbala
- { MAP_NIFLHEIM, 21, 153 }, // 13=Niflheim
- { MAP_LOUYANG, 217, 40 }, // 14=Louyang
- { MAP_NOVICE, 53, 111 }, // 15=Training Grounds
- { MAP_JAIL, 23, 61 }, // 16=Prison
- { MAP_JAWAII, 249, 127 }, // 17=Jawaii
- { MAP_AYOTHAYA, 151, 117 }, // 18=Ayothaya
- { MAP_EINBROCH, 64, 200 }, // 19=Einbroch
- { MAP_LIGHTHALZEN, 158, 92 }, // 20=Lighthalzen
- { MAP_EINBECH, 70, 95 }, // 21=Einbech
- { MAP_HUGEL, 96, 145 }, // 22=Hugel
- { MAP_RACHEL, 130, 110 }, // 23=Rachel
- { MAP_VEINS, 216, 123 }, // 24=Veins
- { MAP_MOSCOVIA, 223, 184 }, // 25=Moscovia
- { MAP_MIDCAMP, 180, 240 }, // 26=Midgard Camp
- { MAP_MANUK, 282, 138 }, // 27=Manuk
- { MAP_SPLENDIDE, 197, 176 }, // 28=Splendide
- { MAP_BRASILIS, 182, 239 }, // 29=Brasilis
- { MAP_DICASTES, 198, 187 }, // 30=El Dicastes
- { MAP_MORA, 44, 151 }, // 31=Mora
- { MAP_DEWATA, 200, 180 }, // 32=Dewata
- { MAP_MALANGDO, 140, 114 }, // 33=Malangdo Island
- { MAP_MALAYA, 242, 211 }, // 34=Malaya Port
- { MAP_ECLAGE, 110, 39 }, // 35=Eclage
+ { MAP_ALDEBARAN, 140, 131, 3 }, // 6 = Aldebaran
+ { MAP_LUTIE, 147, 134, 3 }, // 7 = Lutie
+ { MAP_COMODO, 209, 143, 3 }, // 8 = Comodo
+ { MAP_YUNO, 157, 51, 3 }, // 9 = Juno
+ { MAP_AMATSU, 198, 84, 3 }, // 10 = Amatsu
+ { MAP_GONRYUN, 160, 120, 3 }, // 11 = Kunlun
+ { MAP_UMBALA, 89, 157, 3 }, // 12 = Umbala
+ { MAP_NIFLHEIM, 21, 153, 3 }, // 13 = Niflheim
+ { MAP_LOUYANG, 217, 40, 3 }, // 14 = Luoyang
+ { MAP_NOVICE, 53, 111, 3 }, // 15 = Training Grounds
+ { MAP_JAIL, 23, 61, 3 }, // 16 = Prison
+ { MAP_JAWAII, 249, 127, 3 }, // 17 = Jawaii
+ { MAP_AYOTHAYA, 151, 117, 3 }, // 18 = Ayothaya
+ { MAP_EINBROCH, 64, 200, 5 }, // 19 = Einbroch
+ { MAP_LIGHTHALZEN, 158, 92, 3 }, // 20 = Lighthalzen
+ { MAP_EINBECH, 70, 95, 5 }, // 21 = Einbech
+ { MAP_HUGEL, 96, 145, 3 }, // 22 = Hugel
+ { MAP_RACHEL, 130, 110, 3 }, // 23 = Rachel
+ { MAP_VEINS, 216, 123, 3 }, // 24 = Veins
+ { MAP_MOSCOVIA, 223, 184, 3 }, // 25 = Moscovia
+ { MAP_MIDCAMP, 180, 240, 3 }, // 26 = Midgard Camp
+ { MAP_MANUK, 282, 138, 3 }, // 27 = Manuk
+ { MAP_SPLENDIDE, 197, 176, 3 }, // 28 = Splendide
+ { MAP_BRASILIS, 182, 239, 3 }, // 29 = Brasilis
+ { MAP_DICASTES, 198, 187, 3 }, // 30 = El Dicastes
+ { MAP_MORA, 44, 151, 4 }, // 31 = Mora
+ { MAP_DEWATA, 200, 180, 3 }, // 32 = Dewata
+ { MAP_MALANGDO, 140, 114, 5 }, // 33 = Malangdo Island
+ { 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));
- // get the number
- town = atoi(message);
-
- if (!message || !*message || sscanf(message, "%11s", map_name) < 1 || town < 0 || town >= ARRAYLENGTH(data))
- {// no value matched so send the list of locations
+ 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
@@ -1795,98 +1791,49 @@ ACMD(go)
return false;
}
-
- // get possible name of the city
- map_name[MAP_NAME_LENGTH-1] = '\0';
- for (i = 0; map_name[i]; i++)
- map_name[i] = TOLOWER(map_name[i]);
- // try to identify the map name
- if (strncmp(map_name, "prontera", 3) == 0) {
- town = 0;
- } else if (strncmp(map_name, "morocc", 4) == 0 ||
- strncmp(map_name, "morroc", 4) == 0) {
- town = 1;
- } else if (strncmp(map_name, "geffen", 3) == 0) {
- town = 2;
- } else if (strncmp(map_name, "payon", 3) == 0) {
- town = 3;
- } else if (strncmp(map_name, "alberta", 3) == 0) {
- town = 4;
- } else if (strncmp(map_name, "izlude", 3) == 0) {
- town = 5;
- } else if (strncmp(map_name, "aldebaran", 3) == 0) {
- town = 6;
- } else if (strncmp(map_name, "lutie", 3) == 0 ||
- strcmp(map_name, "christmas") == 0 ||
- strncmp(map_name, "xmas", 3) == 0 ||
- strncmp(map_name, "x-mas", 3) == 0) {
- town = 7;
- } else if (strncmp(map_name, "comodo", 3) == 0) {
- town = 8;
- } else if (strncmp(map_name, "juno", 3) == 0 ||
- strncmp(map_name, "yuno", 3) == 0) {
- town = 9;
- } else if (strncmp(map_name, "amatsu", 3) == 0) {
- town = 10;
- } else if (strncmp(map_name, "kunlun", 3) == 0 ||
- strncmp(map_name, "gonryun", 3) == 0) {
- town = 11;
- } else if (strncmp(map_name, "umbala", 3) == 0) {
- town = 12;
- } else if (strncmp(map_name, "niflheim", 3) == 0) {
- town = 13;
- } else if (strncmp(map_name, "louyang", 3) == 0) {
- town = 14;
- } else if (strncmp(map_name, "new_1-1", 3) == 0 ||
- strncmp(map_name, "startpoint", 3) == 0 ||
- strncmp(map_name, "beginning", 3) == 0) {
- town = 15;
- } else if (strncmp(map_name, "sec_pri", 3) == 0 ||
- strncmp(map_name, "prison", 3) == 0 ||
- strncmp(map_name, "jail", 3) == 0) {
- town = 16;
- } else if (strncmp(map_name, "jawaii", 3) == 0) {
- town = 17;
- } else if (strncmp(map_name, "ayothaya", 3) == 0) {
- town = 18;
- } else if (strncmp(map_name, "einbroch", 5) == 0) {
- town = 19;
- } else if (strncmp(map_name, "lighthalzen", 3) == 0) {
- town = 20;
- } else if (strncmp(map_name, "einbech", 5) == 0) {
- town = 21;
- } else if (strncmp(map_name, "hugel", 3) == 0) {
- town = 22;
- } else if (strncmp(map_name, "rachel", 3) == 0) {
- town = 23;
- } else if (strncmp(map_name, "veins", 3) == 0) {
- town = 24;
- } else if (strncmp(map_name, "moscovia", 3) == 0) {
- town = 25;
- } else if (strncmp(map_name, "mid_camp", 3) == 0) {
- town = 26;
- } else if (strncmp(map_name, "manuk", 3) == 0) {
- town = 27;
- } else if (strncmp(map_name, "splendide", 3) == 0) {
- town = 28;
- } else if (strncmp(map_name, "brasilis", 3) == 0) {
- town = 29;
- } else if (strncmp(map_name, "dicastes01", 3) == 0) {
- town = 30;
- } else if (strcmp(map_name, "mora") == 0) {
- town = 31;
- } else if (strncmp(map_name, "dewata", 3) == 0) {
- town = 32;
- } else if (strncmp(map_name, "malangdo", 5) == 0) {
- town = 33;
- } else if (strncmp(map_name, "malaya", 5) == 0) {
- town = 34;
- } else if (strncmp(map_name, "eclage", 3) == 0) {
- town = 35;
+
+ // Numeric entry
+ if (ISDIGIT(*message) || (message[0] == '-' && ISDIGIT(message[1]))) {
+ town = atoi(message);
}
-
+
+ if (town < 0 || town >= ARRAYLENGTH(data)) {
+ map_name[MAP_NAME_LENGTH-1] = '\0';
+
+ // Match maps on the list
+ for (i = 0; i < ARRAYLENGTH(data); i++) {
+ if (strncmpi(map_name, data[i].map, data[i].min_match) == 0) {
+ town = i;
+ break;
+ }
+ }
+ }
+
+ if (town < 0 || town >= ARRAYLENGTH(data)) {
+ // Alternate spellings
+ if (strncmpi(map_name, "morroc", 4) == 0) { // Correct town name for 'morocc'
+ town = 1;
+ } else if (strncmpi(map_name, "lutie", 3) == 0) { // Correct town name for 'xmas'
+ town = 7;
+ } else if (strncmpi(map_name, "juno", 3) == 0) { // Correct town name for 'yuno'
+ town = 9;
+ } else if (strncmpi(map_name, "kunlun", 3) == 0) { // Original town name for 'gonryun'
+ town = 11;
+ } else if (strncmpi(map_name, "luoyang", 3) == 0) { // Original town name for 'louyang'
+ town = 14;
+ } else if (strncmpi(map_name, "startpoint", 3) == 0 // Easy to remember alternatives to 'new_1-1'
+ || strncmpi(map_name, "beginning", 3) == 0) {
+ town = 15;
+ } else if (strncmpi(map_name, "prison", 3) == 0 // Easy to remember alternatives to 'sec_pri'
+ || strncmpi(map_name, "jail", 3) == 0) {
+ town = 16;
+ } else if (strncmpi(map_name, "rael", 3) == 0) { // Original town name for 'rachel'
+ town = 23;
+ }
+ }
+
if (town >= 0 && town < ARRAYLENGTH(data)) {
- m = map->mapname2mapid(data[town].map);
+ int16 m = map->mapname2mapid(data[town].map);
if (m >= 0 && map->list[m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(247));
return false;
@@ -1901,7 +1848,7 @@ ACMD(go)
clif->message(fd, msg_txt(1)); // Map not found.
return false;
}
- } else { // if you arrive here, you have an error in town variable when reading of names
+ } else {
clif->message(fd, msg_txt(38)); // Invalid location number or name.
return false;
}
@@ -10088,7 +10035,7 @@ void atcommand_config_read(const char* config_filename) {
}
commandinfo->log = false;
}
- }
+ }
// Commands help
// We only check if all commands exist
@@ -10135,7 +10082,7 @@ static inline int AtCommandType2idx(AtCommandType type) { return (type-1); }
/**
* Loads permissions for groups to use commands.
- *
+ *
*/
void atcommand_db_load_groups(GroupSettings **groups, config_setting_t **commands_, size_t sz)
{
diff --git a/src/map/battle.c b/src/map/battle.c
index 0865ee4ba..92f68d433 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -446,7 +446,7 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
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);
@@ -655,7 +655,7 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in
damage += (skill_lv * 10);
else if(pc_isriding(sd))
damage += (skill_lv * 5);
- else
+ else
damage += (skill_lv * 4);
}
break;
@@ -737,7 +737,7 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
#endif
)
damage += 3 * skill2_lv;
- break;
+ break;
#ifndef RENEWAL
case NJ_KUNAI:
if( weapon )
@@ -748,7 +748,7 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
if( sd->weight )
damage += sd->weight / 8 ;
case RA_WUGSTRIKE:
- case RA_WUGBITE:
+ case RA_WUGBITE:
damage += 30*pc->checkskill(sd, RA_TOOTHOFWUG);
break;
case HT_FREEZINGTRAP:
@@ -999,7 +999,7 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
cardfix = cardfix * (100 + sd->right_weapon.addrace[RC_NONDEMIHUMAN]+sd->arrow_addrace[RC_NONDEMIHUMAN]) / 100;
}else{ // Melee attack
if( !battle_config.left_cardfix_to_right ){
- cardfix=cardfix*(100+sd->right_weapon.addrace[tstatus->race])/100;
+ cardfix=cardfix*(100+sd->right_weapon.addrace[tstatus->race])/100;
if( !(nk&NK_NO_ELEFIX) ){
int ele_fix = sd->right_weapon.addele[tstatus->def_ele];
for (i = 0; ARRAYLENGTH(sd->right_weapon.addele2) > i && sd->right_weapon.addele2[i].rate != 0; i++) {
@@ -1019,9 +1019,9 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
cardfix = cardfix * (100 + sd->right_weapon.addrace[RC_NONDEMIHUMAN]) / 100;
if( cflag&1 ){
- cardfix_ = cardfix_*(100+sd->left_weapon.addrace[tstatus->race])/100;
+ cardfix_ = cardfix_*(100+sd->left_weapon.addrace[tstatus->race])/100;
if (!(nk&NK_NO_ELEFIX)){
- int ele_fix_lh = sd->left_weapon.addele[tstatus->def_ele];
+ int ele_fix_lh = sd->left_weapon.addele[tstatus->def_ele];
for (i = 0; ARRAYLENGTH(sd->left_weapon.addele2) > i && sd->left_weapon.addele2[i].rate != 0; i++) {
if (sd->left_weapon.addele2[i].ele != tstatus->def_ele) continue;
if(!(sd->left_weapon.addele2[i].flag&wflag&BF_WEAPONMASK &&
@@ -1221,7 +1221,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
**/
defType def1 = status->get_def(target); //Don't use tstatus->def1 due to skill timer reductions.
short def2 = tstatus->def2, vit_def;
-#ifdef RENEWAL
+#ifdef RENEWAL
def1 = status->calc_def2(target, tsc, def1, false); // equip def(RE)
def2 = status->calc_def(target, tsc, def2, false); // status def(RE)
#else
@@ -1301,7 +1301,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
if( def1 < -399 ) // it stops at -399
def1 = 399; // in aegis it set to 1 but in our case it may lead to exploitation so limit it to 399
- //return 1;
+ //return 1;
if( flag&2 )
damage += def1 >> 1;
@@ -1357,7 +1357,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
**/
if( mdef < -99 ) // it stops at -99
mdef = 99; // in aegis it set to 1 but in our case it may lead to exploitation so limit it to 99
- //return 1;
+ //return 1;
damage = (int)((100.0f - mdef / (mdef + 100.0f) * 90.0f) / 100.0f * damage - mdef2);
#else
@@ -2538,8 +2538,8 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
skillratio += sc->data[SC_LKCONCENTRATION]->val2;
if( sd && sd->status.weapon == W_KATAR && (i=pc->checkskill(sd,ASC_KATAR)) > 0 )
skillratio += skillratio * (10 + 2 * i) / 100;
-#endif
- if( sc && sc->data[SC_CRUSHSTRIKE] ){
+#endif
+ if( (!skill_id || skill_id == KN_AUTOCOUNTER) && sc->data[SC_CRUSHSTRIKE] ){
if( sd )
{//ATK [{Weapon Level * (Weapon Upgrade Level + 6) * 100} + (Weapon ATK) + (Weapon Weight)]%
short index = sd->equip_index[EQI_HAND_R];
@@ -2985,7 +2985,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
rnd()%100 < sce->val3)
status->heal(src, damage*sce->val4/100, 0, 3);
- if( (sce = sc->data[SC_FORCEOFVANGUARD]) && flag&BF_WEAPON
+ if( (sce = sc->data[SC_FORCEOFVANGUARD]) && flag&BF_WEAPON
&& rnd()%100 < sce->val2 && sc->fv_counter <= sce->val3 )
clif->millenniumshield(bl, sc->fv_counter++);
@@ -4517,7 +4517,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_RATE(50);
RE_SKILL_REDUCTION();
}
- break;
+ 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);
@@ -4886,7 +4886,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_ADDRATE(sd->bonus.long_attack_atk_rate);
if( sc && sc->data[SC_MTF_RANGEATK] )
ATK_ADDRATE(25);// temporary it should be 'bonus.long_attack_atk_rate'
- #endif
+ #endif
if( (i=pc->checkskill(sd,AB_EUCHARISTICA)) > 0 &&
(tstatus->race == RC_DEMON || tstatus->def_ele == ELE_DARK) )
ATK_ADDRATE(-i);
@@ -5124,12 +5124,13 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
temp = pc->checkskill(sd,TF_DOUBLE);
wd.damage2 = wd.damage * (1 + (temp * 2))/100;
- if(wd.damage && !wd.damage2) wd.damage2 =
+ if(wd.damage && !wd.damage2) {
#ifdef RENEWAL
- 0;
+ wd.damage2 = 0;
#else
- 1;
+ wd.damage2 = 1;
#endif
+ }
flag.lh = 1;
}
}
diff --git a/src/map/battle.h b/src/map/battle.h
index fbe097c78..0ae18ec30 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -21,12 +21,12 @@ struct status_data;
/**
* Defines
**/
-#define MIN_HAIR_STYLE (battle_config.min_hair_style)
-#define MAX_HAIR_STYLE (battle_config.max_hair_style)
-#define MIN_HAIR_COLOR (battle_config.min_hair_color)
-#define MAX_HAIR_COLOR (battle_config.max_hair_color)
-#define MIN_CLOTH_COLOR (battle_config.min_cloth_color)
-#define MAX_CLOTH_COLOR (battle_config.max_cloth_color)
+#define MIN_HAIR_STYLE (battle->bc->min_hair_style)
+#define MAX_HAIR_STYLE (battle->bc->max_hair_style)
+#define MIN_HAIR_COLOR (battle->bc->min_hair_color)
+#define MAX_HAIR_COLOR (battle->bc->max_hair_color)
+#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]
@@ -469,7 +469,9 @@ struct Battle_Config {
int mon_trans_disable_in_gvg;
int case_sensitive_aegisnames;
-} battle_config;
+};
+
+extern struct Battle_Config battle_config;
/* criteria for battle_config.idletime_critera */
enum e_battle_config_idletime {
@@ -537,9 +539,9 @@ struct battle_interface {
int64 (*attr_fix) (struct block_list *src, struct block_list *target, int64 damage, int atk_elem, int def_type, int def_lv);
/* applies card modifiers */
int64 (*calc_cardfix) (int attack_type, struct block_list *src, struct block_list *target, int nk, int s_ele, int s_ele_, int64 damage, int left, int flag);
- /* applies element modifiers */
+ /* applies element modifiers */
int64 (*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);
- /* applies mastery modifiers */
+ /* applies mastery modifiers */
int64 (*calc_masteryfix) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int div, bool left, bool weapon);
/* calculates chorus bonus */
int (*calc_chorusbonus) (struct map_session_data *sd);
diff --git a/src/map/battleground.c b/src/map/battleground.c
index a7169de0e..4558f32c3 100644
--- a/src/map/battleground.c
+++ b/src/map/battleground.c
@@ -6,8 +6,8 @@
#include "battleground.h"
-#include <string.h>
#include <stdio.h>
+#include <string.h>
#include "battle.h"
#include "clif.h"
diff --git a/src/map/chat.c b/src/map/chat.c
index c9d3e6d46..40a9d2348 100644
--- a/src/map/chat.c
+++ b/src/map/chat.c
@@ -157,8 +157,8 @@ 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->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
@@ -446,7 +446,7 @@ bool chat_npckickall(struct chat_data* cd)
}
/*=====================================
-* Default Functions : chat.h
+* Default Functions : chat.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/chat.h b/src/map/chat.h
index cbc2a391e..6e4fae1c0 100644
--- a/src/map/chat.h
+++ b/src/map/chat.h
@@ -17,7 +17,7 @@ struct npc_data;
struct chat_data {
struct block_list bl; // data for this map object
- char title[CHATROOM_TITLE_SIZE]; // room title
+ char title[CHATROOM_TITLE_SIZE]; // room title
char pass[CHATROOM_PASS_SIZE]; // password
bool pub; // private/public flag
uint8 users; // current user count
@@ -34,7 +34,7 @@ struct chat_data {
};
/*=====================================
-* Interface : chat.h
+* Interface : chat.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 81e2d387c..a69cca573 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -271,7 +271,7 @@ bool chrif_save(struct map_session_data *sd, int flag) {
if (flag)
sd->state.storage_flag = 0; //Force close it.
- //Saving of registry values.
+ //Saving of registry values.
if (sd->vars_dirty)
intif->saveregistry(sd);
@@ -291,7 +291,7 @@ bool chrif_save(struct map_session_data *sd, int flag) {
if( sd->md && mercenary->get_lifetime(sd->md) > 0 )
mercenary->save(sd->md);
if( sd->ed && elemental->get_lifetime(sd->ed) > 0 )
- elemental->save(sd->ed);
+ elemental->save(sd->ed);
if( sd->save_quest )
intif->quest_save(sd);
@@ -1367,7 +1367,7 @@ int chrif_parse(int fd) {
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 == 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);
@@ -1638,7 +1638,7 @@ void do_init_chrif(bool minimal) {
/*=====================================
-* Default Functions : chrif.h
+* Default Functions : chrif.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/chrif.h b/src/map/chrif.h
index 84efc66d3..661ba8f84 100644
--- a/src/map/chrif.h
+++ b/src/map/chrif.h
@@ -41,7 +41,7 @@ struct auth_node {
};
/*=====================================
-* Interface : chrif.h
+* Interface : chrif.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/clif.c b/src/map/clif.c
index 068cb1e07..d1ae2eb07 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -1105,7 +1105,7 @@ void clif_spawn_unit(struct block_list* bl, enum send_target target) {
p.accessory = status->get_emblem_id(bl);
p.accessory2 = GetWord(g_id, 1);
p.accessory3 = GetWord(g_id, 0);
- }
+ }
p.headpalette = vd->hair_color;
p.bodypalette = vd->cloth_color;
p.headDir = (sd)? sd->head_dir : 0;
@@ -1225,7 +1225,7 @@ void clif_set_unit_walking(struct block_list* bl, struct map_session_data *tsd,
p.GID = -bl->id;
#else
p.GID = -bl->id;
-#endif
+#endif
clif->send(&p,sizeof(p),bl,SELF);
}
}
@@ -5639,7 +5639,7 @@ void clif_displaymessage2(const int fd, const char* mes) {
}
line = strtok(NULL, "\n");
}
- aFree(message);
+ aFree(message);
}
}
/* oh noo! another version of 0x8e! */
@@ -6170,7 +6170,7 @@ void clif_item_refine_list(struct map_session_data *sd)
WFIFOHEAD(fd, MAX_INVENTORY * 13 + 4);
WFIFOW(fd,0)=0x221;
for(i=c=0;i<MAX_INVENTORY;i++){
- if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].identify
+ if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].identify
&& (wlv=itemdb_wlv(sd->status.inventory[i].nameid)) >=1
&& !sd->inventory_data[i]->flag.no_refine
&& !(sd->status.inventory[i].equip&EQP_ARMS)){
@@ -8429,7 +8429,7 @@ void clif_message(struct block_list* bl, const char* msg) {
/**
* Notifies the client that the storage window is still open
*
- * Should only be used in cases where the client closed the
+ * Should only be used in cases where the client closed the
* storage window without server's consent
**/
void clif_refresh_storagewindow( struct map_session_data *sd ) {
@@ -10312,7 +10312,7 @@ void clif_hercules_chsys_quit(struct map_session_data *sd) {
sd->channel_count = 0;
aFree(sd->channels);
- sd->channels = NULL;
+ sd->channels = NULL;
}
/// Request for an action.
@@ -11163,8 +11163,8 @@ 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))
-#ifdef NEW_CARTS
+ if( !(sd->sc.option&(OPTION_RIDING|OPTION_FALCON|OPTION_DRAGON|OPTION_MADOGEAR))
+#ifdef NEW_CARTS
&& sd->sc.data[SC_PUSH_CART] ){
pc->setcart(sd,0);
#else
@@ -13716,7 +13716,7 @@ void clif_parse_GMReqNoChat(int fd,struct map_session_data *sd) {
return;
value = battle_config.client_accept_chatdori;
- dstsd = sd;
+ dstsd = sd;
} else {
dstsd = map->id2sd(id);
if( dstsd == NULL )
@@ -17557,7 +17557,7 @@ void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) {
WFIFOW(fd, 0) = 0x845;
WFIFOL(fd, 2) = sd->cashPoints; //[Ryuuzaki] - switched positions to reflect proper values
WFIFOL(fd, 6) = sd->kafraPoints;
- WFIFOSET(fd, 10);
+ WFIFOSET(fd, 10);
}
void clif_parse_CashShopClose(int fd, struct map_session_data *sd) {
@@ -17792,7 +17792,7 @@ void clif_bgqueue_ack(struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK
clif->send(&p,sizeof(p), &sd->bl, SELF);
}
break;
- }
+ }
}
@@ -17824,7 +17824,7 @@ void clif_parse_bgqueue_register(int fd, struct map_session_data *sd) {
default:
clif->bgqueue_ack(sd,BGQA_FAIL_TYPE_INVALID, arena->id);
return;
- }
+ }
bg->queue_add(sd, arena, (enum bg_queue_types)p->type);
}
@@ -19024,7 +19024,7 @@ void clif_defaults(void) {
clif->search_store_info_failed = clif_search_store_info_failed;
clif->open_search_store_info = clif_open_search_store_info;
clif->search_store_info_click_ack = clif_search_store_info_click_ack;
- /* elemental-related */
+ /* elemental-related */
clif->elemental_info = clif_elemental_info;
clif->elemental_updatestatus = clif_elemental_updatestatus;
/* bgqueue */
@@ -19034,7 +19034,7 @@ void clif_defaults(void) {
clif->bgqueue_joined = clif_bgqueue_joined;
clif->bgqueue_pcleft = clif_bgqueue_pcleft;
clif->bgqueue_battlebegins = clif_bgqueue_battlebegins;
- /* misc-handling */
+ /* misc-handling */
clif->adopt_reply = clif_Adopt_reply;
clif->adopt_request = clif_Adopt_request;
clif->readbook = clif_readbook;
@@ -19071,7 +19071,7 @@ void clif_defaults(void) {
clif->npc_market_purchase_ack = clif_npc_market_purchase_ack;
/*------------------------
*- Parse Incoming Packet
- *------------------------*/
+ *------------------------*/
clif->pWantToConnection = clif_parse_WantToConnection;
clif->pLoadEndAck = clif_parse_LoadEndAck;
clif->pTickSend = clif_parse_TickSend;
@@ -19125,7 +19125,7 @@ void clif_defaults(void) {
clif->pUseSkillToPos = clif_parse_UseSkillToPos;
clif->pUseSkillToPosSub = clif_parse_UseSkillToPosSub;
clif->pUseSkillToPos_homun = clif_parse_UseSkillToPos_homun;
- clif->pUseSkillToPos_mercenary = clif_parse_UseSkillToPos_mercenary;
+ clif->pUseSkillToPos_mercenary = clif_parse_UseSkillToPos_mercenary;
clif->pUseSkillToPosMoreInfo = clif_parse_UseSkillToPosMoreInfo;
clif->pUseSkillMap = clif_parse_UseSkillMap;
clif->pRequestMemo = clif_parse_RequestMemo;
diff --git a/src/map/duel.c b/src/map/duel.c
index a423ef240..4e4eeef1f 100644
--- a/src/map/duel.c
+++ b/src/map/duel.c
@@ -128,7 +128,7 @@ void duel_leave(const unsigned int did, struct map_session_data* sd) {
duel->list[did].members_count--;
if(duel->list[did].members_count == 0) {
- map->foreachpc(duel_leave_sub, did);
+ map->foreachpc(duel_leave_sub, did);
duel->count--;
}
@@ -176,7 +176,7 @@ void do_init_duel(bool minimal) {
}
/*=====================================
-* Default Functions : duel.h
+* Default Functions : duel.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/duel.h b/src/map/duel.h
index 956aed36d..91dfa8f83 100644
--- a/src/map/duel.h
+++ b/src/map/duel.h
@@ -18,7 +18,7 @@ struct duel {
#define MAX_DUEL 1024
/*=====================================
-* Interface : duel.h
+* Interface : duel.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/elemental.c b/src/map/elemental.c
index 323df41e1..b414d5b9f 100644
--- a/src/map/elemental.c
+++ b/src/map/elemental.c
@@ -951,7 +951,7 @@ void do_final_elemental(void) {
}
/*=====================================
-* Default Functions : elemental.h
+* Default Functions : elemental.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/elemental.h b/src/map/elemental.h
index aa27aadc9..beddd3ea1 100644
--- a/src/map/elemental.h
+++ b/src/map/elemental.h
@@ -64,7 +64,7 @@ struct elemental_data {
};
/*=====================================
-* Interface : elemental.h
+* Interface : elemental.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/guild.c b/src/map/guild.c
index 69f67238d..935cac8c0 100644
--- a/src/map/guild.c
+++ b/src/map/guild.c
@@ -1004,7 +1004,7 @@ int guild_recv_memberinfoshort(int guild_id,int account_id,int char_id,int onlin
//Ensure validity of pointer (ie: player logs in/out, changes map-server)
g->member[idx].sd = guild->sd_check(guild_id, account_id, char_id);
- if(oldonline!=online)
+ if(oldonline!=online)
clif->guild_memberlogin_notice(g, idx, online);
if(!g->member[idx].sd)
@@ -2008,7 +2008,7 @@ void guild_castle_reconnect_sub(void *key, void *data, va_list ap)
}
/**
- * Saves pending guild castle data changes when char-server is
+ * Saves pending guild castle data changes when char-server is
* disconnected.
* On reconnect pushes all changes to char-server for saving.
*/
@@ -2363,7 +2363,7 @@ void guild_defaults(void) {
guild->flag_add = guild_flag_add;
guild->flag_remove = guild_flag_remove;
guild->flags_clear = guild_flags_clear;
- /* guild aura */
+ /* guild aura */
guild->aura_refresh = guild_guildaura_refresh;
/* */
guild->payexp_timer = guild_payexp_timer;
diff --git a/src/map/intif.c b/src/map/intif.c
index 383150fbc..042896f4f 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -50,7 +50,7 @@ int CheckForCharServer(void)
// pet
int intif_create_pet(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 incuvate,char *pet_name)
+ short pet_equip,short intimate,short hungry,char rename_flag,char incubate,char *pet_name)
{
if (intif->CheckForCharServer())
return 0;
@@ -65,7 +65,7 @@ int intif_create_pet(int account_id,int char_id,short pet_class,short pet_lv,sho
WFIFOW(inter_fd,18) = intimate;
WFIFOW(inter_fd,20) = hungry;
WFIFOB(inter_fd,22) = rename_flag;
- WFIFOB(inter_fd,23) = incuvate;
+ WFIFOB(inter_fd,23) = incubate;
memcpy(WFIFOP(inter_fd,24),pet_name,NAME_LENGTH);
WFIFOSET(inter_fd,24+NAME_LENGTH);
@@ -2305,7 +2305,7 @@ int intif_parse(int fd)
}
/*=====================================
-* Default Functions : intif.h
+* Default Functions : intif.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/intif.h b/src/map/intif.h
index b6ee727f3..42a38ad41 100644
--- a/src/map/intif.h
+++ b/src/map/intif.h
@@ -32,7 +32,7 @@ struct s_pet;
/*=====================================
-* Interface : intif.h
+* Interface : intif.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
@@ -42,7 +42,7 @@ struct intif_interface {
/* funcs */
int (*parse) (int fd);
int (*create_pet)(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id,
- short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name);
+ short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
int (*broadcast) (const char* mes, size_t len, int type);
int (*broadcast2) (const char* mes, size_t len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY);
int (*main_message) (struct map_session_data* sd, const char* message);
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 1981f435c..9bc352276 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -27,7 +27,7 @@
struct itemdb_interface itemdb_s;
/**
- * Search for item name
+ * Search for item name
* name = item alias, so we should find items aliases first. if not found then look for "jname" (full name)
* @see DBApply
*/
@@ -55,7 +55,7 @@ int itemdb_searchname_sub(DBKey key, DBData *data, va_list ap)
}
/*==========================================
- * Return item data from item name. (lookup)
+ * Return item data from item name. (lookup)
*------------------------------------------*/
struct item_data* itemdb_searchname(const char *str) {
struct item_data* item;
@@ -256,7 +256,7 @@ void itemdb_package_item(struct map_session_data *sd, struct item_package *packa
return;
}
/*==========================================
- * Return a random item id from group. (takes into account % chance giving/tot group)
+ * Return a random item id from group. (takes into account % chance giving/tot group)
*------------------------------------------*/
int itemdb_searchrandomid(struct item_group *group) {
@@ -312,7 +312,7 @@ const char* itemdb_typename(int type)
}
/*==========================================
- * Converts the jobid from the format in itemdb
+ * Converts the jobid from the format in itemdb
* to the format used by the map server. [Skotlex]
*------------------------------------------*/
void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
@@ -470,8 +470,7 @@ int itemdb_isequip(int nameid)
/*==========================================
* Alternate version of itemdb_isequip
*------------------------------------------*/
-int itemdb_isequip2(struct item_data *data)
-{
+int itemdb_isequip2(struct item_data *data) {
nullpo_ret(data);
switch(data->type) {
case IT_WEAPON:
@@ -937,7 +936,7 @@ void itemdb_read_packages(void) {
if( HCache->check(config_filename) ) {
if( itemdb->read_cached_packages(config_filename) )
return;
- }
+ }
if (libconfig->read_file(&item_packages_conf, config_filename)) {
ShowError("can't read %s\n", config_filename);
@@ -1445,7 +1444,7 @@ void itemdb_read_combos() {
p++;
str[1] = p;
- p = strchr(p,',');
+ p = strchr(p,',');
p++;
if (str[1][0] != '{') {
@@ -2217,7 +2216,7 @@ void itemdb_name_constants(void) {
script->parser_current_file = NULL;
#endif // ENABLE_CASE_CHECK
- dbi_destroy(iter);
+ dbi_destroy(iter);
}
void do_final_itemdb(void) {
itemdb->clear(true);
diff --git a/src/map/map.c b/src/map/map.c
index 01d3dbb9f..e37e902f6 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -494,7 +494,7 @@ static int bl_vforeach(int (*func)(struct block_list*, va_list), int blockcount,
static int map_vforeachinmap(int (*func)(struct block_list*, va_list), int16 m, int type, va_list args) {
int i;
int returnCount = 0;
- int bsize;
+ int bsize;
va_list argscopy;
struct block_list *bl;
int blockcount = map->bl_list_count;
@@ -5861,7 +5861,7 @@ int do_init(int argc, char *argv[])
}
/*=====================================
-* Default Functions : map.h
+* Default Functions : map.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/map.h b/src/map/map.h
index 539b02ed8..3ce59a804 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -10,9 +10,9 @@
#include "atcommand.h"
#include "../common/cbasetypes.h"
#include "../common/core.h" // CORE_ST_LAST
-#include "../common/mmo.h"
-#include "../common/mapindex.h"
#include "../common/db.h"
+#include "../common/mapindex.h"
+#include "../common/mmo.h"
#include "../common/sql.h"
struct mob_data;
@@ -26,7 +26,7 @@ enum E_MAPSERVER_ST {
};
#define MAX_NPC_PER_MAP 512
-#define AREA_SIZE (battle_config.area_size)
+#define AREA_SIZE (battle->bc->area_size)
#define DAMAGELOG_SIZE 30
#define LOOTITEM_SIZE 10
#define MAX_MOBSKILL 50
@@ -579,9 +579,9 @@ struct map_data {
"Algorithms in Java, Parts 1-4" 3.18, Robert Sedgewick
Map is divided into squares, called blocks (side length = BLOCK_SIZE).
For each block there is a linked list of objects in that block (block_list).
- Array provides capability to access immediately the set of objects close
+ Array provides capability to access immediately the set of objects close
to a given object.
- The linked lists provide the flexibility to store the objects without
+ The linked lists provide the flexibility to store the objects without
knowing ahead how many objects fall into each block.
*/
struct block_list **block; // Grid array of block_lists containing only non-BL_MOB objects
@@ -796,7 +796,7 @@ struct map_cache_map_info {
/*=====================================
-* Interface : map.h
+* Interface : map.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 26bc8c188..80bcfdf05 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -503,7 +503,7 @@ void do_init_mercenary(bool minimal) {
}
/*=====================================
-* Default Functions : mercenary.h
+* Default Functions : mercenary.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index b998ac006..22399e289 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -48,7 +48,7 @@ struct mercenary_data {
};
/*=====================================
-* Interface : mercenary.h
+* Interface : mercenary.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/mob.c b/src/map/mob.c
index 11ac74621..784bb5a07 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -3880,7 +3880,7 @@ bool mob_parse_dbrow(char** str) {
mob->db_data[class_] = (struct mob_db*)aMalloc(sizeof(struct mob_db));
else
//Copy over spawn data
- memcpy(&db->spawn, mob->db_data[class_]->spawn, sizeof(db->spawn));
+ memcpy(&db->spawn, mob->db_data[class_]->spawn, sizeof(db->spawn));
memcpy(mob->db_data[class_], db, sizeof(struct mob_db));
return true;
diff --git a/src/map/npc.c b/src/map/npc.c
index cf509e11f..0817313e2 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -1154,10 +1154,10 @@ int npc_click(struct map_session_data* sd, struct npc_data* nd)
// This usually happens when the player clicked on a NPC that has the view id
// of a mob, to activate this kind of npc it's needed to be in a 2,2 range
- // from it. If the OnTouch area of a npc, coincides with the 2,2 range of
+ // from it. If the OnTouch area of a npc, coincides with the 2,2 range of
// another it's expected that the OnTouch event be put first in stack, because
// unit_walktoxy_timer is executed before any other function in this case.
- // So it's best practice to put an 'end;' before OnTouch events in npcs that
+ // So it's best practice to put an 'end;' before OnTouch events in npcs that
// have view ids of mobs to avoid this "issue" [Panikon]
if (sd->npc_id != 0) {
// The player clicked a npc after entering an OnTouch area
diff --git a/src/map/npc_chat.c b/src/map/npc_chat.c
index f245ffea5..2182e1da2 100644
--- a/src/map/npc_chat.c
+++ b/src/map/npc_chat.c
@@ -49,7 +49,7 @@ struct pcre_interface libpcre_s;
*
* defpattern 1, "[^:]+: (.*) loves (.*)", "label";
*
- * this defines a new pattern in set 1 using perl syntax
+ * this defines a new pattern in set 1 using perl syntax
* (http://www.troubleshooters.com/codecorn/littperl/perlreg.htm)
* and tells it to jump to the supplied label when the pattern
* is matched.
@@ -59,7 +59,7 @@ struct pcre_interface libpcre_s;
* before the script gets executed.
*
* activatepset 1;
- *
+ *
* This activates a set of patterns.. You can have many pattern
* sets defined and many active all at once. This feature allows
* you to set up "conversations" and ever changing expectations of
@@ -95,11 +95,10 @@ void finalize_pcrematch_entry(struct pcrematch_entry* e)
/**
* Lookup (and possibly create) a new set of patterns by the set id
*/
-struct pcrematch_set* lookup_pcreset(struct npc_data* nd, int setid)
-{
+struct pcrematch_set* lookup_pcreset(struct npc_data* nd, int setid) {
struct pcrematch_set *pcreset;
struct npc_parse *npcParse = nd->chatdb;
- if (npcParse == NULL)
+ if (npcParse == NULL)
nd->chatdb = npcParse = (struct npc_parse *)aCalloc(sizeof(struct npc_parse), 1);
pcreset = npcParse->active;
@@ -109,7 +108,7 @@ struct pcrematch_set* lookup_pcreset(struct npc_data* nd, int setid)
break;
pcreset = pcreset->next;
}
- if (pcreset == NULL)
+ if (pcreset == NULL)
pcreset = npcParse->inactive;
while (pcreset != NULL) {
@@ -140,7 +139,7 @@ void activate_pcreset(struct npc_data* nd, int setid)
{
struct pcrematch_set *pcreset;
struct npc_parse *npcParse = nd->chatdb;
- if (npcParse == NULL)
+ if (npcParse == NULL)
return; // Nothing to activate...
pcreset = npcParse->inactive;
while (pcreset != NULL) {
@@ -154,7 +153,7 @@ void activate_pcreset(struct npc_data* nd, int setid)
pcreset->next->prev = pcreset->prev;
if (pcreset->prev != NULL)
pcreset->prev->next = pcreset->next;
- else
+ else
npcParse->inactive = pcreset->next;
pcreset->prev = NULL;
@@ -173,7 +172,7 @@ void deactivate_pcreset(struct npc_data* nd, int setid)
{
struct pcrematch_set *pcreset;
struct npc_parse *npcParse = nd->chatdb;
- if (npcParse == NULL)
+ if (npcParse == NULL)
return; // Nothing to deactivate...
if (setid == -1) {
while(npcParse->active != NULL)
@@ -192,7 +191,7 @@ void deactivate_pcreset(struct npc_data* nd, int setid)
pcreset->next->prev = pcreset->prev;
if (pcreset->prev != NULL)
pcreset->prev->next = pcreset->next;
- else
+ else
npcParse->active = pcreset->next;
pcreset->prev = NULL;
@@ -210,7 +209,7 @@ void delete_pcreset(struct npc_data* nd, int setid)
int active = 1;
struct pcrematch_set *pcreset;
struct npc_parse *npcParse = nd->chatdb;
- if (npcParse == NULL)
+ if (npcParse == NULL)
return; // Nothing to deactivate...
pcreset = npcParse->active;
while (pcreset != NULL) {
@@ -227,7 +226,7 @@ void delete_pcreset(struct npc_data* nd, int setid)
pcreset = pcreset->next;
}
}
- if (pcreset == NULL)
+ if (pcreset == NULL)
return;
if (pcreset->next != NULL)
@@ -254,7 +253,7 @@ void delete_pcreset(struct npc_data* nd, int setid)
}
/**
- * create a new pattern entry
+ * create a new pattern entry
*/
struct pcrematch_entry* create_pcrematch_entry(struct pcrematch_set* set)
{
@@ -300,7 +299,7 @@ void npc_chat_def_pattern(struct npc_data* nd, int setid, const char* pattern, c
/**
* Delete everything associated with a NPC concerning the pattern
- * matching code
+ * matching code
*
* this could be more efficent but.. how often do you do this?
*/
diff --git a/src/map/packets.h b/src/map/packets.h
index da1f176ff..fe323965c 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -2600,19 +2600,19 @@ packet(0x020d,-1);
// 2014-01-15eRagexe - YomRawr
#if PACKETVER >= 20140115
- 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(0x08A7,5,clif->pChangeDir,2,4);
- packet(0x0940,6,clif->pTakeItem,2);
- packet(0x0361,6,clif->pDropItem,2,4);
- packet(0x088E,8,clif->pMoveToKafra,2,4);
- packet(0x0367,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(0x0802,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
+ 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(0x08A7,5,clif->pChangeDir,2,4);
+ packet(0x0940,6,clif->pTakeItem,2);
+ packet(0x0361,6,clif->pDropItem,2,4);
+ packet(0x088E,8,clif->pMoveToKafra,2,4);
+ packet(0x0367,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(0x0802,6,clif->pGetCharNameRequest,2);
+ packet(0x0368,6,clif->pSolveCharName,2);
packet(0x0360,12,clif->pSearchStoreInfoListItemClick,2,6,10);
packet(0x0817,2,clif->pSearchStoreInfoNextPage,0);
packet(0x0815,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 55006db64..3d49944d1 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -596,7 +596,7 @@ struct packet_status_change {
#if PACKETVER >= 20120618
unsigned int Total;
#endif
-#if PACKETVER >= 20090121
+#if PACKETVER >= 20090121
unsigned int Left;
int val1;
int val2;
diff --git a/src/map/party.c b/src/map/party.c
index 7c49e241c..678b2cd54 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -1364,7 +1364,7 @@ void do_init_party(bool minimal) {
timer->add_interval(timer->gettick()+battle_config.party_update_interval, party->send_xy_timer, 0, 0, battle_config.party_update_interval);
}
/*=====================================
-* Default Functions : party.h
+* Default Functions : party.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/party.h b/src/map/party.h
index 3bad22b13..1c58301d1 100644
--- a/src/map/party.h
+++ b/src/map/party.h
@@ -71,7 +71,7 @@ struct party_booking_ad_info {
#endif /* PARTY_RECRUIT */
/*=====================================
-* Interface : party.h
+* Interface : party.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/path.c b/src/map/path.c
index d02e9ee4a..e90b26db5 100644
--- a/src/map/path.c
+++ b/src/map/path.c
@@ -205,7 +205,7 @@ static int add_path(struct node_heap *heap, struct path_node *tp, int16 x, int16
if (g_cost < tp[i].g_cost) { // New path to this node is better than old one
// Update costs and parent
tp[i].g_cost = g_cost;
- tp[i].parent = parent;
+ tp[i].parent = parent;
tp[i].f_cost = g_cost + h_cost;
if (tp[i].flag == SET_CLOSED) {
heap_push_node(heap, &tp[i]); // Put it in open set again
@@ -299,7 +299,7 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
return true;
}
- return false; // easy path unsuccessful
+ return false; // easy path unsuccessful
}
else { // !(flag&1)
// A* (A-star) pathfinding
diff --git a/src/map/pc.c b/src/map/pc.c
index 08ff8baf9..ce2b8040e 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1156,7 +1156,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
clif->message(sd->fd, buf);
}
- if (expiration_time != 0) {
+ if (expiration_time != 0) {
sd->expiration_time = expiration_time;
}
@@ -4448,7 +4448,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
}
}
- /* on restricted maps the item is consumed but the effect is not used */
+ /* on restricted maps the item is consumed but the effect is not used */
for(i = 0; i < map->list[sd->bl.m].zone->disabled_items_count; i++) {
if( map->list[sd->bl.m].zone->disabled_items[i] == nameid ) {
clif->msg(sd, ITEM_CANT_USE_AREA); // This item cannot be used within this area
@@ -7264,7 +7264,7 @@ int pc_readparam(struct map_session_data* sd,int type)
case SP_DEFELE: val = sd->battle_status.def_ele; break;
#ifndef RENEWAL_CAST
case SP_VARCASTRATE:
-#endif
+#endif
case SP_CASTRATE:
val = sd->castrate+=val;
break;
@@ -10329,7 +10329,7 @@ int pc_global_expiration_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
}
-void pc_expire_check(struct map_session_data *sd) {
+void pc_expire_check(struct map_session_data *sd) {
/* ongoing timer */
if( sd->expiration_tid != INVALID_TIMER )
return;
@@ -10630,7 +10630,7 @@ void do_init_pc(bool minimal) {
ers_chunk_size(pc->str_reg_ers, 50);
}
/*=====================================
-* Default Functions : pc.h
+* Default Functions : pc.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/pc.h b/src/map/pc.h
index 5d723fcf8..19e0348d0 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -7,7 +7,7 @@
#include "../config/core.h" // AUTOLOOTITEM_SIZE, RENEWAL, SECURE_NPCTIMEOUT
-#include "battle.h" // battle_config
+#include "battle.h" // battle
#include "battleground.h" // enum bg_queue_types
#include "buyingstore.h" // struct s_buyingstore
#include "itemdb.h" // MAX_ITEMDELAYS
@@ -565,7 +565,7 @@ struct map_session_data {
#define pc_setsit(sd) ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 2 )
#define pc_isdead(sd) ( (sd)->state.dead_sit == 1 )
#define pc_issit(sd) ( (sd)->vd.dead_sit == 2 )
-#define pc_isidle(sd) ( (sd)->chatID || (sd)->state.vending || (sd)->state.buyingstore || DIFF_TICK(sockt->last_tick, (sd)->idletime) >= battle_config.idle_no_share )
+#define pc_isidle(sd) ( (sd)->chatID || (sd)->state.vending || (sd)->state.buyingstore || DIFF_TICK(sockt->last_tick, (sd)->idletime) >= battle->bc->idle_no_share )
#define pc_istrading(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )
#define pc_cant_act(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend )
@@ -587,9 +587,9 @@ struct map_session_data {
#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_config.natural_heal_weight_rate )
+#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_config.max_extended_parameter : (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter) )
+#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
**/
@@ -725,7 +725,7 @@ struct autotrade_vending {
};
/*=====================================
-* Interface : pc.h
+* Interface : pc.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/pc_groups.c b/src/map/pc_groups.c
index a917ef409..e577c642f 100644
--- a/src/map/pc_groups.c
+++ b/src/map/pc_groups.c
@@ -183,7 +183,7 @@ static void read_config(void) {
int j, inherit_count = 0, done = 0;
if (group_settings->inheritance_done) // group already processed
- continue;
+ continue;
if ((inherit = group_settings->inherit) == NULL ||
(inherit_count = libconfig->setting_length(inherit)) <= 0) { // this group does not inherit from others
diff --git a/src/map/pet.c b/src/map/pet.c
index aa2be4473..05bbfe7b3 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -99,7 +99,7 @@ int pet_unlocktarget(struct pet_data *pd)
* Pet Attack Skill [Skotlex]
*------------------------------------------*/
int pet_attackskill(struct pet_data *pd, int target_id) {
- if (!battle_config.pet_status_support || !pd->a_skill ||
+ if (!battle_config.pet_status_support || !pd->a_skill ||
(battle_config.pet_equip_required && !pd->pet.equip))
return 0;
@@ -107,7 +107,7 @@ int pet_attackskill(struct pet_data *pd, int target_id) {
return 0;
if (rnd()%100 < (pd->a_skill->rate +pd->pet.intimate*pd->a_skill->bonusrate/1000)) {
- //Skotlex: Use pet's skill
+ //Skotlex: Use pet's skill
int inf;
struct block_list *bl;
@@ -158,7 +158,7 @@ int pet_target_check(struct map_session_data *sd,struct block_list *bl,int type)
if(pd->petDB->defence_attack_rate > 0 && rate <= 0)
rate = 1;
}
- if(rnd()%10000 < rate)
+ if(rnd()%10000 < rate)
{
if(pd->target_id == 0 || rnd()%10000 < pd->petDB->change_target_rate)
pd->target_id = bl->id;
@@ -303,7 +303,7 @@ int pet_return_egg(struct map_session_data *sd, struct pet_data *pd)
clif->additem(sd,0,0,flag);
map->addflooritem(&tmp_item,1,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0);
}
- pd->pet.incuvate = 1;
+ pd->pet.incubate = 1;
unit->free(&pd->bl,CLR_OUTSIGHT);
status_calc_pc(sd,SCO_NONE);
@@ -319,7 +319,7 @@ int pet_data_init(struct map_session_data *sd, struct s_pet *petinfo)
nullpo_retr(1, sd);
- Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
+ Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
if(sd->status.account_id != petinfo->account_id || sd->status.char_id != petinfo->char_id) {
sd->status.pet_id = 0;
@@ -327,8 +327,8 @@ int pet_data_init(struct map_session_data *sd, struct s_pet *petinfo)
}
if (sd->status.pet_id != petinfo->pet_id) {
if (sd->status.pet_id) {
- //Wrong pet?? Set incuvate to no and send it back for saving.
- petinfo->incuvate = 1;
+ //Wrong pet?? Set incubate to no and send it back for saving.
+ petinfo->incubate = 1;
intif->save_petdata(sd->status.account_id,petinfo);
sd->status.pet_id = 0;
return 1;
@@ -390,14 +390,14 @@ int pet_birth_process(struct map_session_data *sd, struct s_pet *petinfo)
{
nullpo_retr(1, sd);
- Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
+ Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
- if(sd->status.pet_id && petinfo->incuvate == 1) {
+ if(sd->status.pet_id && petinfo->incubate == 1) {
sd->status.pet_id = 0;
return 1;
}
- petinfo->incuvate = 0;
+ petinfo->incubate = 0;
petinfo->account_id = sd->status.account_id;
petinfo->char_id = sd->status.char_id;
sd->status.pet_id = petinfo->pet_id;
@@ -418,7 +418,7 @@ int pet_birth_process(struct map_session_data *sd, struct s_pet *petinfo)
clif->send_petdata(NULL, sd->pd, 3, sd->pd->vd.head_bottom);
clif->send_petstatus(sd);
}
- Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
+ Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
return 0;
}
@@ -433,7 +433,7 @@ int pet_recv_petdata(int account_id,struct s_pet *p,int flag) {
sd->status.pet_id = 0;
return 1;
}
- if(p->incuvate == 1) {
+ if(p->incubate == 1) {
int i;
//Delete egg from inventory. [Skotlex]
for (i = 0; i < MAX_INVENTORY; i++) {
@@ -596,7 +596,7 @@ int pet_menu(struct map_session_data *sd,int menunum)
return 1;
//You lost the pet already.
- if(!sd->status.pet_id || sd->pd->pet.intimate <= 0 || sd->pd->pet.incuvate)
+ if(!sd->status.pet_id || sd->pd->pet.intimate <= 0 || sd->pd->pet.incubate)
return 1;
egg_id = itemdb->exists(sd->pd->petDB->EggID);
@@ -912,7 +912,7 @@ int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, int64 tick
(pd->ud.attacktimer != INVALID_TIMER || pd->ud.walktimer != INVALID_TIMER))
return 0; //Target already locked.
- if (target->type != BL_ITEM)
+ if (target->type != BL_ITEM)
{ //enemy targetted
if(!battle->check_range(&pd->bl,target,pd->status.rhw.range))
{ //Chase
@@ -934,7 +934,7 @@ int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, int64 tick
memcpy(&pd->loot->item[pd->loot->count++],&fitem->item_data,sizeof(pd->loot->item[0]));
pd->loot->weight += itemdb_weight(fitem->item_data.nameid)*fitem->item_data.amount;
map->clearflooritem(target);
- }
+ }
//Target is unlocked regardless of whether it was picked or not.
pet->unlocktarget(pd);
}
@@ -1050,7 +1050,7 @@ int pet_lootitem_drop(struct pet_data *pd,struct map_session_data *sd)
/*==========================================
* pet bonus giving skills [Valaris] / Rewritten by [Skotlex]
- *------------------------------------------*/
+ *------------------------------------------*/
int pet_skill_bonus_timer(int tid, int64 tick, int id, intptr_t data) {
struct map_session_data *sd=map->id2sd(id);
struct pet_data *pd;
@@ -1091,7 +1091,7 @@ int pet_skill_bonus_timer(int tid, int64 tick, int id, intptr_t data) {
/*==========================================
* pet recovery skills [Valaris] / Rewritten by [Skotlex]
- *------------------------------------------*/
+ *------------------------------------------*/
int pet_recovery_timer(int tid, int64 tick, int id, intptr_t data) {
struct map_session_data *sd=map->id2sd(id);
struct pet_data *pd;
@@ -1107,7 +1107,7 @@ int pet_recovery_timer(int tid, int64 tick, int id, intptr_t data) {
}
if(sd->sc.data[pd->recovery->type])
- { //Display a heal animation?
+ { //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);
@@ -1155,7 +1155,7 @@ int pet_heal_timer(int tid, int64 tick, int id, intptr_t data) {
/*==========================================
* pet support skills [Skotlex]
- *------------------------------------------*/
+ *------------------------------------------*/
int pet_skill_support_timer(int tid, int64 tick, int id, intptr_t data) {
struct map_session_data *sd=map->id2sd(id);
struct pet_data *pd;
@@ -1202,12 +1202,12 @@ int pet_skill_support_timer(int tid, int64 tick, int id, intptr_t data) {
* Pet read db data
* pet->db.txt
* pet->db2.txt
- *------------------------------------------*/
+ *------------------------------------------*/
int read_petdb()
{
char* filename[] = {"pet_db.txt","pet_db2.txt"};
FILE *fp;
- int nameid,i,j,k;
+ int nameid,i,j,k;
// Remove any previous scripts in case reloaddb was invoked.
for( j = 0; j < MAX_PET_DB; j++ )
diff --git a/src/map/script.c b/src/map/script.c
index b432e6720..404079126 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11,6 +11,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include "atcommand.h"
#include "battle.h"
@@ -58,7 +59,6 @@
#ifndef WIN32
#include <sys/time.h>
#endif
-#include <time.h>
static inline int GETVALUE(const unsigned char* buf, int i) {
return (int)MakeDWord(MakeWord(buf[i], buf[i+1]), MakeWord(buf[i+2], 0));
diff --git a/src/map/script.h b/src/map/script.h
index 899c745da..bb6cd6e11 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -5,8 +5,8 @@
#ifndef _MAP_SCRIPT_H_
#define _MAP_SCRIPT_H_
-#include <setjmp.h>
#include <errno.h>
+#include <setjmp.h>
#include "map.h" //EVENT_NAME_LENGTH
#include "../common/cbasetypes.h"
diff --git a/src/map/skill.c b/src/map/skill.c
index b2e94ec79..383720361 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -2234,7 +2234,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
status_change_end(bl, SC_ENERGYCOAT, INVALID_TIMER);
//Reduction: 6% + 6% every 20%
dmg.damage -= dmg.damage * (6 * (1+per)) / 100;
- }
+ }
}
#endif /* MAGIC_REFLECTION_TYPE */
}
@@ -2647,7 +2647,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
//blown-specific handling
switch( skill_id ) {
case LG_OVERBRAND_BRANDISH:
- if( skill->blown(dsrc,bl,dmg.blewcount,dir,0) < dmg.blewcount )
+ if( skill->blown(dsrc,bl,dmg.blewcount,dir,0) < dmg.blewcount )
skill->addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, LG_OVERBRAND_PLUSATK, skill_lv, BF_WEAPON, flag|SD_ANIMATION);
break;
case SR_KNUCKLEARROW:
@@ -3165,7 +3165,7 @@ int skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
BL_CHAR|BL_SKILL, target->id); // Search for a new Target around current one...
if( nbl == NULL)
skl->x++;
- else
+ else
skl->x = 0;
skill->addtimerskill(src, tick + 651, (nbl?nbl:target)->id, skl->x, 0, WL_CHAINLIGHTNING_ATK, skl->skill_lv, skl->type + 1, skl->flag);
@@ -3177,9 +3177,9 @@ int skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
case WL_TETRAVORTEX_WIND:
case WL_TETRAVORTEX_GROUND:
clif->skill_nodamage(src, target, skl->skill_id, skl->skill_lv, 1);
- skill->attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, skl->flag);
+ skill->attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, skl->flag);
skill->toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
- if( skl->type == 4 ){
+ if( skl->type == 4 ){
const enum sc_type scs[] = { SC_BURNING, SC_BLOODING, SC_FROSTMISTY, SC_STUN }; // status inflicts are depend on what summoned element is used.
int rate = skl->y, index = skl->x-1;
sc_start2(src,target, scs[index], rate, skl->skill_lv, src->id, skill->get_time(WL_TETRAVORTEX,index+1));
@@ -4196,7 +4196,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case WL_TETRAVORTEX:
if( sc ){
int i = SC_SUMMON5, x = 0;
- int types[][2] = {{0, 0}, {0, 0}, {0, 0}, {0, 0}};
+ int types[][2] = {{0, 0}, {0, 0}, {0, 0}, {0, 0}};
for(; i >= SC_SUMMON1; i--){
if( sc->data[i] ){
int skillid = WL_TETRAVORTEX_FIRE + (sc->data[i]->val1 - WLS_FIRE) + (sc->data[i]->val1 == WLS_WIND) - (sc->data[i]->val1 == WLS_WATER), sc_index = 0, rate = 0;
@@ -4272,7 +4272,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
if (sd->skillcooldown[i].id == spell_skill_id){
cooldown += sd->skillcooldown[i].val;
break;
- }
+ }
}
if(cooldown)
skill->blockpc_start(sd, spell_skill_id, cooldown);
@@ -4769,10 +4769,10 @@ int skill_castend_id(int tid, int64 tick, int id, intptr_t data) {
inf &= ~BCT_NEUTRAL;
}
- if( sd && (inf2&INF2_CHORUS_SKILL) && skill->check_pc_partner(sd, ud->skill_id, &ud->skill_lv, 1, 0) < 1 ) {
- clif->skill_fail(sd, ud->skill_id, USESKILL_FAIL_NEED_HELPER, 0);
- break;
- }
+ if( sd && (inf2&INF2_CHORUS_SKILL) && skill->check_pc_partner(sd, ud->skill_id, &ud->skill_lv, 1, 0) < 1 ) {
+ clif->skill_fail(sd, ud->skill_id, USESKILL_FAIL_NEED_HELPER, 0);
+ break;
+ }
if( ud->skill_id >= SL_SKE && ud->skill_id <= SL_SKA && target->type == BL_MOB )
{
@@ -5036,7 +5036,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
**/
case AB_RENOVATIO:
case AB_HIGHNESSHEAL:
- case AL_INCAGI:
+ case AL_INCAGI:
if( sd && dstsd && pc_ismadogear(dstsd) ){
clif->skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0);
return 0;
@@ -5674,7 +5674,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case KN_AUTOCOUNTER:
sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
- skill->addtimerskill(src, tick + 100, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag);
+ skill->addtimerskill(src, tick + 100, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag);
break;
case SO_STRIKING:
@@ -8122,7 +8122,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( dstsd && dstsd->special_state.no_magic_damage )
break;
- if ( sd && sd->status.party_id == 0 )
+ if ( sd == NULL || (sd && sd->status.party_id == 0 ) )
count = 1;
else
count = party->foreachsamemap(party->sub_count, sd, 0);
@@ -10315,7 +10315,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case WM_SOUND_OF_DESTRUCTION:
r = skill->get_splash(skill_id,skill_lv);
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;
+ break;
case WM_LULLABY_DEEPSLEEP:
r = skill->get_splash(skill_id,skill_lv);
@@ -11669,7 +11669,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
case UNT_FIREPILLAR_ACTIVE:
case UNT_CLAYMORETRAP:
if( sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP )
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &src->bl,tick);
+ map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &src->bl,tick);
else
map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)
@@ -13054,7 +13054,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
{
int j, i = 0;
for(j = SC_SUMMON1; j <= SC_SUMMON5; j++)
- if( sc && sc->data[j] )
+ if( sc && sc->data[j] )
i++;
switch(skill_id){
@@ -14124,9 +14124,9 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
if( sd->bonus.varcastrate < 0 )
VARCAST_REDUCTION(sd->bonus.varcastrate);
if( sd->bonus.add_varcast != 0 ) // bonus bVariableCast
- time += sd->bonus.add_varcast;
+ time += sd->bonus.add_varcast;
if( sd->bonus.add_fixcast != 0 ) // bonus bFixedCast
- fixed += sd->bonus.add_fixcast;
+ fixed += sd->bonus.add_fixcast;
for (i = 0; i < ARRAYLENGTH(sd->skillfixcast) && sd->skillfixcast[i].id; i++)
if (sd->skillfixcast[i].id == skill_id){ // bonus2 bSkillFixedCast
fixed += sd->skillfixcast[i].val;
@@ -14197,7 +14197,7 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
fixcast_r = max(fixcast_r, sc->data[SC_DANCE_WITH_WUG]->val4);
if( sc->data[SC_SECRAMENT] )
fixcast_r = max(fixcast_r, sc->data[SC_SECRAMENT]->val2);
- if( sd && ( skill_lv = pc->checkskill(sd, WL_RADIUS) ) && (skill_id >= WL_WHITEIMPRISON && skill_id < WL_FREEZE_SP) )
+ if( sd && ( skill_lv = pc->checkskill(sd, WL_RADIUS) ) && (skill_id >= WL_WHITEIMPRISON && skill_id < WL_FREEZE_SP) )
fixcast_r = max(fixcast_r, (status_get_int(bl) + status->get_lv(bl)) / 15 + skill_lv * 5); // [{(Caster?s INT / 15) + (Caster?s Base Level / 15) + (Radius Skill Level x 5)}] %
// Fixed cast non percentage bonuses
if( sc->data[SC_MANDRAGORA] )
@@ -15285,6 +15285,36 @@ bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce
return wall;
}
+
+/**
+ * Verifies if an user can use SC_CLOAKING
+ **/
+bool skill_can_cloak(struct map_session_data *sd) {
+ nullpo_retr(false, 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 (pc->checkskill(sd, AS_CLOAKING) < 3 && !skill->check_cloaking(&sd->bl,NULL))
+ return false;
+
+ return true;
+}
+
+/**
+ * Verifies if an user can still be cloaked (AS_CLOAKING)
+ * Is called via map->foreachinrange when any kind of wall disapears
+ **/
+int skill_check_cloaking_end(struct block_list *bl, va_list ap) {
+ TBL_PC *sd = BL_CAST(BL_PC, bl);
+
+ if (sd && sd->sc.data[SC_CLOAKING] && !skill->can_cloak(sd))
+ status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
+
+ return 0;
+}
+
bool skill_check_camouflage(struct block_list *bl, struct status_change_entry *sce)
{
static int dx[] = { 0, 1, 0, -1, -1, 1, 1, -1};
@@ -15323,7 +15353,7 @@ bool skill_check_shadowform(struct block_list *bl, int64 damage, int hit){
if( sc && sc->data[SC__SHADOWFORM] && damage ) {
src = map->id2bl(sc->data[SC__SHADOWFORM]->val2);
- if( !src || src->m != bl->m ) {
+ if( !src || src->m != bl->m ) {
status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
return false;
}
@@ -15433,6 +15463,13 @@ int skill_delunit (struct skill_unit* su) {
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,
+ // Use 3x3 area to check for users near cell
+ su->bl.x - 1, su->bl.y - 1,
+ su->bl.x + 1, su->bl.x + 1,
+ BL_PC);
break;
case SA_LANDPROTECTOR:
skill->unitsetmapcell(su,SA_LANDPROTECTOR,group->skill_lv,CELL_LANDPROTECTOR,false);
@@ -18515,7 +18552,7 @@ void skill_defaults(void) {
skill->unit_onplace = skill_unit_onplace;
skill->unit_ondamaged = skill_unit_ondamaged;
skill->cast_fix = skill_castfix;
- skill->cast_fix_sc = skill_castfix_sc;
+ skill->cast_fix_sc = skill_castfix_sc;
skill->vf_cast_fix = skill_vfcastfix;
skill->delay_fix = skill_delay_fix;
skill->check_condition_castbegin = skill_check_condition_castbegin;
@@ -18535,6 +18572,8 @@ void skill_defaults(void) {
skill->autospell = skill_autospell;
skill->calc_heal = skill_calc_heal;
skill->check_cloaking = skill_check_cloaking;
+ skill->check_cloaking_end = skill_check_cloaking_end;
+ skill->can_cloak = skill_can_cloak;
skill->enchant_elemental_end = skill_enchant_elemental_end;
skill->not_ok = skillnotok;
skill->not_ok_hom = skillnotok_hom;
diff --git a/src/map/skill.h b/src/map/skill.h
index b6dbb1fcb..6666fbbf2 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -1597,7 +1597,7 @@ enum {
UNT_ZENKAI_WIND,
UNT_MAKIBISHI,
UNT_VENOMFOG,
- UNT_ICEMINE,
+ UNT_ICEMINE,
UNT_FLAMECROSS,
UNT_HELLBURNING,
UNT_MAGMA_ERUPTION,
@@ -1918,6 +1918,8 @@ struct skill_interface {
int (*autospell) (struct map_session_data *md,uint16 skill_id);
int (*calc_heal) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, bool heal);
bool (*check_cloaking) (struct block_list *bl, struct status_change_entry *sce);
+ int (*check_cloaking_end) (struct block_list *bl, va_list ap);
+ bool (*can_cloak) (struct map_session_data *sd);
int (*enchant_elemental_end) (struct block_list *bl, int type);
int (*not_ok) (uint16 skill_id, struct map_session_data *sd);
int (*not_ok_hom) (uint16 skill_id, struct homun_data *hd);
diff --git a/src/map/sql/CMakeLists.txt b/src/map/sql/CMakeLists.txt
index 11751a1a5..1629b2a8b 100644
--- a/src/map/sql/CMakeLists.txt
+++ b/src/map/sql/CMakeLists.txt
@@ -18,7 +18,7 @@ set( SQL_MAP_HEADERS
"${SQL_MAP_SOURCE_DIR}/guild.h"
"${SQL_MAP_SOURCE_DIR}/homunculus.h"
"${SQL_MAP_SOURCE_DIR}/HPMmap.h"
- "${SQL_MAP_SOURCE_DIR}/instance.h"
+ "${SQL_MAP_SOURCE_DIR}/instance.h"
"${SQL_MAP_SOURCE_DIR}/intif.h"
"${SQL_MAP_SOURCE_DIR}/irc-bot.h"
"${SQL_MAP_SOURCE_DIR}/itemdb.h"
diff --git a/src/map/status.c b/src/map/status.c
index eb06138da..a1a7e1969 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -180,7 +180,7 @@ void initChangeTables(void) {
add_sc( TF_POISON , SC_POISON );
set_sc( KN_TWOHANDQUICKEN , SC_TWOHANDQUICKEN , SI_TWOHANDQUICKEN , SCB_ASPD );
add_sc( KN_AUTOCOUNTER , SC_AUTOCOUNTER );
- set_sc( PR_IMPOSITIO , SC_IMPOSITIO , SI_IMPOSITIO ,
+ set_sc( PR_IMPOSITIO , SC_IMPOSITIO , SI_IMPOSITIO ,
#ifdef RENEWAL
SCB_NONE );
#else
@@ -204,7 +204,7 @@ void initChangeTables(void) {
set_sc( BS_WEAPONPERFECT , SC_WEAPONPERFECT , SI_WEAPONPERFECT, SCB_NONE );
set_sc( BS_OVERTHRUST , SC_OVERTHRUST , SI_OVERTHRUST , SCB_NONE );
set_sc( BS_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZE , SCB_REGEN );
- add_sc( HT_LANDMINE , SC_STUN );
+ add_sc( HT_LANDMINE , SC_STUN );
set_sc( HT_ANKLESNARE , SC_ANKLESNARE , SI_ANKLESNARE , SCB_NONE );
add_sc( HT_SANDMAN , SC_SLEEP );
add_sc( HT_FLASHER , SC_BLIND );
@@ -3672,7 +3672,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
st->batk = status->calc_batk(bl, sc, st->batk, true);
}
- if(flag&SCB_WATK) {
+ if(flag&SCB_WATK) {
st->rhw.atk = status->calc_watk(bl, sc, bst->rhw.atk, true);
if (!sd) //Should not affect weapon refine bonus
st->rhw.atk2 = status->calc_watk(bl, sc, bst->rhw.atk2, true);
@@ -5016,7 +5016,7 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i
#ifdef RENEWAL
if( sc && sc->data[SC_ASSUMPTIO] )
def2 <<= 1;
-#endif
+#endif
if( sc && sc->data[SC_CAMOUFLAGE] )
def2 -= def2 * 5 * (10-sc->data[SC_CAMOUFLAGE]->val4) / 100;
#ifdef RENEWAL
@@ -5912,7 +5912,7 @@ struct status_data *status_get_base_status(struct block_list *bl)
case BL_HOM: return &((TBL_HOM*)bl)->base_status;
case BL_MER: return &((TBL_MER*)bl)->base_status;
case BL_ELEM: return &((TBL_ELEM*)bl)->base_status;
- case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : NULL);
+ case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : NULL);
default:
return NULL;
}
@@ -5929,8 +5929,8 @@ defType status_get_def(struct block_list *bl) {
}
unsigned short status_get_speed(struct block_list *bl) {
- if(bl->type==BL_NPC)//Only BL with speed data but no status_data [Skotlex]
- return ((struct npc_data *)bl)->speed;
+ if(bl->type==BL_NPC)//Only BL with speed data but no status_data [Skotlex]
+ return ((struct npc_data *)bl)->speed;
return status->get_status_data(bl)->speed;
}
@@ -6939,16 +6939,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_ASSNCROS:
if(sc->option&OPTION_MADOGEAR)
return 0;//Mado is immune to wind walk, cart boost, etc (others above) [Ind]
- case SC_INC_AGI:
+ case SC_INC_AGI:
if (sc->data[SC_QUAGMIRE])
- return 0;
+ return 0;
break;
case SC_CLOAKING:
- //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 && pc->checkskill(sd, AS_CLOAKING) < 3 && !skill->check_cloaking(bl,NULL) )
+ if (sd && !skill->can_cloak(sd))
return 0;
break;
case SC_MODECHANGE:
@@ -7143,7 +7139,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_ROKISWEIL:
case SC_FOGWALL:
case SC_FROSTMISTY:
- case SC_BURNING:
+ case SC_BURNING:
case SC_MARSHOFABYSS:
case SC_ADORAMUS:
case SC_NEEDLE_OF_PARALYZE:
@@ -9401,7 +9397,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
}
//On Aegis, when turning on a status change, first goes the option packet, then the sc packet.
- if(opt_flag) {
+ if(opt_flag) {
clif->changeoption(bl);
if( sd && opt_flag&0x4 ) {
clif->changelook(bl,LOOK_BASE,vd->class_);
@@ -11958,7 +11954,7 @@ void do_final_status(void) {
}
/*=====================================
-* Default Functions : status.h
+* Default Functions : status.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/status.h b/src/map/status.h
index 6bb563b0b..3bdd59041 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -711,766 +711,787 @@ typedef enum sc_type {
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;
-// Official status change ids, used to display status icons on the client.
+
+/// Official status change ids, used to display status icons in the client.
enum si_type {
- SI_BLANK = -1,
- SI_PROVOKE = 0,
- SI_ENDURE = 1,
- SI_TWOHANDQUICKEN = 2,
- SI_CONCENTRATION = 3,
- SI_HIDING = 4,
- SI_CLOAKING = 5,
- SI_ENCHANTPOISON = 6,
- SI_POISONREACT = 7,
- SI_QUAGMIRE = 8,
- SI_ANGELUS = 9,
- SI_BLESSING = 10,
- SI_CRUCIS = 11,
- SI_INC_AGI = 12,
- SI_DEC_AGI = 13,
- SI_SLOWPOISON = 14,
- SI_IMPOSITIO = 15,
- SI_SUFFRAGIUM = 16,
- SI_ASPERSIO = 17,
- SI_BENEDICTIO = 18,
- SI_KYRIE = 19,
- SI_MAGNIFICAT = 20,
- SI_GLORIA = 21,
- SI_LEXAETERNA = 22,
- SI_ADRENALINE = 23,
- SI_WEAPONPERFECT = 24,
- SI_OVERTHRUST = 25,
- SI_MAXIMIZE = 26,
- SI_RIDING = 27,
- SI_FALCON = 28,
- SI_TRICKDEAD = 29,
- SI_SHOUT = 30,
- SI_ENERGYCOAT = 31,
- SI_BROKENARMOR = 32,
- SI_BROKENWEAPON = 33,
- SI_ILLUSION = 34,
- SI_WEIGHTOVER50 = 35,
- SI_WEIGHTOVER90 = 36,
- SI_ATTHASTE_POTION1 = 37,
- SI_ATTHASTE_POTION2 = 38,
- SI_ATTHASTE_POTION3 = 39,
- SI_ATTHASTE_INFINITY = 40,
- SI_MOVHASTE_POTION = 41,
- SI_MOVHASTE_INFINITY = 42,
-// SI_AUTOCOUNTER = 43,
-// SI_SPLASHER = 44,
- SI_ANKLESNARE = 45,
- SI_POSTDELAY = 46,
-// SI_NOACTION = 47,
-// SI_IMPOSSIBLEPICKUP = 48,
-// SI_BARRIER = 49,
- SI_NOEQUIPWEAPON = 50,
- SI_NOEQUIPSHIELD = 51,
- SI_NOEQUIPARMOR = 52,
- SI_NOEQUIPHELM = 53,
- SI_PROTECTWEAPON = 54,
- SI_PROTECTSHIELD = 55,
- SI_PROTECTARMOR = 56,
- SI_PROTECTHELM = 57,
- SI_AUTOGUARD = 58,
- SI_REFLECTSHIELD = 59,
-// SI_DEVOTION = 60,
- SI_PROVIDENCE = 61,
- SI_DEFENDER = 62,
-// SI_MAGICROD = 63,
-// SI_WEAPONPROPERTY = 64,
- SI_AUTOSPELL = 65,
-// SI_SPECIALZONE = 66,
-// SI_MASK = 67,
- SI_SPEARQUICKEN = 68,
-// SI_BDPLAYING = 69,
-// SI_WHISTLE = 70,
-// SI_ASSASSINCROSS = 71,
-// SI_POEMBRAGI = 72,
-// SI_APPLEIDUN = 73,
-// SI_HUMMING = 74,
-// SI_DONTFORGETME = 75,
-// SI_FORTUNEKISS = 76,
-// SI_SERVICEFORYOU = 77,
-// SI_RICHMANKIM = 78,
-// SI_ETERNALCHAOS = 79,
-// SI_DRUMBATTLEFIELD = 80,
-// SI_RINGNIBELUNGEN = 81,
-// SI_ROKISWEIL = 82,
-// SI_INTOABYSS = 83,
-// SI_SIEGFRIED = 84,
-// SI_BLADESTOP = 85,
- SI_EXPLOSIONSPIRITS = 86,
- SI_STEELBODY = 87,
- SI_EXTREMITYFIST = 88,
-// SI_COMBOATTACK = 89,
- SI_PROPERTYFIRE = 90,
- SI_PROPERTYWATER = 91,
- SI_PROPERTYWIND = 92,
- SI_PROPERTYGROUND = 93,
-// SI_MAGICATTACK = 94,
- SI_STOP = 95,
-// SI_WEAPONBRAKER = 96,
- SI_PROPERTYUNDEAD = 97,
-// SI_POWERUP = 98,
-// SI_AGIUP = 99,
-// SI_SIEGEMODE = 100,
-// SI_INVISIBLE = 101,
-// SI_STATUSONE = 102,
- SI_AURABLADE = 103,
- SI_PARRYING = 104,
- SI_LKCONCENTRATION = 105,
- SI_TENSIONRELAX = 106,
- SI_BERSERK = 107,
-// SI_SACRIFICE = 108,
-// SI_GOSPEL = 109,
- SI_ASSUMPTIO = 110,
-// SI_BASILICA = 111,
- SI_GROUNDMAGIC = 112,
- SI_MAGICPOWER = 113,
- SI_EDP = 114,
- SI_TRUESIGHT = 115,
- SI_WINDWALK = 116,
- SI_MELTDOWN = 117,
- SI_CARTBOOST = 118,
-// SI_CHASEWALK = 119,
- SI_SWORDREJECT = 120,
- SI_MARIONETTE_MASTER = 121,
- SI_MARIONETTE = 122,
- SI_MOON = 123,
- SI_BLOODING = 124,
- SI_JOINTBEAT = 125,
-// SI_MINDBREAKER = 126,
-// SI_MEMORIZE = 127,
-// SI_FOGWALL = 128,
-// SI_SPIDERWEB = 129,
- SI_PROTECTEXP = 130,
-// SI_SUB_WEAPONPROPERTY = 131,
- SI_AUTOBERSERK = 132,
- SI_RUN = 133,
- SI_TING = 134,
- SI_STORMKICK_ON = 135,
- SI_STORMKICK_READY = 136,
- SI_DOWNKICK_ON = 137,
- SI_DOWNKICK_READY = 138,
- SI_TURNKICK_ON = 139,
- SI_TURNKICK_READY = 140,
- SI_COUNTER_ON = 141,
- SI_COUNTER_READY = 142,
- SI_DODGE_ON = 143,
- SI_DODGE_READY = 144,
- SI_STRUP = 145,
- SI_PROPERTYDARK = 146,
- SI_ADRENALINE2 = 147,
- SI_PROPERTYTELEKINESIS = 148,
- SI_SOULLINK = 149,
- SI_PLUSATTACKPOWER = 150,
- SI_PLUSMAGICPOWER = 151,
- SI_DEVIL1 = 152,
- SI_KAITE = 153,
-// SI_SWOO = 154,
-// SI_STAR2 = 155,
- SI_KAIZEL = 156,
- SI_KAAHI = 157,
- SI_KAUPE = 158,
- SI_SMA_READY = 159,
- SI_SKE = 160,
- SI_ONEHANDQUICKEN = 161,
-// SI_FRIEND = 162,
-// SI_FRIENDUP = 163,
-// SI_SG_WARM = 164,
- SI_SG_SUN_WARM = 165,
-// 166 | The three show the exact same display: ultra red character (165, 166, 167)
-// 167 | Their names would be SI_SG_SUN_WARM, SI_SG_MOON_WARM, SI_SG_STAR_WARM
-// SI_EMOTION = 168,
- SI_SUN_COMFORT = 169,
- SI_MOON_COMFORT = 170,
- SI_STAR_COMFORT = 171,
-// SI_EXPUP = 172,
-// SI_GDSKILL_BATTLEORDER = 173,
-// SI_GDSKILL_REGENERATION = 174,
-// SI_GDSKILL_POSTDELAY = 175,
-// SI_RESISTHANDICAP = 176,
-// SI_MAXHPPERCENT = 177,
-// SI_MAXSPPERCENT = 178,
-// SI_DEFENCE = 179,
-// SI_SLOWDOWN = 180,
- SI_PRESERVE = 181,
- SI_INCSTR = 182,
-// SI_NOT_EXTREMITYFIST = 183,
- SI_CLAIRVOYANCE = 184,
-// SI_MOVESLOW_POTION = 185,
- SI_DOUBLECASTING = 186,
-// SI_GRAVITATION = 187,
- SI_OVERTHRUSTMAX = 188,
-// SI_LONGING = 189,
-// SI_HERMODE = 190,
- SI_TAROTCARD = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
-// SI_HLIF_AVOID = 192,
-// SI_HFLI_FLEET = 193,
-// SI_HFLI_SPEED = 194,
-// SI_HLIF_CHANGE = 195,
-// SI_HAMI_BLOODLUST = 196,
- SI_CR_SHRINK = 197,
- SI_WZ_SIGHTBLASTER = 198,
- SI_DC_WINKCHARM = 199,
- SI_RG_CCONFINE_M = 200,
- SI_RG_CCONFINE_S = 201,
-// SI_DISABLEMOVE = 202,
- SI_GS_MADNESSCANCEL = 203, //[blackhole89]
- SI_GS_GATLINGFEVER = 204,
- SI_EARTHSCROLL = 205,
- SI_NJ_UTSUSEMI = 206,
- SI_NJ_BUNSINJYUTSU = 207,
- SI_NJ_NEN = 208,
- SI_GS_ADJUSTMENT = 209,
- SI_GS_ACCURACY = 210,
- SI_NJ_SUITON = 211,
-// SI_PET = 212,
-// SI_MENTAL = 213,
-// SI_EXPMEMORY = 214,
-// SI_PERFORMANCE = 215,
-// SI_GAIN = 216,
-// SI_GRIFFON = 217,
-// SI_DRIFT = 218,
-// SI_WALLSHIFT = 219,
-// SI_REINCARNATION = 220,
-// SI_PATTACK = 221,
-// SI_PSPEED = 222,
-// SI_PDEFENSE = 223,
-// SI_PCRITICAL = 224,
-// SI_RANKING = 225,
-// SI_PTRIPLE = 226,
-// SI_DENERGY = 227,
-// SI_WAVE1 = 228,
-// SI_WAVE2 = 229,
-// SI_WAVE3 = 230,
-// SI_WAVE4 = 231,
-// SI_DAURA = 232,
-// SI_DFREEZER = 233,
-// SI_DPUNISH = 234,
-// SI_DBARRIER = 235,
-// SI_DWARNING = 236,
-// SI_MOUSEWHEEL = 237,
-// SI_DGAUGE = 238,
-// SI_DACCEL = 239,
-// SI_DBLOCK = 240,
- SI_FOOD_STR = 241,
- SI_FOOD_AGI = 242,
- SI_FOOD_VIT = 243,
- SI_FOOD_DEX = 244,
- SI_FOOD_INT = 245,
- SI_FOOD_LUK = 246,
- SI_FOOD_BASICAVOIDANCE = 247,
- SI_FOOD_BASICHIT = 248,
- SI_FOOD_CRITICALSUCCESSVALUE = 249,
- SI_CASH_PLUSEXP = 250,
- SI_CASH_DEATHPENALTY = 251,
- SI_CASH_RECEIVEITEM = 252,
- SI_CASH_BOSS_ALARM = 253,
-// SI_DA_ENERGY = 254,
-// SI_DA_FIRSTSLOT = 255,
-// SI_DA_HEADDEF = 256,
-// SI_DA_SPACE = 257,
-// SI_DA_TRANSFORM = 258,
-// SI_DA_ITEMREBUILD = 259,
-// SI_DA_ILLUSION = 260, //All mobs display as Turtle General
-// SI_DA_DARKPOWER = 261,
-// SI_DA_EARPLUG = 262,
-// SI_DA_CONTRACT = 263, //Bio Mob effect on you and SI_TRICKDEAD icon
-// SI_DA_BLACK = 264, //For short time blurry screen
-// SI_DA_MAGICCART = 265,
-// SI_CRYSTAL = 266,
-// SI_DA_REBUILD = 267,
-// SI_DA_EDARKNESS = 268,
-// SI_DA_EGUARDIAN = 269,
-// SI_DA_TIMEOUT = 270,
- SI_FOOD_STR_CASH = 271,
- SI_FOOD_AGI_CASH = 272,
- SI_FOOD_VIT_CASH = 273,
- SI_FOOD_DEX_CASH = 274,
- SI_FOOD_INT_CASH = 275,
- SI_FOOD_LUK_CASH = 276,
- SI_MER_FLEE = 277,
- SI_MER_ATK = 278,
- SI_MER_HP = 279,
- SI_MER_SP = 280,
- SI_MER_HIT = 281,
- SI_SLOWCAST = 282,
-// SI_MAGICMIRROR = 283,
-// SI_STONESKIN = 284,
-// SI_ANTIMAGIC = 285,
- SI_CRITICALWOUND = 286,
-// SI_NPC_DEFENDER = 287,
-// SI_NOACTION_WAIT = 288,
- SI_MOVHASTE_HORSE = 289,
- SI_PROTECT_DEF = 290,
- SI_PROTECT_MDEF = 291,
- SI_HEALPLUS = 292,
- SI_S_LIFEPOTION = 293,
- SI_L_LIFEPOTION = 294,
- SI_CRITICALPERCENT = 295,
- SI_PLUSAVOIDVALUE = 296,
-// SI_ATKER_ASPD = 297,
-// SI_TARGET_ASPD = 298,
-// SI_ATKER_MOVESPEED = 299,
- SI_ATKER_BLOOD = 300,
- SI_TARGET_BLOOD = 301,
- SI_ARMOR_PROPERTY = 302,
-// SI_REUSE_LIMIT_A = 303,
- SI_HELLPOWER = 304,
-// SI_STEAMPACK = 305,
-// SI_REUSE_LIMIT_B = 306,
-// SI_REUSE_LIMIT_C = 307,
-// SI_REUSE_LIMIT_D = 308,
-// SI_REUSE_LIMIT_E = 309,
-// SI_REUSE_LIMIT_F = 310,
- SI_INVINCIBLE = 311,
- SI_CASH_PLUSONLYJOBEXP = 312,
- SI_PARTYFLEE = 313,
- SI_ANGEL_PROTECT = 314,
-// SI_ENDURE_MDEF = 315,
- SI_ENCHANTBLADE = 316,
- SI_DEATHBOUND = 317,
- SI_REFRESH = 318,
- SI_GIANTGROWTH = 319,
- SI_STONEHARDSKIN = 320,
- SI_VITALITYACTIVATION = 321,
- SI_FIGHTINGSPIRIT = 322,
- SI_ABUNDANCE = 323,
- SI_REUSE_MILLENNIUMSHIELD = 324,
- SI_REUSE_CRUSHSTRIKE = 325,
- SI_REUSE_REFRESH = 326,
- SI_REUSE_STORMBLAST = 327,
- SI_VENOMIMPRESS = 328,
- SI_EPICLESIS = 329,
- SI_ORATIO = 330,
- SI_LAUDAAGNUS = 331,
- SI_LAUDARAMUS = 332,
- SI_CLOAKINGEXCEED = 333,
- SI_HALLUCINATIONWALK = 334,
- SI_HALLUCINATIONWALK_POSTDELAY = 335,
- SI_RENOVATIO = 336,
- SI_WEAPONBLOCKING = 337,
- SI_WEAPONBLOCKING_POSTDELAY = 338,
- SI_ROLLINGCUTTER = 339,
- SI_EXPIATIO = 340,
- SI_POISONINGWEAPON = 341,
- SI_TOXIN = 342,
- SI_PARALYSE = 343,
- SI_VENOMBLEED = 344,
- SI_MAGICMUSHROOM = 345,
- SI_DEATHHURT = 346,
- SI_PYREXIA = 347,
- SI_OBLIVIONCURSE = 348,
- SI_LEECHESEND = 349,
- SI_DUPLELIGHT = 350,
- SI_FROSTMISTY = 351,
- SI_FEARBREEZE = 352,
- SI_ELECTRICSHOCKER = 353,
- SI_MARSHOFABYSS = 354,
- SI_RECOGNIZEDSPELL = 355,
- SI_STASIS = 356,
- SI_WUGRIDER = 357,
- SI_WUGDASH = 358,
- SI_WUGBITE = 359,
- SI_CAMOUFLAGE = 360,
- SI_ACCELERATION = 361,
- SI_HOVERING = 362,
- SI_SPHERE_1 = 363,
- SI_SPHERE_2 = 364,
- SI_SPHERE_3 = 365,
- SI_SPHERE_4 = 366,
- SI_SPHERE_5 = 367,
- SI_MVPCARD_TAOGUNKA = 368,
- SI_MVPCARD_MISTRESS = 369,
- SI_MVPCARD_ORCHERO = 370,
- SI_MVPCARD_ORCLORD = 371,
- SI_OVERHEAT_LIMITPOINT = 372,
- SI_OVERHEAT = 373,
- SI_SHAPESHIFT = 374,
- SI_INFRAREDSCAN = 375,
- SI_MAGNETICFIELD = 376,
- SI_NEUTRALBARRIER = 377,
- SI_NEUTRALBARRIER_MASTER = 378,
- SI_STEALTHFIELD = 379,
- SI_STEALTHFIELD_MASTER = 380,
- SI_MANU_ATK = 381,
- SI_MANU_DEF = 382,
- SI_SPL_ATK = 383,
- SI_SPL_DEF = 384,
- SI_REPRODUCE = 385,
- SI_MANU_MATK = 386,
- SI_SPL_MATK = 387,
- SI_STR_SCROLL = 388,
- SI_INT_SCROLL = 389,
- SI_LG_REFLECTDAMAGE = 390,
- SI_FORCEOFVANGUARD = 391,
- SI_BUCHEDENOEL = 392,
- SI_AUTOSHADOWSPELL = 393,
- SI_SHADOWFORM = 394,
- SI_RAID = 395,
- SI_SHIELDSPELL_DEF = 396,
- SI_SHIELDSPELL_MDEF = 397,
- SI_SHIELDSPELL_REF = 398,
- SI_BODYPAINT = 399,
- SI_EXEEDBREAK = 400,
- SI_ADORAMUS = 401,
- SI_PRESTIGE = 402,
- SI_INVISIBILITY = 403,
- SI_DEADLYINFECT = 404,
- SI_BANDING = 405,
- SI_EARTHDRIVE = 406,
- SI_INSPIRATION = 407,
- SI_ENERVATION = 408,
- SI_GROOMY = 409,
- SI_RAISINGDRAGON = 410,
- SI_IGNORANCE = 411,
- SI_LAZINESS = 412,
- SI_LIGHTNINGWALK = 413,
- SI_ACARAJE = 414,
- SI_UNLUCKY = 415,
- SI_CURSEDCIRCLE_ATKER = 416,
- SI_CURSEDCIRCLE_TARGET = 417,
- SI_WEAKNESS = 418,
- SI_CRESCENTELBOW = 419,
- SI_NOEQUIPACCESSARY = 420,
- SI_STRIPACCESSARY = 421,
- SI_MANHOLE = 422,
- SI_POPECOOKIE = 423,
- SI_FALLENEMPIRE = 424,
- SI_GENTLETOUCH_ENERGYGAIN = 425,
- SI_GENTLETOUCH_CHANGE = 426,
- SI_GENTLETOUCH_REVITALIZE = 427,
- SI_BLOODYLUST = 428,
- SI_SWINGDANCE = 429,
- SI_SYMPHONYOFLOVERS = 430,
- SI_PROPERTYWALK = 431,
- SI_SPELLFIST = 432,
- SI_NETHERWORLD = 433,
- SI_SIREN = 434,
- SI_DEEPSLEEP = 435,
- SI_SIRCLEOFNATURE = 436,
- SI_COLD = 437,
- SI_GLOOMYDAY = 438,
- SI_SONG_OF_MANA = 439,
- SI_CLOUDKILL = 440,
- SI_DANCEWITHWUG = 441,
- SI_RUSHWINDMILL = 442,
- SI_ECHOSONG = 443,
- SI_HARMONIZE = 444,
- SI_STRIKING = 445,
- SI_WARMER = 446,
- SI_MOONLITSERENADE = 447,
- SI_SATURDAYNIGHTFEVER = 448,
- SI_SITDOWN_FORCE = 449,
- SI_ANALYZE = 450,
- SI_LERADSDEW = 451,
- SI_MELODYOFSINK = 452,
- SI_WARCRYOFBEYOND = 453,
- SI_UNLIMITEDHUMMINGVOICE = 454,
- SI_SPELLBOOK1 = 455,
- SI_SPELLBOOK2 = 456,
- SI_SPELLBOOK3 = 457,
- SI_FREEZE_SP = 458,
- SI_GN_TRAINING_SWORD = 459,
- SI_GN_REMODELING_CART = 460,
- SI_CARTSBOOST = 461,
- SI_FIXEDCASTINGTM_REDUCE = 462,
- SI_THORNTRAP = 463,
- SI_BLOODSUCKER = 464,
- SI_SPORE_EXPLOSION = 465,
- SI_DEMONIC_FIRE = 466,
- SI_FIRE_EXPANSION_SMOKE_POWDER = 467,
- SI_FIRE_EXPANSION_TEAR_GAS = 468,
- SI_BLOCKING_PLAY = 469,
- SI_MANDRAGORA = 470,
- SI_ACTIVATE = 471,
- SI_SECRAMENT = 472,
- SI_ASSUMPTIO2 = 473,
- SI_TK_SEVENWIND = 474,
- SI_LIMIT_ODINS_RECALL = 475,
- SI_STOMACHACHE = 476,
- SI_MYSTERIOUS_POWDER = 477,
- SI_MELON_BOMB = 478,
- SI_BANANA_BOMB_SITDOWN_POSTDELAY = 479,
- SI_PROMOTE_HEALTH_RESERCH = 480,
- SI_ENERGY_DRINK_RESERCH = 481,
- SI_EXTRACT_WHITE_POTION_Z = 482,
- SI_VITATA_500 = 483,
- SI_EXTRACT_SALAMINE_JUICE = 484,
- SI_BOOST500 = 485,
- SI_FULL_SWING_K = 486,
- SI_MANA_PLUS = 487,
- SI_MUSTLE_M = 488,
- SI_LIFE_FORCE_F = 489,
- SI_VACUUM_EXTREME = 490,
- SI_SAVAGE_STEAK = 491,
- SI_COCKTAIL_WARG_BLOOD = 492,
- SI_MINOR_BBQ = 493,
- SI_SIROMA_ICE_TEA = 494,
- SI_DROCERA_HERB_STEAMED = 495,
- SI_PUTTI_TAILS_NOODLES = 496,
- SI_BANANA_BOMB = 497,
- SI_SUMMON_AGNI = 498,
- SI_SPELLBOOK4 = 499,
- SI_SPELLBOOK5 = 500,
- SI_SPELLBOOK6 = 501,
- SI_SPELLBOOK7 = 502,
- SI_ELEMENTAL_AGGRESSIVE = 503,
- SI_RETURN_TO_ELDICASTES = 504,
- SI_BANDING_DEFENCE = 505,
- SI_SKELSCROLL = 506,
- SI_DISTRUCTIONSCROLL = 507,
- SI_ROYALSCROLL = 508,
- SI_IMMUNITYSCROLL = 509,
- SI_MYSTICSCROLL = 510,
- SI_BATTLESCROLL = 511,
- SI_ARMORSCROLL = 512,
- SI_FREYJASCROLL = 513,
- SI_SOULSCROLL = 514,
- SI_CIRCLE_OF_FIRE = 515,
- SI_CIRCLE_OF_FIRE_OPTION = 516,
- SI_FIRE_CLOAK = 517,
- SI_FIRE_CLOAK_OPTION = 518,
- SI_WATER_SCREEN = 519,
- SI_WATER_SCREEN_OPTION = 520,
- SI_WATER_DROP = 521,
- SI_WATER_DROP_OPTION = 522,
- SI_WIND_STEP = 523,
- SI_WIND_STEP_OPTION = 524,
- SI_WIND_CURTAIN = 525,
- SI_WIND_CURTAIN_OPTION = 526,
- SI_WATER_BARRIER = 527,
- SI_ZEPHYR = 528,
- SI_SOLID_SKIN = 529,
- SI_SOLID_SKIN_OPTION = 530,
- SI_STONE_SHIELD = 531,
- SI_STONE_SHIELD_OPTION = 532,
- SI_POWER_OF_GAIA = 533,
- // SI_EL_WAIT = 534,
- // SI_EL_PASSIVE = 535,
- // SI_EL_DEFENSIVE = 536,
- // SI_EL_OFFENSIVE = 537,
- // SI_EL_COST = 538,
- SI_PYROTECHNIC = 539,
- SI_PYROTECHNIC_OPTION = 540,
- SI_HEATER = 541,
- SI_HEATER_OPTION = 542,
- SI_TROPIC = 543,
- SI_TROPIC_OPTION = 544,
- SI_AQUAPLAY = 545,
- SI_AQUAPLAY_OPTION = 546,
- SI_COOLER = 547,
- SI_COOLER_OPTION = 548,
- SI_CHILLY_AIR = 549,
- SI_CHILLY_AIR_OPTION = 550,
- SI_GUST = 551,
- SI_GUST_OPTION = 552,
- SI_BLAST = 553,
- SI_BLAST_OPTION = 554,
- SI_WILD_STORM = 555,
- SI_WILD_STORM_OPTION = 556,
- SI_PETROLOGY = 557,
- SI_PETROLOGY_OPTION = 558,
- SI_CURSED_SOIL = 559,
- SI_CURSED_SOIL_OPTION = 560,
- SI_UPHEAVAL = 561,
- SI_UPHEAVAL_OPTION = 562,
- SI_TIDAL_WEAPON = 563,
- SI_TIDAL_WEAPON_OPTION = 564,
- SI_ROCK_CRUSHER = 565,
- SI_ROCK_CRUSHER_ATK = 566,
- SI_FIRE_INSIGNIA = 567,
- SI_WATER_INSIGNIA = 568,
- SI_WIND_INSIGNIA = 569,
- SI_EARTH_INSIGNIA = 570,
- SI_EQUIPED_FLOOR = 571,
- SI_GUARDIAN_RECALL = 572,
- SI_MORA_BUFF = 573,
- SI_REUSE_LIMIT_G = 574,
- SI_REUSE_LIMIT_H = 575,
- SI_NEEDLE_OF_PARALYZE = 576,
- SI_PAIN_KILLER = 577,
- SI_G_LIFEPOTION = 578,
- SI_VITALIZE_POTION = 579,
- SI_LIGHT_OF_REGENE = 580,
- SI_OVERED_BOOST = 581,
- SI_SILENT_BREEZE = 582,
- SI_ODINS_POWER = 583,
- SI_STYLE_CHANGE = 584,
- SI_SONIC_CLAW_POSTDELAY = 585,
+ SI_BLANK = -1,
+
+ SI_PROVOKE = 0,
+ SI_ENDURE = 1,
+ SI_TWOHANDQUICKEN = 2,
+ SI_CONCENTRATION = 3,
+ SI_HIDING = 4,
+ SI_CLOAKING = 5,
+ SI_ENCHANTPOISON = 6,
+ SI_POISONREACT = 7,
+ SI_QUAGMIRE = 8,
+ SI_ANGELUS = 9,
+ SI_BLESSING = 10,
+ SI_CRUCIS = 11,
+ SI_INC_AGI = 12,
+ SI_DEC_AGI = 13,
+ SI_SLOWPOISON = 14,
+ SI_IMPOSITIO = 15,
+ SI_SUFFRAGIUM = 16,
+ SI_ASPERSIO = 17,
+ SI_BENEDICTIO = 18,
+ SI_KYRIE = 19,
+ SI_MAGNIFICAT = 20,
+ SI_GLORIA = 21,
+ SI_LEXAETERNA = 22,
+ SI_ADRENALINE = 23,
+ SI_WEAPONPERFECT = 24,
+ SI_OVERTHRUST = 25,
+ SI_MAXIMIZE = 26,
+ SI_RIDING = 27,
+ SI_FALCON = 28,
+ SI_TRICKDEAD = 29,
+ SI_SHOUT = 30,
+ SI_ENERGYCOAT = 31,
+ SI_BROKENARMOR = 32,
+ SI_BROKENWEAPON = 33,
+ SI_ILLUSION = 34,
+ SI_WEIGHTOVER50 = 35,
+ SI_WEIGHTOVER90 = 36,
+ SI_ATTHASTE_POTION1 = 37,
+ SI_ATTHASTE_POTION2 = 38,
+ SI_ATTHASTE_POTION3 = 39,
+ SI_ATTHASTE_INFINITY = 40,
+ SI_MOVHASTE_POTION = 41,
+ SI_MOVHASTE_INFINITY = 42,
+ //SI_AUTOCOUNTER = 43,
+ //SI_SPLASHER = 44,
+ SI_ANKLESNARE = 45,
+ SI_POSTDELAY = 46,
+ //SI_NOACTION = 47,
+ //SI_IMPOSSIBLEPICKUP = 48,
+ //SI_BARRIER = 49,
+
+ SI_NOEQUIPWEAPON = 50,
+ SI_NOEQUIPSHIELD = 51,
+ SI_NOEQUIPARMOR = 52,
+ SI_NOEQUIPHELM = 53,
+ SI_PROTECTWEAPON = 54,
+ SI_PROTECTSHIELD = 55,
+ SI_PROTECTARMOR = 56,
+ SI_PROTECTHELM = 57,
+ SI_AUTOGUARD = 58,
+ SI_REFLECTSHIELD = 59,
+ //SI_DEVOTION = 60,
+ SI_PROVIDENCE = 61,
+ SI_DEFENDER = 62,
+ //SI_MAGICROD = 63,
+ //SI_WEAPONPROPERTY = 64,
+ SI_AUTOSPELL = 65,
+ //SI_SPECIALZONE = 66,
+ //SI_MASK = 67,
+ SI_SPEARQUICKEN = 68,
+ //SI_BDPLAYING = 69,
+ //SI_WHISTLE = 70,
+ //SI_ASSASSINCROSS = 71,
+ //SI_POEMBRAGI = 72,
+ //SI_APPLEIDUN = 73,
+ //SI_HUMMING = 74,
+ //SI_DONTFORGETME = 75,
+ //SI_FORTUNEKISS = 76,
+ //SI_SERVICEFORYOU = 77,
+ //SI_RICHMANKIM = 78,
+ //SI_ETERNALCHAOS = 79,
+ //SI_DRUMBATTLEFIELD = 80,
+ //SI_RINGNIBELUNGEN = 81,
+ //SI_ROKISWEIL = 82,
+ //SI_INTOABYSS = 83,
+ //SI_SIEGFRIED = 84,
+ //SI_BLADESTOP = 85,
+ SI_EXPLOSIONSPIRITS = 86,
+ SI_STEELBODY = 87,
+ SI_EXTREMITYFIST = 88,
+ //SI_COMBOATTACK = 89,
+ SI_PROPERTYFIRE = 90,
+ SI_PROPERTYWATER = 91,
+ SI_PROPERTYWIND = 92,
+ SI_PROPERTYGROUND = 93,
+ //SI_MAGICATTACK = 94,
+ SI_STOP = 95,
+ //SI_WEAPONBRAKER = 96,
+ SI_PROPERTYUNDEAD = 97,
+ //SI_POWERUP = 98,
+ //SI_AGIUP = 99,
+
+ //SI_SIEGEMODE = 100,
+ //SI_INVISIBLE = 101,
+ //SI_STATUSONE = 102,
+ SI_AURABLADE = 103,
+ SI_PARRYING = 104,
+ SI_LKCONCENTRATION = 105,
+ SI_TENSIONRELAX = 106,
+ SI_BERSERK = 107,
+ //SI_SACRIFICE = 108,
+ //SI_GOSPEL = 109,
+ SI_ASSUMPTIO = 110,
+ //SI_BASILICA = 111,
+ SI_GROUNDMAGIC = 112,
+ SI_MAGICPOWER = 113,
+ SI_EDP = 114,
+ SI_TRUESIGHT = 115,
+ SI_WINDWALK = 116,
+ SI_MELTDOWN = 117,
+ SI_CARTBOOST = 118,
+ //SI_CHASEWALK = 119,
+ SI_SWORDREJECT = 120,
+ SI_MARIONETTE_MASTER = 121,
+ SI_MARIONETTE = 122,
+ SI_MOON = 123,
+ SI_BLOODING = 124,
+ SI_JOINTBEAT = 125,
+ //SI_MINDBREAKER = 126,
+ //SI_MEMORIZE = 127,
+ //SI_FOGWALL = 128,
+ //SI_SPIDERWEB = 129,
+ SI_PROTECTEXP = 130,
+ //SI_SUB_WEAPONPROPERTY = 131,
+ SI_AUTOBERSERK = 132,
+ SI_RUN = 133,
+ SI_TING = 134,
+ SI_STORMKICK_ON = 135,
+ SI_STORMKICK_READY = 136,
+ SI_DOWNKICK_ON = 137,
+ SI_DOWNKICK_READY = 138,
+ SI_TURNKICK_ON = 139,
+ SI_TURNKICK_READY = 140,
+ SI_COUNTER_ON = 141,
+ SI_COUNTER_READY = 142,
+ SI_DODGE_ON = 143,
+ SI_DODGE_READY = 144,
+ SI_STRUP = 145,
+ SI_PROPERTYDARK = 146,
+ SI_ADRENALINE2 = 147,
+ SI_PROPERTYTELEKINESIS = 148,
+ SI_SOULLINK = 149,
+
+ SI_PLUSATTACKPOWER = 150,
+ SI_PLUSMAGICPOWER = 151,
+ SI_DEVIL1 = 152,
+ SI_KAITE = 153,
+ //SI_SWOO = 154,
+ //SI_STAR2 = 155,
+ SI_KAIZEL = 156,
+ SI_KAAHI = 157,
+ SI_KAUPE = 158,
+ SI_SMA_READY = 159,
+ SI_SKE = 160,
+ SI_ONEHANDQUICKEN = 161,
+ //SI_FRIEND = 162,
+ //SI_FRIENDUP = 163,
+ //SI_SG_WARM = 164,
+ SI_SG_SUN_WARM = 165,
+ //SI_SG_MOON_WARM = 166 | The three show the exact same display: ultra red character (165, 166, 167)
+ //SI_SG_STAR_WARM = 167 | Their names would be SI_SG_SUN_WARM, SI_SG_MOON_WARM, SI_SG_STAR_WARM
+ //SI_EMOTION = 168,
+ SI_SUN_COMFORT = 169,
+ SI_MOON_COMFORT = 170,
+ SI_STAR_COMFORT = 171,
+ //SI_EXPUP = 172,
+ //SI_GDSKILL_BATTLEORDER = 173,
+ //SI_GDSKILL_REGENERATION = 174,
+ //SI_GDSKILL_POSTDELAY = 175,
+ //SI_RESISTHANDICAP = 176,
+ //SI_MAXHPPERCENT = 177,
+ //SI_MAXSPPERCENT = 178,
+ //SI_DEFENCE = 179,
+ //SI_SLOWDOWN = 180,
+ SI_PRESERVE = 181,
+ SI_INCSTR = 182,
+ //SI_NOT_EXTREMITYFIST = 183,
+ SI_CLAIRVOYANCE = 184,
+ //SI_MOVESLOW_POTION = 185,
+ SI_DOUBLECASTING = 186,
+ //SI_GRAVITATION = 187,
+ SI_OVERTHRUSTMAX = 188,
+ //SI_LONGING = 189,
+ //SI_HERMODE = 190,
+ SI_TAROTCARD = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
+ //SI_HLIF_AVOID = 192,
+ //SI_HFLI_FLEET = 193,
+ //SI_HFLI_SPEED = 194,
+ //SI_HLIF_CHANGE = 195,
+ //SI_HAMI_BLOODLUST = 196,
+ SI_CR_SHRINK = 197,
+ SI_WZ_SIGHTBLASTER = 198,
+ SI_DC_WINKCHARM = 199,
+
+ SI_RG_CCONFINE_M = 200,
+ SI_RG_CCONFINE_S = 201,
+ //SI_DISABLEMOVE = 202,
+ SI_GS_MADNESSCANCEL = 203, //[blackhole89]
+ SI_GS_GATLINGFEVER = 204,
+ SI_EARTHSCROLL = 205,
+ SI_NJ_UTSUSEMI = 206,
+ SI_NJ_BUNSINJYUTSU = 207,
+ SI_NJ_NEN = 208,
+ SI_GS_ADJUSTMENT = 209,
+ SI_GS_ACCURACY = 210,
+ SI_NJ_SUITON = 211,
+ //SI_PET = 212,
+ //SI_MENTAL = 213,
+ //SI_EXPMEMORY = 214,
+ //SI_PERFORMANCE = 215,
+ //SI_GAIN = 216,
+ //SI_GRIFFON = 217,
+ //SI_DRIFT = 218,
+ //SI_WALLSHIFT = 219,
+ //SI_REINCARNATION = 220,
+ //SI_PATTACK = 221,
+ //SI_PSPEED = 222,
+ //SI_PDEFENSE = 223,
+ //SI_PCRITICAL = 224,
+ //SI_RANKING = 225,
+ //SI_PTRIPLE = 226,
+ //SI_DENERGY = 227,
+ //SI_WAVE1 = 228,
+ //SI_WAVE2 = 229,
+ //SI_WAVE3 = 230,
+ //SI_WAVE4 = 231,
+ //SI_DAURA = 232,
+ //SI_DFREEZER = 233,
+ //SI_DPUNISH = 234,
+ //SI_DBARRIER = 235,
+ //SI_DWARNING = 236,
+ //SI_MOUSEWHEEL = 237,
+ //SI_DGAUGE = 238,
+ //SI_DACCEL = 239,
+ //SI_DBLOCK = 240,
+ SI_FOOD_STR = 241,
+ SI_FOOD_AGI = 242,
+ SI_FOOD_VIT = 243,
+ SI_FOOD_DEX = 244,
+ SI_FOOD_INT = 245,
+ SI_FOOD_LUK = 246,
+ SI_FOOD_BASICAVOIDANCE = 247,
+ SI_FOOD_BASICHIT = 248,
+ SI_FOOD_CRITICALSUCCESSVALUE = 249,
+
+ SI_CASH_PLUSEXP = 250,
+ SI_CASH_DEATHPENALTY = 251,
+ SI_CASH_RECEIVEITEM = 252,
+ SI_CASH_BOSS_ALARM = 253,
+ //SI_DA_ENERGY = 254,
+ //SI_DA_FIRSTSLOT = 255,
+ //SI_DA_HEADDEF = 256,
+ //SI_DA_SPACE = 257,
+ //SI_DA_TRANSFORM = 258,
+ //SI_DA_ITEMREBUILD = 259,
+ //SI_DA_ILLUSION = 260, //All mobs display as Turtle General
+ //SI_DA_DARKPOWER = 261,
+ //SI_DA_EARPLUG = 262,
+ //SI_DA_CONTRACT = 263, //Bio Mob effect on you and SI_TRICKDEAD icon
+ //SI_DA_BLACK = 264, //For short time blurry screen
+ //SI_DA_MAGICCART = 265,
+ //SI_CRYSTAL = 266,
+ //SI_DA_REBUILD = 267,
+ //SI_DA_EDARKNESS = 268,
+ //SI_DA_EGUARDIAN = 269,
+ //SI_DA_TIMEOUT = 270,
+ SI_FOOD_STR_CASH = 271,
+ SI_FOOD_AGI_CASH = 272,
+ SI_FOOD_VIT_CASH = 273,
+ SI_FOOD_DEX_CASH = 274,
+ SI_FOOD_INT_CASH = 275,
+ SI_FOOD_LUK_CASH = 276,
+ SI_MER_FLEE = 277,
+ SI_MER_ATK = 278,
+ SI_MER_HP = 279,
+ SI_MER_SP = 280,
+ SI_MER_HIT = 281,
+ SI_SLOWCAST = 282,
+ //SI_MAGICMIRROR = 283,
+ //SI_STONESKIN = 284,
+ //SI_ANTIMAGIC = 285,
+ SI_CRITICALWOUND = 286,
+ //SI_NPC_DEFENDER = 287,
+ //SI_NOACTION_WAIT = 288,
+ SI_MOVHASTE_HORSE = 289,
+ SI_PROTECT_DEF = 290,
+ SI_PROTECT_MDEF = 291,
+ SI_HEALPLUS = 292,
+ SI_S_LIFEPOTION = 293,
+ SI_L_LIFEPOTION = 294,
+ SI_CRITICALPERCENT = 295,
+ SI_PLUSAVOIDVALUE = 296,
+ //SI_ATKER_ASPD = 297,
+ //SI_TARGET_ASPD = 298,
+ //SI_ATKER_MOVESPEED = 299,
+
+ SI_ATKER_BLOOD = 300,
+ SI_TARGET_BLOOD = 301,
+ SI_ARMOR_PROPERTY = 302,
+ //SI_REUSE_LIMIT_A = 303,
+ SI_HELLPOWER = 304,
+ //SI_STEAMPACK = 305,
+ //SI_REUSE_LIMIT_B = 306,
+ //SI_REUSE_LIMIT_C = 307,
+ //SI_REUSE_LIMIT_D = 308,
+ //SI_REUSE_LIMIT_E = 309,
+ //SI_REUSE_LIMIT_F = 310,
+ SI_INVINCIBLE = 311,
+ SI_CASH_PLUSONLYJOBEXP = 312,
+ SI_PARTYFLEE = 313,
+ SI_ANGEL_PROTECT = 314,
+ //SI_ENDURE_MDEF = 315,
+ SI_ENCHANTBLADE = 316,
+ SI_DEATHBOUND = 317,
+ SI_REFRESH = 318,
+ SI_GIANTGROWTH = 319,
+ SI_STONEHARDSKIN = 320,
+ SI_VITALITYACTIVATION = 321,
+ SI_FIGHTINGSPIRIT = 322,
+ SI_ABUNDANCE = 323,
+ SI_REUSE_MILLENNIUMSHIELD = 324,
+ SI_REUSE_CRUSHSTRIKE = 325,
+ SI_REUSE_REFRESH = 326,
+ SI_REUSE_STORMBLAST = 327,
+ SI_VENOMIMPRESS = 328,
+ SI_EPICLESIS = 329,
+ SI_ORATIO = 330,
+ SI_LAUDAAGNUS = 331,
+ SI_LAUDARAMUS = 332,
+ SI_CLOAKINGEXCEED = 333,
+ SI_HALLUCINATIONWALK = 334,
+ SI_HALLUCINATIONWALK_POSTDELAY = 335,
+ SI_RENOVATIO = 336,
+ SI_WEAPONBLOCKING = 337,
+ SI_WEAPONBLOCKING_POSTDELAY = 338,
+ SI_ROLLINGCUTTER = 339,
+ SI_EXPIATIO = 340,
+ SI_POISONINGWEAPON = 341,
+ SI_TOXIN = 342,
+ SI_PARALYSE = 343,
+ SI_VENOMBLEED = 344,
+ SI_MAGICMUSHROOM = 345,
+ SI_DEATHHURT = 346,
+ SI_PYREXIA = 347,
+ SI_OBLIVIONCURSE = 348,
+ SI_LEECHESEND = 349,
+
+ SI_DUPLELIGHT = 350,
+ SI_FROSTMISTY = 351,
+ SI_FEARBREEZE = 352,
+ SI_ELECTRICSHOCKER = 353,
+ SI_MARSHOFABYSS = 354,
+ SI_RECOGNIZEDSPELL = 355,
+ SI_STASIS = 356,
+ SI_WUGRIDER = 357,
+ SI_WUGDASH = 358,
+ SI_WUGBITE = 359,
+ SI_CAMOUFLAGE = 360,
+ SI_ACCELERATION = 361,
+ SI_HOVERING = 362,
+ SI_SPHERE_1 = 363,
+ SI_SPHERE_2 = 364,
+ SI_SPHERE_3 = 365,
+ SI_SPHERE_4 = 366,
+ SI_SPHERE_5 = 367,
+ SI_MVPCARD_TAOGUNKA = 368,
+ SI_MVPCARD_MISTRESS = 369,
+ SI_MVPCARD_ORCHERO = 370,
+ SI_MVPCARD_ORCLORD = 371,
+ SI_OVERHEAT_LIMITPOINT = 372,
+ SI_OVERHEAT = 373,
+ SI_SHAPESHIFT = 374,
+ SI_INFRAREDSCAN = 375,
+ SI_MAGNETICFIELD = 376,
+ SI_NEUTRALBARRIER = 377,
+ SI_NEUTRALBARRIER_MASTER = 378,
+ SI_STEALTHFIELD = 379,
+ SI_STEALTHFIELD_MASTER = 380,
+ SI_MANU_ATK = 381,
+ SI_MANU_DEF = 382,
+ SI_SPL_ATK = 383,
+ SI_SPL_DEF = 384,
+ SI_REPRODUCE = 385,
+ SI_MANU_MATK = 386,
+ SI_SPL_MATK = 387,
+ SI_STR_SCROLL = 388,
+ SI_INT_SCROLL = 389,
+ SI_LG_REFLECTDAMAGE = 390,
+ SI_FORCEOFVANGUARD = 391,
+ SI_BUCHEDENOEL = 392,
+ SI_AUTOSHADOWSPELL = 393,
+ SI_SHADOWFORM = 394,
+ SI_RAID = 395,
+ SI_SHIELDSPELL_DEF = 396,
+ SI_SHIELDSPELL_MDEF = 397,
+ SI_SHIELDSPELL_REF = 398,
+ SI_BODYPAINT = 399,
+
+ SI_EXEEDBREAK = 400,
+ SI_ADORAMUS = 401,
+ SI_PRESTIGE = 402,
+ SI_INVISIBILITY = 403,
+ SI_DEADLYINFECT = 404,
+ SI_BANDING = 405,
+ SI_EARTHDRIVE = 406,
+ SI_INSPIRATION = 407,
+ SI_ENERVATION = 408,
+ SI_GROOMY = 409,
+ SI_RAISINGDRAGON = 410,
+ SI_IGNORANCE = 411,
+ SI_LAZINESS = 412,
+ SI_LIGHTNINGWALK = 413,
+ SI_ACARAJE = 414,
+ SI_UNLUCKY = 415,
+ SI_CURSEDCIRCLE_ATKER = 416,
+ SI_CURSEDCIRCLE_TARGET = 417,
+ SI_WEAKNESS = 418,
+ SI_CRESCENTELBOW = 419,
+ SI_NOEQUIPACCESSARY = 420,
+ SI_STRIPACCESSARY = 421,
+ SI_MANHOLE = 422,
+ SI_POPECOOKIE = 423,
+ SI_FALLENEMPIRE = 424,
+ SI_GENTLETOUCH_ENERGYGAIN = 425,
+ SI_GENTLETOUCH_CHANGE = 426,
+ SI_GENTLETOUCH_REVITALIZE = 427,
+ SI_BLOODYLUST = 428,
+ SI_SWINGDANCE = 429,
+ SI_SYMPHONYOFLOVERS = 430,
+ SI_PROPERTYWALK = 431,
+ SI_SPELLFIST = 432,
+ SI_NETHERWORLD = 433,
+ SI_SIREN = 434,
+ SI_DEEPSLEEP = 435,
+ SI_SIRCLEOFNATURE = 436,
+ SI_COLD = 437,
+ SI_GLOOMYDAY = 438,
+ SI_SONG_OF_MANA = 439,
+ SI_CLOUDKILL = 440,
+ SI_DANCEWITHWUG = 441,
+ SI_RUSHWINDMILL = 442,
+ SI_ECHOSONG = 443,
+ SI_HARMONIZE = 444,
+ SI_STRIKING = 445,
+ SI_WARMER = 446,
+ SI_MOONLITSERENADE = 447,
+ SI_SATURDAYNIGHTFEVER = 448,
+ SI_SITDOWN_FORCE = 449,
+
+ SI_ANALYZE = 450,
+ SI_LERADSDEW = 451,
+ SI_MELODYOFSINK = 452,
+ SI_WARCRYOFBEYOND = 453,
+ SI_UNLIMITEDHUMMINGVOICE = 454,
+ SI_SPELLBOOK1 = 455,
+ SI_SPELLBOOK2 = 456,
+ SI_SPELLBOOK3 = 457,
+ SI_FREEZE_SP = 458,
+ SI_GN_TRAINING_SWORD = 459,
+ SI_GN_REMODELING_CART = 460,
+ SI_CARTSBOOST = 461,
+ SI_FIXEDCASTINGTM_REDUCE = 462,
+ SI_THORNTRAP = 463,
+ SI_BLOODSUCKER = 464,
+ SI_SPORE_EXPLOSION = 465,
+ SI_DEMONIC_FIRE = 466,
+ SI_FIRE_EXPANSION_SMOKE_POWDER = 467,
+ SI_FIRE_EXPANSION_TEAR_GAS = 468,
+ SI_BLOCKING_PLAY = 469,
+ SI_MANDRAGORA = 470,
+ SI_ACTIVATE = 471,
+ SI_SECRAMENT = 472,
+ SI_ASSUMPTIO2 = 473,
+ SI_TK_SEVENWIND = 474,
+ SI_LIMIT_ODINS_RECALL = 475,
+ SI_STOMACHACHE = 476,
+ SI_MYSTERIOUS_POWDER = 477,
+ SI_MELON_BOMB = 478,
+ SI_BANANA_BOMB_SITDOWN_POSTDELAY = 479,
+ SI_PROMOTE_HEALTH_RESERCH = 480,
+ SI_ENERGY_DRINK_RESERCH = 481,
+ SI_EXTRACT_WHITE_POTION_Z = 482,
+ SI_VITATA_500 = 483,
+ SI_EXTRACT_SALAMINE_JUICE = 484,
+ SI_BOOST500 = 485,
+ SI_FULL_SWING_K = 486,
+ SI_MANA_PLUS = 487,
+ SI_MUSTLE_M = 488,
+ SI_LIFE_FORCE_F = 489,
+ SI_VACUUM_EXTREME = 490,
+ SI_SAVAGE_STEAK = 491,
+ SI_COCKTAIL_WARG_BLOOD = 492,
+ SI_MINOR_BBQ = 493,
+ SI_SIROMA_ICE_TEA = 494,
+ SI_DROCERA_HERB_STEAMED = 495,
+ SI_PUTTI_TAILS_NOODLES = 496,
+ SI_BANANA_BOMB = 497,
+ SI_SUMMON_AGNI = 498,
+ SI_SPELLBOOK4 = 499,
+
+ SI_SPELLBOOK5 = 500,
+ SI_SPELLBOOK6 = 501,
+ SI_SPELLBOOK7 = 502,
+ SI_ELEMENTAL_AGGRESSIVE = 503,
+ SI_RETURN_TO_ELDICASTES = 504,
+ SI_BANDING_DEFENCE = 505,
+ SI_SKELSCROLL = 506,
+ SI_DISTRUCTIONSCROLL = 507,
+ SI_ROYALSCROLL = 508,
+ SI_IMMUNITYSCROLL = 509,
+ SI_MYSTICSCROLL = 510,
+ SI_BATTLESCROLL = 511,
+ SI_ARMORSCROLL = 512,
+ SI_FREYJASCROLL = 513,
+ SI_SOULSCROLL = 514,
+ SI_CIRCLE_OF_FIRE = 515,
+ SI_CIRCLE_OF_FIRE_OPTION = 516,
+ SI_FIRE_CLOAK = 517,
+ SI_FIRE_CLOAK_OPTION = 518,
+ SI_WATER_SCREEN = 519,
+ SI_WATER_SCREEN_OPTION = 520,
+ SI_WATER_DROP = 521,
+ SI_WATER_DROP_OPTION = 522,
+ SI_WIND_STEP = 523,
+ SI_WIND_STEP_OPTION = 524,
+ SI_WIND_CURTAIN = 525,
+ SI_WIND_CURTAIN_OPTION = 526,
+ SI_WATER_BARRIER = 527,
+ SI_ZEPHYR = 528,
+ SI_SOLID_SKIN = 529,
+ SI_SOLID_SKIN_OPTION = 530,
+ SI_STONE_SHIELD = 531,
+ SI_STONE_SHIELD_OPTION = 532,
+ SI_POWER_OF_GAIA = 533,
+ //SI_EL_WAIT = 534,
+ //SI_EL_PASSIVE = 535,
+ //SI_EL_DEFENSIVE = 536,
+ //SI_EL_OFFENSIVE = 537,
+ //SI_EL_COST = 538,
+ SI_PYROTECHNIC = 539,
+ SI_PYROTECHNIC_OPTION = 540,
+ SI_HEATER = 541,
+ SI_HEATER_OPTION = 542,
+ SI_TROPIC = 543,
+ SI_TROPIC_OPTION = 544,
+ SI_AQUAPLAY = 545,
+ SI_AQUAPLAY_OPTION = 546,
+ SI_COOLER = 547,
+ SI_COOLER_OPTION = 548,
+ SI_CHILLY_AIR = 549,
+
+ SI_CHILLY_AIR_OPTION = 550,
+ SI_GUST = 551,
+ SI_GUST_OPTION = 552,
+ SI_BLAST = 553,
+ SI_BLAST_OPTION = 554,
+ SI_WILD_STORM = 555,
+ SI_WILD_STORM_OPTION = 556,
+ SI_PETROLOGY = 557,
+ SI_PETROLOGY_OPTION = 558,
+ SI_CURSED_SOIL = 559,
+ SI_CURSED_SOIL_OPTION = 560,
+ SI_UPHEAVAL = 561,
+ SI_UPHEAVAL_OPTION = 562,
+ SI_TIDAL_WEAPON = 563,
+ SI_TIDAL_WEAPON_OPTION = 564,
+ SI_ROCK_CRUSHER = 565,
+ SI_ROCK_CRUSHER_ATK = 566,
+ SI_FIRE_INSIGNIA = 567,
+ SI_WATER_INSIGNIA = 568,
+ SI_WIND_INSIGNIA = 569,
+ SI_EARTH_INSIGNIA = 570,
+ SI_EQUIPED_FLOOR = 571,
+ SI_GUARDIAN_RECALL = 572,
+ SI_MORA_BUFF = 573,
+ SI_REUSE_LIMIT_G = 574,
+ SI_REUSE_LIMIT_H = 575,
+ SI_NEEDLE_OF_PARALYZE = 576,
+ SI_PAIN_KILLER = 577,
+ SI_G_LIFEPOTION = 578,
+ SI_VITALIZE_POTION = 579,
+ SI_LIGHT_OF_REGENE = 580,
+ SI_OVERED_BOOST = 581,
+ SI_SILENT_BREEZE = 582,
+ SI_ODINS_POWER = 583,
+ SI_STYLE_CHANGE = 584,
+ SI_SONIC_CLAW_POSTDELAY = 585,
// ID's 586 - 595 Currently Unused
- SI_SILVERVEIN_RUSH_POSTDELAY = 596,
- SI_MIDNIGHT_FRENZY_POSTDELAY = 597,
- SI_GOLDENE_FERSE = 598,
- SI_ANGRIFFS_MODUS = 599,
- SI_TINDER_BREAKER = 600,
- SI_TINDER_BREAKER_POSTDELAY = 601,
- SI_CBC = 602,
- SI_CBC_POSTDELAY = 603,
- SI_EQC = 604,
- SI_MAGMA_FLOW = 605,
- SI_GRANITIC_ARMOR = 606,
- SI_PYROCLASTIC = 607,
- SI_VOLCANIC_ASH = 608,
- SI_SPIRITS_SAVEINFO1 = 609,
- SI_SPIRITS_SAVEINFO2 = 610,
- SI_MAGIC_CANDY = 611,
- SI_SEARCH_STORE_INFO = 612,
- SI_ALL_RIDING = 613,
- SI_ALL_RIDING_REUSE_LIMIT = 614,
- SI_MACRO = 615,
- SI_MACRO_POSTDELAY = 616,
- SI_BEER_BOTTLE_CAP = 617,
- SI_OVERLAPEXPUP = 618,
- SI_PC_IZ_DUN05 = 619,
- SI_CRUSHSTRIKE = 620,
- SI_MONSTER_TRANSFORM = 621,
- SI_SIT = 622,
- SI_ONAIR = 623,
- SI_MTF_ASPD = 624,
- SI_MTF_RANGEATK = 625,
- SI_MTF_MATK = 626,
- SI_MTF_MLEATKED = 627,
- SI_MTF_CRIDAMAGE = 628,
- SI_REUSE_LIMIT_MTF = 629,
- SI_MACRO_PERMIT = 630,
- SI_MACRO_PLAY = 631,
- SI_SKF_CAST = 632,
- SI_SKF_ASPD = 633,
- SI_SKF_ATK = 634,
- SI_SKF_MATK = 635,
- SI_REWARD_PLUSONLYJOBEXP = 636,
- SI_HANDICAPSTATE_NORECOVER = 637,
- SI_SET_NUM_DEF = 638,
- SI_SET_NUM_MDEF = 639,
- SI_SET_PER_DEF = 640,
- SI_SET_PER_MDEF = 641,
- SI_PARTYBOOKING_SEARCH_DEALY = 642,
- SI_PARTYBOOKING_REGISTER_DEALY = 643,
- SI_PERIOD_TIME_CHECK_DETECT_SKILL = 644,
- SI_KO_JYUMONJIKIRI = 645,
- SI_MEIKYOUSISUI = 646,
- SI_ATTHASTE_CASH = 647,
- SI_EQUIPPED_DIVINE_ARMOR = 648,
- SI_EQUIPPED_HOLY_ARMOR = 649,
- SI_2011RWC = 650,
- SI_KYOUGAKU = 651,
- SI_IZAYOI = 652,
- SI_ZENKAI = 653,
- SI_KG_KAGEHUMI = 654,
- SI_KYOMU = 655,
- SI_KAGEMUSYA = 656,
- SI_ZANGETSU = 657,
- SI_PHI_DEMON = 658,
- SI_GENSOU = 659,
- SI_AKAITSUKI = 660,
- SI_TETANY = 661,
- SI_GM_BATTLE = 662,
- SI_GM_BATTLE2 = 663,
- SI_2011RWC_SCROLL = 664,
- SI_ACTIVE_MONSTER_TRANSFORM = 665,
- SI_MYSTICPOWDER = 666,
- SI_ECLAGE_RECALL = 667,
- SI_ENTRY_QUEUE_APPLY_DELAY = 668,
- SI_REUSE_LIMIT_ECL = 669,
- SI_M_LIFEPOTION = 670,
+ SI_SILVERVEIN_RUSH_POSTDELAY = 596,
+ SI_MIDNIGHT_FRENZY_POSTDELAY = 597,
+ SI_GOLDENE_FERSE = 598,
+ SI_ANGRIFFS_MODUS = 599,
+
+ SI_TINDER_BREAKER = 600,
+ SI_TINDER_BREAKER_POSTDELAY = 601,
+ SI_CBC = 602,
+ SI_CBC_POSTDELAY = 603,
+ SI_EQC = 604,
+ SI_MAGMA_FLOW = 605,
+ SI_GRANITIC_ARMOR = 606,
+ SI_PYROCLASTIC = 607,
+ SI_VOLCANIC_ASH = 608,
+ SI_SPIRITS_SAVEINFO1 = 609,
+ SI_SPIRITS_SAVEINFO2 = 610,
+ SI_MAGIC_CANDY = 611,
+ SI_SEARCH_STORE_INFO = 612,
+ SI_ALL_RIDING = 613,
+ SI_ALL_RIDING_REUSE_LIMIT = 614,
+ SI_MACRO = 615,
+ SI_MACRO_POSTDELAY = 616,
+ SI_BEER_BOTTLE_CAP = 617,
+ SI_OVERLAPEXPUP = 618,
+ SI_PC_IZ_DUN05 = 619,
+ SI_CRUSHSTRIKE = 620,
+ SI_MONSTER_TRANSFORM = 621,
+ SI_SIT = 622,
+ SI_ONAIR = 623,
+ SI_MTF_ASPD = 624,
+ SI_MTF_RANGEATK = 625,
+ SI_MTF_MATK = 626,
+ SI_MTF_MLEATKED = 627,
+ SI_MTF_CRIDAMAGE = 628,
+ SI_REUSE_LIMIT_MTF = 629,
+ SI_MACRO_PERMIT = 630,
+ SI_MACRO_PLAY = 631,
+ SI_SKF_CAST = 632,
+ SI_SKF_ASPD = 633,
+ SI_SKF_ATK = 634,
+ SI_SKF_MATK = 635,
+ SI_REWARD_PLUSONLYJOBEXP = 636,
+ SI_HANDICAPSTATE_NORECOVER = 637,
+ SI_SET_NUM_DEF = 638,
+ SI_SET_NUM_MDEF = 639,
+ SI_SET_PER_DEF = 640,
+ SI_SET_PER_MDEF = 641,
+ SI_PARTYBOOKING_SEARCH_DEALY = 642,
+ SI_PARTYBOOKING_REGISTER_DEALY = 643,
+ SI_PERIOD_TIME_CHECK_DETECT_SKILL = 644,
+ SI_KO_JYUMONJIKIRI = 645,
+ SI_MEIKYOUSISUI = 646,
+ SI_ATTHASTE_CASH = 647,
+ SI_EQUIPPED_DIVINE_ARMOR = 648,
+ SI_EQUIPPED_HOLY_ARMOR = 649,
+
+ SI_2011RWC = 650,
+ SI_KYOUGAKU = 651,
+ SI_IZAYOI = 652,
+ SI_ZENKAI = 653,
+ SI_KG_KAGEHUMI = 654,
+ SI_KYOMU = 655,
+ SI_KAGEMUSYA = 656,
+ SI_ZANGETSU = 657,
+ SI_PHI_DEMON = 658,
+ SI_GENSOU = 659,
+ SI_AKAITSUKI = 660,
+ SI_TETANY = 661,
+ SI_GM_BATTLE = 662,
+ SI_GM_BATTLE2 = 663,
+ SI_2011RWC_SCROLL = 664,
+ SI_ACTIVE_MONSTER_TRANSFORM = 665,
+ SI_MYSTICPOWDER = 666,
+ SI_ECLAGE_RECALL = 667,
+ SI_ENTRY_QUEUE_APPLY_DELAY = 668,
+ SI_REUSE_LIMIT_ECL = 669,
+ SI_M_LIFEPOTION = 670,
SI_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT = 671,
- SI_UNKNOWN_NAME = 672,
- SI_ON_PUSH_CART = 673,
- SI_HAT_EFFECT = 674,
- SI_FLOWER_LEAF = 675,
- SI_RAY_OF_PROTECTION = 676,
- SI_GLASTHEIM_ATK = 677,
- SI_GLASTHEIM_DEF = 678,
- SI_GLASTHEIM_HEAL = 679,
- SI_GLASTHEIM_HIDDEN = 680,
- SI_GLASTHEIM_STATE = 681,
- SI_GLASTHEIM_ITEMDEF = 682,
- SI_GLASTHEIM_HPSP = 683,
- SI_HOMUN_SKILL_POSTDELAY = 684,
- SI_ALMIGHTY = 685,
- SI_GVG_GIANT = 686,
- SI_GVG_GOLEM = 687,
- SI_GVG_STUN = 688,
- SI_GVG_STONE = 689,
- SI_GVG_FREEZ = 690,
- SI_GVG_SLEEP = 691,
- SI_GVG_CURSE = 692,
- SI_GVG_SILENCE = 693,
- SI_GVG_BLIND = 694,
- SI_CLIENT_ONLY_EQUIP_ARROW = 695,
- SI_CLAN_INFO = 696,
- SI_JP_EVENT01 = 697,
- SI_JP_EVENT02 = 698,
- SI_JP_EVENT03 = 699,
- SI_JP_EVENT04 = 700,
- SI_TELEPORT_FIXEDCASTINGDELAY = 701,
- SI_GEFFEN_MAGIC1 = 702,
- SI_GEFFEN_MAGIC2 = 703,
- SI_GEFFEN_MAGIC3 = 704,
- SI_QUEST_BUFF1 = 705,
- SI_QUEST_BUFF2 = 706,
- SI_QUEST_BUFF3 = 707,
- SI_REUSE_LIMIT_RECALL = 708,
- SI_SAVEPOSITION = 709,
- SI_HANDICAPSTATE_ICEEXPLO = 710,
- SI_FENRIR_CARD = 711,
- SI_REUSE_LIMIT_ASPD_POTION = 712,
- SI_MAXPAIN = 713,
- SI_PC_STOP = 714,
- SI_FRIGG_SONG = 715,
- SI_OFFERTORIUM = 716,
- SI_TELEKINESIS_INTENSE = 717,
- SI_MOONSTAR = 718,
- SI_STRANGELIGHTS = 719,
- SI_FULL_THROTTLE = 720,
- SI_REBOUND = 721,
- SI_UNLIMIT = 722,
- SI_KINGS_GRACE = 723,
- SI_ITEM_ATKMAX = 724,
- SI_ITEM_ATKMIN = 725,
- SI_ITEM_MATKMAX = 726,
- SI_ITEM_MATKMIN = 727,
- SI_SUPER_STAR = 728,
- SI_HIGH_RANKER = 729,
- SI_DARKCROW = 730,
- SI_2013_VALENTINE1 = 731,
- SI_2013_VALENTINE2 = 732,
- SI_2013_VALENTINE3 = 733,
- SI_ILLUSIONDOPING = 734,
- //SI_ = 735,
- SI_CHILL = 736,
- SI_BURNT = 737,
- SI_FLASHCOMBO = 740,
- SI_B_TRAP = 752,
- SI_E_CHAIN = 753,
- SI_E_QD_SHOT_READY = 754,
- SI_C_MARKER = 755,
- SI_H_MINE = 756,
- SI_H_MINE_SPLASH = 757,
- SI_P_ALTER = 758,
- SI_HEAT_BARREL = 759,
- SI_ANTI_M_BLAST = 760,
- SI_SLUGSHOT = 761,
- SI_SWORDCLAN = 762,
- SI_ARCWANDCLAN = 763,
- SI_GOLDENMACECLAN = 764,
- SI_CROSSBOWCLAN = 765,
- SI_PACKING_ENVELOPE1 = 766,
- SI_PACKING_ENVELOPE2 = 767,
- SI_PACKING_ENVELOPE3 = 768,
- SI_PACKING_ENVELOPE4 = 769,
- SI_PACKING_ENVELOPE5 = 770,
- SI_PACKING_ENVELOPE6 = 771,
- SI_PACKING_ENVELOPE7 = 772,
- SI_PACKING_ENVELOPE8 = 773,
- SI_PACKING_ENVELOPE9 = 774,
- SI_PACKING_ENVELOPE10 = 775,
- SI_GLASTHEIM_TRANS = 776,
- SI_HEAT_BARREL_AFTER = 778,
- SI_DECORATION_OF_MUSIC = 779,
+ SI_UNKNOWN_NAME = 672,
+ SI_ON_PUSH_CART = 673,
+ SI_HAT_EFFECT = 674,
+ SI_FLOWER_LEAF = 675,
+ SI_RAY_OF_PROTECTION = 676,
+ SI_GLASTHEIM_ATK = 677,
+ SI_GLASTHEIM_DEF = 678,
+ SI_GLASTHEIM_HEAL = 679,
+ SI_GLASTHEIM_HIDDEN = 680,
+ SI_GLASTHEIM_STATE = 681,
+ SI_GLASTHEIM_ITEMDEF = 682,
+ SI_GLASTHEIM_HPSP = 683,
+ SI_HOMUN_SKILL_POSTDELAY = 684,
+ SI_ALMIGHTY = 685,
+ SI_GVG_GIANT = 686,
+ SI_GVG_GOLEM = 687,
+ SI_GVG_STUN = 688,
+ SI_GVG_STONE = 689,
+ SI_GVG_FREEZ = 690,
+ SI_GVG_SLEEP = 691,
+ SI_GVG_CURSE = 692,
+ SI_GVG_SILENCE = 693,
+ SI_GVG_BLIND = 694,
+ SI_CLIENT_ONLY_EQUIP_ARROW = 695,
+ SI_CLAN_INFO = 696,
+ SI_JP_EVENT01 = 697,
+ SI_JP_EVENT02 = 698,
+ SI_JP_EVENT03 = 699,
+
+ SI_JP_EVENT04 = 700,
+ SI_TELEPORT_FIXEDCASTINGDELAY = 701,
+ SI_GEFFEN_MAGIC1 = 702,
+ SI_GEFFEN_MAGIC2 = 703,
+ SI_GEFFEN_MAGIC3 = 704,
+ SI_QUEST_BUFF1 = 705,
+ SI_QUEST_BUFF2 = 706,
+ SI_QUEST_BUFF3 = 707,
+ SI_REUSE_LIMIT_RECALL = 708,
+ SI_SAVEPOSITION = 709,
+ SI_HANDICAPSTATE_ICEEXPLO = 710,
+ SI_FENRIR_CARD = 711,
+ SI_REUSE_LIMIT_ASPD_POTION = 712,
+ SI_MAXPAIN = 713,
+ SI_PC_STOP = 714,
+ SI_FRIGG_SONG = 715,
+ SI_OFFERTORIUM = 716,
+ SI_TELEKINESIS_INTENSE = 717,
+ SI_MOONSTAR = 718,
+ SI_STRANGELIGHTS = 719,
+ SI_FULL_THROTTLE = 720,
+ SI_REBOUND = 721,
+ SI_UNLIMIT = 722,
+ SI_KINGS_GRACE = 723,
+ SI_ITEM_ATKMAX = 724,
+ SI_ITEM_ATKMIN = 725,
+ SI_ITEM_MATKMAX = 726,
+ SI_ITEM_MATKMIN = 727,
+ SI_SUPER_STAR = 728,
+ SI_HIGH_RANKER = 729,
+ SI_DARKCROW = 730,
+ SI_2013_VALENTINE1 = 731,
+ SI_2013_VALENTINE2 = 732,
+ SI_2013_VALENTINE3 = 733,
+ SI_ILLUSIONDOPING = 734,
+ //SI_ = 735,
+ SI_CHILL = 736,
+ SI_BURNT = 737,
+ //...
+ SI_FLASHCOMBO = 740,
+
+ //...
+ SI_B_TRAP = 752,
+ SI_E_CHAIN = 753,
+ SI_E_QD_SHOT_READY = 754,
+ SI_C_MARKER = 755,
+ SI_H_MINE = 756,
+ SI_H_MINE_SPLASH = 757,
+ SI_P_ALTER = 758,
+ SI_HEAT_BARREL = 759,
+ SI_ANTI_M_BLAST = 760,
+ SI_SLUGSHOT = 761,
+ SI_SWORDCLAN = 762,
+ SI_ARCWANDCLAN = 763,
+ SI_GOLDENMACECLAN = 764,
+ SI_CROSSBOWCLAN = 765,
+ SI_PACKING_ENVELOPE1 = 766,
+ SI_PACKING_ENVELOPE2 = 767,
+ SI_PACKING_ENVELOPE3 = 768,
+ SI_PACKING_ENVELOPE4 = 769,
+ SI_PACKING_ENVELOPE5 = 770,
+ SI_PACKING_ENVELOPE6 = 771,
+ SI_PACKING_ENVELOPE7 = 772,
+ SI_PACKING_ENVELOPE8 = 773,
+ SI_PACKING_ENVELOPE9 = 774,
+ SI_PACKING_ENVELOPE10 = 775,
+ SI_GLASTHEIM_TRANS = 776,
+ //...
+ SI_HEAT_BARREL_AFTER = 778,
+ SI_DECORATION_OF_MUSIC = 779,
+
SI_MAX,
};
// JOINTBEAT stackable ailments
@@ -1698,7 +1719,7 @@ struct status_data {
speed,
amotion, adelay, dmotion,
mode;
- short
+ short
hit, flee, cri, flee2,
def2, mdef2,
#ifdef RENEWAL_ASPD
@@ -1867,7 +1888,7 @@ struct s_refine_info {
};
/*=====================================
-* Interface : status.h
+* Interface : status.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
diff --git a/src/map/unit.c b/src/map/unit.c
index 0ad770e80..e22d6f697 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1180,8 +1180,8 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
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;
- }
+ return 0;
+ }
switch(skill_id){
case SA_CASTCANCEL:
@@ -1371,7 +1371,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
// 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 )
- {
+ {
if (sd && target->type == BL_MOB)
{
TBL_MOB *md = (TBL_MOB*)target;
@@ -1555,7 +1555,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
if( casttime > 0 ) {
ud->skilltimer = timer->add( tick+casttime, skill->castend_pos, src->id, 0 );
if( (sd && pc->checkskill(sd,SA_FREECAST) > 0) || skill_id == LG_EXEEDBREAK)
- status_calc_bl(&sd->bl, SCB_SPEED);
+ status_calc_bl(&sd->bl, SCB_SPEED);
} else {
ud->skilltimer = INVALID_TIMER;
skill->castend_pos(ud->skilltimer,tick,src->id,0);
diff --git a/src/map/vending.c b/src/map/vending.c
index c8ac814db..7e9393bf2 100644
--- a/src/map/vending.c
+++ b/src/map/vending.c
@@ -60,7 +60,7 @@ void vending_vendinglistreq(struct map_session_data* sd, unsigned int id) {
// GM is not allowed to trade
clif->message(sd->fd, msg_txt(246));
return;
- }
+ }
sd->vended_id = vsd->vender_id; // register vending uid
diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c
index e6e698383..46792b268 100644
--- a/src/plugins/HPMHooking.c
+++ b/src/plugins/HPMHooking.c
@@ -3,48 +3,47 @@
// Sample Hercules Plugin
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include "../common/HPMi.h"
+#include "../common/db.h"
+#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/socket.h"
-#include "../common/malloc.h"
-#include "../common/db.h"
-
-#include "../map/map.h"
-#include "../map/path.h"
+#include "../map/atcommand.h"
+#include "../map/battle.h"
+#include "../map/battleground.h"
+#include "../map/chat.h"
#include "../map/chrif.h"
#include "../map/clif.h"
#include "../map/duel.h"
+#include "../map/elemental.h"
+#include "../map/guild.h"
+#include "../map/homunculus.h"
+#include "../map/instance.h"
#include "../map/intif.h"
+#include "../map/irc-bot.h"
+#include "../map/itemdb.h"
+#include "../map/log.h"
+#include "../map/mail.h"
+#include "../map/map.h"
+#include "../map/mapreg.h"
+#include "../map/mercenary.h"
+#include "../map/mob.h"
+#include "../map/npc.h"
#include "../map/npc.h"
+#include "../map/party.h"
+#include "../map/path.h"
#include "../map/pc.h"
+#include "../map/pet.h"
+#include "../map/quest.h"
+#include "../map/script.h"
+#include "../map/skill.h"
#include "../map/status.h"
-#include "../map/mob.h"
-#include "../map/npc.h"
-#include "../map/chat.h"
-#include "../map/itemdb.h"
#include "../map/storage.h"
-#include "../map/skill.h"
#include "../map/trade.h"
-#include "../map/party.h"
#include "../map/unit.h"
-#include "../map/battle.h"
-#include "../map/battleground.h"
-#include "../map/quest.h"
-#include "../map/script.h"
-#include "../map/mapreg.h"
-#include "../map/guild.h"
-#include "../map/pet.h"
-#include "../map/homunculus.h"
-#include "../map/instance.h"
-#include "../map/mercenary.h"
-#include "../map/elemental.h"
-#include "../map/atcommand.h"
-#include "../map/log.h"
-#include "../map/mail.h"
-#include "../map/irc-bot.h"
#include "../common/HPMDataCheck.h"
diff --git a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
index b6202d687..57c34db0d 100644
--- a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
@@ -4493,6 +4493,10 @@ struct {
struct HPMHookPoint *HP_skill_calc_heal_post;
struct HPMHookPoint *HP_skill_check_cloaking_pre;
struct HPMHookPoint *HP_skill_check_cloaking_post;
+ struct HPMHookPoint *HP_skill_check_cloaking_end_pre;
+ struct HPMHookPoint *HP_skill_check_cloaking_end_post;
+ struct HPMHookPoint *HP_skill_can_cloak_pre;
+ struct HPMHookPoint *HP_skill_can_cloak_post;
struct HPMHookPoint *HP_skill_enchant_elemental_end_pre;
struct HPMHookPoint *HP_skill_enchant_elemental_end_post;
struct HPMHookPoint *HP_skill_not_ok_pre;
@@ -9534,6 +9538,10 @@ struct {
int HP_skill_calc_heal_post;
int HP_skill_check_cloaking_pre;
int HP_skill_check_cloaking_post;
+ int HP_skill_check_cloaking_end_pre;
+ int HP_skill_check_cloaking_end_post;
+ int HP_skill_can_cloak_pre;
+ int HP_skill_can_cloak_post;
int HP_skill_enchant_elemental_end_pre;
int HP_skill_enchant_elemental_end_post;
int HP_skill_not_ok_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
index 47a651a49..7cccaeb22 100644
--- a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
@@ -2282,6 +2282,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->autospell, HP_skill_autospell) },
{ HP_POP(skill->calc_heal, HP_skill_calc_heal) },
{ HP_POP(skill->check_cloaking, HP_skill_check_cloaking) },
+ { HP_POP(skill->check_cloaking_end, HP_skill_check_cloaking_end) },
+ { HP_POP(skill->can_cloak, HP_skill_can_cloak) },
{ HP_POP(skill->enchant_elemental_end, HP_skill_enchant_elemental_end) },
{ HP_POP(skill->not_ok, HP_skill_not_ok) },
{ HP_POP(skill->not_ok_hom, HP_skill_not_ok_hom) },
diff --git a/src/plugins/HPMHooking/HPMHooking.Hooks.inc b/src/plugins/HPMHooking/HPMHooking.Hooks.inc
index 83af64c07..f16f7406b 100644
--- a/src/plugins/HPMHooking/HPMHooking.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Hooks.inc
@@ -28639,15 +28639,15 @@ int HP_intif_parse(int fd) {
}
return retVal___;
}
-int HP_intif_create_pet(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id, short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name) {
+int HP_intif_create_pet(int account_id, int char_id, short pet_type, 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_intif_create_pet_pre ) {
- int (*preHookFunc) (int *account_id, int *char_id, short *pet_type, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incuvate, char *pet_name);
+ int (*preHookFunc) (int *account_id, int *char_id, short *pet_type, 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_intif_create_pet_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_intif_create_pet_pre[hIndex].func;
- retVal___ = preHookFunc(&account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incuvate, pet_name);
+ retVal___ = preHookFunc(&account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incubate, pet_name);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -28655,13 +28655,13 @@ int HP_intif_create_pet(int account_id, int char_id, short pet_type, short pet_l
}
}
{
- retVal___ = HPMHooks.source.intif.create_pet(account_id, char_id, pet_type, pet_lv, pet_egg_id, pet_equip, intimate, hungry, rename_flag, incuvate, pet_name);
+ retVal___ = HPMHooks.source.intif.create_pet(account_id, char_id, pet_type, pet_lv, pet_egg_id, pet_equip, intimate, hungry, rename_flag, incubate, pet_name);
}
if( HPMHooks.count.HP_intif_create_pet_post ) {
- int (*postHookFunc) (int retVal___, int *account_id, int *char_id, short *pet_type, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incuvate, char *pet_name);
+ int (*postHookFunc) (int retVal___, int *account_id, int *char_id, short *pet_type, 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_intif_create_pet_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_intif_create_pet_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, &account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incuvate, pet_name);
+ retVal___ = postHookFunc(retVal___, &account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incubate, pet_name);
}
}
return retVal___;
@@ -60303,6 +60303,66 @@ bool HP_skill_check_cloaking(struct block_list *bl, struct status_change_entry *
}
return retVal___;
}
+int HP_skill_check_cloaking_end(struct block_list *bl, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_skill_check_cloaking_end_pre ) {
+ int (*preHookFunc) (struct block_list *bl, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_cloaking_end_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_skill_check_cloaking_end_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.check_cloaking_end(bl, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_skill_check_cloaking_end_post ) {
+ int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_cloaking_end_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_skill_check_cloaking_end_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, bl, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+bool HP_skill_can_cloak(struct map_session_data *sd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_skill_can_cloak_pre ) {
+ bool (*preHookFunc) (struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_can_cloak_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_skill_can_cloak_pre[hIndex].func;
+ retVal___ = preHookFunc(sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.can_cloak(sd);
+ }
+ if( HPMHooks.count.HP_skill_can_cloak_post ) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_can_cloak_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_skill_can_cloak_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd);
+ }
+ }
+ return retVal___;
+}
int HP_skill_enchant_elemental_end(struct block_list *bl, int type) {
int hIndex = 0;
int retVal___ = 0;
diff --git a/src/plugins/db2sql.c b/src/plugins/db2sql.c
index 46d654e0d..1e9cb1a5a 100644
--- a/src/plugins/db2sql.c
+++ b/src/plugins/db2sql.c
@@ -1,20 +1,22 @@
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
-#include "../common/cbasetypes.h"
-#include "../common/strlib.h"
-#include "../common/timer.h"
+#include "../config/core.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
#include "../common/HPMi.h"
+#include "../common/cbasetypes.h"
+#include "../common/conf.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
-#include "../common/conf.h"
-#include "../config/core.h"
+#include "../common/strlib.h"
+#include "../common/timer.h"
#include "../map/clif.h"
-#include "../map/pc.h"
-#include "../map/map.h"
#include "../map/itemdb.h"
-#include <stdio.h>
-#include <stdlib.h>
+#include "../map/map.h"
+#include "../map/pc.h"
#include "../common/HPMDataCheck.h"
@@ -198,7 +200,7 @@ HPExport void server_preinit (void) {
libconfig = GET_SYMBOL("libconfig");
- addArg("--db2sql",false,db2sql_arg,NULL);
+ addArg("--db2sql",false,db2sql_arg,NULL);
}
HPExport void plugin_init (void) {
addCPCommand("server:tools:db2sql",db2sql);
diff --git a/src/plugins/dbghelpplug.c b/src/plugins/dbghelpplug.c
index 32b30d69a..0f1690f4b 100644
--- a/src/plugins/dbghelpplug.c
+++ b/src/plugins/dbghelpplug.c
@@ -17,7 +17,7 @@ HPExport struct hplugin_info pinfo = {
#ifdef _WIN32
/////////////////////////////////////////////////////////////////////
-// Include files
+// Include files
//
#include <assert.h>
@@ -32,13 +32,12 @@ HPExport struct hplugin_info pinfo = {
#include <time.h>
/////////////////////////////////////////////////////////////////////
-// Types from Cvconst.h (DIA SDK)
+// Types from Cvconst.h (DIA SDK)
//
#ifdef _NO_CVCONST_H
-typedef enum _BasicType
-{
+typedef enum _BasicType {
btNoType = 0,
btVoid = 1,
btChar = 2,
@@ -66,7 +65,7 @@ typedef enum _UdtKind
UdtUnion
} UdtKind;
/*
-typedef enum _SymTag {
+typedef enum _SymTag {
SymTagNull = 0,
SymTagExe = 1,
SymTagCompiland = 2,
@@ -235,7 +234,7 @@ SYMGETMODULEBASE SymGetModuleBase_ = NULL;
/////////////////////////////////////////////////////////////////////
// Code
-/// Writes the minidump to file. The callback function will at the
+/// Writes the minidump to file. The callback function will at the
/// same time write the list of modules to the log file.
///
/// @param file Filename of the minidump
@@ -324,7 +323,7 @@ Dhp__PrintModuleInfoCallback(
return TRUE;
}
-/// Prints details about the current process, platform and exception
+/// Prints details about the current process, platform and exception
/// information to the log file.
///
/// @param exception Exception info
@@ -418,7 +417,7 @@ 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->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)
@@ -487,7 +486,7 @@ Dhp__PrintTypeName(
switch( symtag )
{
case SymTagEnum:
- {
+ {
WCHAR* pwszTypeName;
if( SymGetTypeInfo_(hProcess, modBase, typeIndex, TI_GET_SYMNAME, &pwszTypeName) )
@@ -1007,7 +1006,7 @@ Dhp__PrintDataValue(
fprintf(log_file, "0x%p", *(void**)pVariable);
if( SymGetTypeInfo_(hProcess, modBase, typeIndex, TI_GET_TYPE, &childTypeIndex) &&
- SymGetTypeInfo_(hProcess, modBase, childTypeIndex, TI_GET_SYMTAG, &childSymtag) &&
+ SymGetTypeInfo_(hProcess, modBase, childTypeIndex, TI_GET_SYMTAG, &childSymtag) &&
childSymtag != SymTagPointerType )
{
DWORD childBasetype;
@@ -1277,9 +1276,9 @@ Dhp__PrintSymbolInfo(
assert( pSymInfo != NULL );
assert( pInterData != NULL );
- switch( pSymInfo->Tag )
+ switch( pSymInfo->Tag )
{
- case SymTagData: Dhp__PrintDataInfo( pSymInfo, pInterData ); break;
+ case SymTagData: Dhp__PrintDataInfo( pSymInfo, pInterData ); break;
default: /*fprintf(pInterData->log_file, "<unsupported symtag %d>", pSymInfo->Tag);*/ break;
}
}
diff --git a/src/plugins/sample.c b/src/plugins/sample.c
index 819aae08c..84df88e06 100644
--- a/src/plugins/sample.c
+++ b/src/plugins/sample.c
@@ -3,17 +3,17 @@
// Sample Hercules Plugin
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include "../common/HPMi.h"
+#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/socket.h"
-#include "../common/malloc.h"
-#include "../map/script.h"
-#include "../map/pc.h"
-#include "../map/clif.h"
#include "../common/strlib.h"
+#include "../map/clif.h"
+#include "../map/pc.h"
+#include "../map/script.h"
#include "../common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) */
diff --git a/src/test/test_spinlock.c b/src/test/test_spinlock.c
index 878ee8bab..0c0e3e2ae 100644
--- a/src/test/test_spinlock.c
+++ b/src/test/test_spinlock.c
@@ -8,13 +8,13 @@
#include <stdio.h>
#include <stdlib.h>
-//
-// Simple test for the spinlock implementation to see if it works properly..
+//
+// Simple test for the spinlock implementation to see if it works properly..
//
-#define THRC 32 //thread Count
+#define THRC 32 //thread Count
#define PERINC 100000
#define LOOPS 47
@@ -66,7 +66,7 @@ int do_init(int argc, char **argv){
while(1){
- if(InterlockedCompareExchange(&done_threads, THRC, THRC) == THRC)
+ if(InterlockedCompareExchange(&done_threads, THRC, THRC) == THRC)
break;
rathread_yield();
@@ -86,7 +86,7 @@ int do_init(int argc, char **argv){
if(ok != LOOPS){
- ShowFatalError("Test failed.\n");
+ ShowFatalError("Test failed.\n");
exit(1);
}else{
ShowStatus("Test passed.\n");
@@ -103,11 +103,12 @@ void do_abort(){
void set_server_type(){
- SERVER_TYPE = ATHENA_SERVER_NONE;
+ SERVER_TYPE = SERVER_TYPE_UNKNOWN;
}//end: set_server_type()
-void do_final(){
+int do_final(){
+ return EXIT_SUCCESS;
}//end: do_final()
diff --git a/travis.sh b/travis.sh
new file mode 100755
index 000000000..6f2eced20
--- /dev/null
+++ b/travis.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+MODE="$1"
+shift
+
+function foo {
+ for i in "$@"; do
+ echo "> $i"
+ done
+}
+
+function usage {
+ echo "usage:"
+ echo " $0 createdb <dbname> [dbuser] [dbpassword]"
+ echo " $0 importdb <dbname> [dbuser] [dbpassword]"
+ echo " $0 build [configure args]"
+ echo " $0 test <dbname> [dbuser] [dbpassword]"
+ echo " $0 getplugins"
+ exit 1
+}
+
+function aborterror {
+ echo $@
+ exit 1
+}
+
+case "$MODE" in
+ createdb|importdb|test)
+ DBNAME="$1"
+ DBUSER="$2"
+ DBPASS="$3"
+ if [ -z "$DBNAME" ]; then
+ usage
+ fi
+ if [ "$MODE" != "test" ]; then
+ if [ -n "$DBUSER" ]; then
+ DBUSER="-u $DBUSER"
+ fi
+ if [ -n "$DBPASS" ]; then
+ DBPASS="-p$DBPASS"
+ fi
+ fi
+ ;;
+esac
+
+case "$MODE" in
+ createdb)
+ echo "Creating database $DBNAME..."
+ mysql $DBUSER $DBPASS -e "create database $DBNAME;" || aborterror "Unable to create database."
+ ;;
+ importdb)
+ echo "Importing tables into $DBNAME..."
+ mysql $DBUSER $DBPASS $DBNAME < sql-files/main.sql || aborterror "Unable to import main database."
+ mysql $DBUSER $DBPASS $DBNAME < sql-files/logs.sql || aborterror "Unable to import logs database."
+ ;;
+ build)
+ ./configure $@ || aborterror "Configure error, aborting build."
+ make sql -j3 || aborterror "Build failed."
+ if [ -f src/plugins/script_mapquit.c ]; then
+ make plugin.script_mapquit -j3 || aborterror "Build failed."
+ fi
+ ;;
+ test)
+ cat >> conf/import/login_conf.txt << EOF
+ipban.sql.db_username: $DBUSER
+ipban.sql.db_password: $DBPASS
+ipban.sql.db_database: $DBNAME
+account.sql.db_username: $DBUSER
+account.sql.db_password: $DBPASS
+account.sql.db_database: $DBNAME
+account.sql.db_hostname: localhost
+EOF
+ [ $? -eq 0 ] || aborterror "Unable to import configuration, aborting tests."
+ cat >> conf/import/inter_conf.txt << EOF
+sql.db_username: $DBUSER
+sql.db_password: $DBPASS
+sql.db_database: $DBNAME
+sql.db_hostname: localhost
+char_server_id: $DBUSER
+char_server_pw: $DBPASS
+char_server_db: $DBNAME
+char_server_ip: localhost
+map_server_id: $DBUSER
+map_server_pw: $DBPASS
+map_server_db: $DBNAME
+map_server_ip: localhost
+log_db_id: $DBUSER
+log_db_pw: $DBPASS
+log_db_db: $DBNAME
+log_db_ip: localhost
+EOF
+ [ $? -eq 0 ] || aborterror "Unable to import configuration, aborting tests."
+ ARGS="--load-script npc/dev/test.txt "
+ if [ -f src/plugins/script_mapquit.c ]; then
+ ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt"
+ fi
+ echo "Running Hercules with command line: ./map-server --run-once $ARGS"
+ ./map-server --run-once $ARGS || aborterror "Test failed."
+ ;;
+ getplugins)
+ echo "Cloning plugins repository..."
+ git clone http://github.com/HerculesWS/StaffPlugins.git || aborterror "Unable to fetch plugin repository"
+ if [ -f StaffPlugins/Haru/script_mapquit/script_mapquit.c -a -f StaffPlugins/Haru/script_mapquit/examples/ci_test.txt ]; then
+ pushd src/plugins || aborterror "Unable to enter plugins directory."
+ ln -s ../../StaffPlugins/Haru/script_mapquit/script_mapquit.c ./
+ popd
+ pushd npc/dev || aborterror "Unable to enter scripts directory."
+ ln -s ../../StaffPlugins/Haru/script_mapquit/examples/ci_test.txt ./
+ popd
+ else
+ echo "Plugin not found, skipping advanced tests."
+ fi
+ ;;
+ *)
+ usage
+ ;;
+esac