From 8a4bf716002a017de77fe7df301ef8e4aaf00a2e Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 11:00:49 -0300 Subject: Initial commit --- .editorconfig | 9 + .gitattributes | 2 + .gitignore | 125 + .gitlab-ci.yml | 79 + .mailmap | 32 + .tools/conf/mariadb/battle.conf | 32 + .tools/conf/mariadb/char-server.conf | 31 + .tools/conf/mariadb/constants.conf | 31 + .tools/conf/mariadb/inter-server.conf | 32 + .tools/conf/mariadb/login-server.conf | 32 + .tools/conf/mariadb/logs.conf | 32 + .tools/conf/mariadb/map-server.conf | 32 + .tools/conf/mariadb/msg_conf.txt | 0 .tools/conf/mariadb/ports.conf | 8 + .tools/conf/mariadb/script.conf | 32 + .tools/conf/mariadb/socket.conf | 32 + .tools/conf/mariadb/sql_connection.conf | 52 + .tools/conf/mysql/battle.conf | 32 + .tools/conf/mysql/char-server.conf | 31 + .tools/conf/mysql/constants.conf | 31 + .tools/conf/mysql/inter-server.conf | 32 + .tools/conf/mysql/login-server.conf | 32 + .tools/conf/mysql/logs.conf | 32 + .tools/conf/mysql/map-server.conf | 32 + .tools/conf/mysql/msg_conf.txt | 0 .tools/conf/mysql/ports.conf | 8 + .tools/conf/mysql/script.conf | 32 + .tools/conf/mysql/socket.conf | 32 + .tools/conf/mysql/sql_connection.conf | 52 + .tools/jobs/build.sh | 15 + .tools/jobs/cloneall.sh | 5 + .tools/jobs/clonedata.sh | 5 + .tools/jobs/initdb.sh | 23 + .tools/jobs/install.sh | 10 + .tools/jobs/newlines.sh | 10 + .tools/jobs/runserver.sh | 38 + .tools/jobs/runservervalgrind.sh | 37 + .tools/jobs/spaces.sh | 10 + .tools/npc/motd-debug-text.txt | 4 + .tools/scripts/init.sh | 217 + COPYING | 674 + Makefile | 37 + athena-start | 72 + changechase.diff | 36 + conf/atcommand.conf | 91 + conf/battlegrounds.conf | 124 + conf/channels.conf.base | 76 + conf/char/char-server.conf | 255 + conf/clans.conf | 48 + conf/common/inter-server.conf | 128 + conf/common/map-index.conf | 34 + conf/common/socket.conf | 106 + conf/global/console.conf | 67 + conf/grf-files.txt | 12 + conf/groups.conf | 489 + conf/import-tmpl/battle.conf | 32 + conf/import-tmpl/char-server.conf | 32 + conf/import-tmpl/inter-server.conf | 32 + conf/import-tmpl/login-server.conf | 32 + conf/import-tmpl/logs.conf | 32 + conf/import-tmpl/map-server.conf | 32 + conf/import-tmpl/msg_conf.txt | 0 conf/import-tmpl/script.conf | 32 + conf/import-tmpl/socket.conf | 32 + conf/login/login-server.conf | 205 + conf/map/battle.conf | 88 + conf/map/battle/battle.conf | 180 + conf/map/battle/battleground.conf | 40 + conf/map/battle/client.conf | 240 + conf/map/battle/drops.conf | 157 + conf/map/battle/exp.conf | 114 + conf/map/battle/feature.conf | 101 + conf/map/battle/gm.conf | 66 + conf/map/battle/guild.conf | 73 + conf/map/battle/homunc.conf | 71 + conf/map/battle/items.conf | 137 + conf/map/battle/limits.conf | 57 + conf/map/battle/misc.conf | 173 + conf/map/battle/monster.conf | 276 + conf/map/battle/party.conf | 109 + conf/map/battle/pet.conf | 107 + conf/map/battle/player.conf | 235 + conf/map/battle/skill.conf | 362 + conf/map/battle/status.conf | 47 + conf/map/charhelp.txt | 28 + conf/map/help.txt | 309 + conf/map/logs.conf | 184 + conf/map/map-server.conf | 114 + conf/map/maps.conf | 177 + conf/map/script.conf | 74 + conf/messages.conf | 1649 + conf/network.conf | 37 + conf/plugins.conf | 41 + conf/readme.txt | 22 + db/.editorconfig | 7 + db/GeoIP.dat | Bin 0 -> 668134 bytes db/abra_db.txt | 14 + db/achievement_rank_db.conf | 43 + db/attendance_db.conf | 119 + db/cashshop_db.conf | 26 + db/castle_db.conf | 53 + db/clans.conf | 137 + db/constants.conf | 5283 +++ db/craft_db.conf | 1848 + db/create_arrow_db.txt | 11 + db/elemental_db.txt | 24 + db/elemental_skill_db.txt | 91 + db/guild_skill_tree.txt | 28 + db/homun_skill_tree.txt | 15 + db/item_db2.conf | 3 + db/item_options.conf | 1116 + db/job_db2.txt | 54 + db/magicmushroom_db.txt | 27 + db/map_index.txt | 173 + db/mercenary_db.txt | 6 + db/mercenary_skill_db.txt | 5 + db/mob_chat_db.txt | 4 + db/mob_classchange.txt | 5 + db/mob_db2.conf | 101 + db/mob_item_ratio.txt | 30 + db/mob_pouch.txt | 5 + db/mob_skill_db2.conf | 59 + db/option_drop_groups.conf | 53 + db/pet_db2.conf | 73 + db/pre-re/achievement_db.conf | 134 + db/pre-re/attr_fix.txt | 56 + db/pre-re/exp_group_db.conf | 64 + db/pre-re/exp_guild.txt | 51 + db/pre-re/exp_homun.txt | 151 + db/pre-re/homunculus_db.txt | 21 + db/pre-re/item_chain.conf | 42 + db/pre-re/item_combo_db.conf | 43 + db/pre-re/item_db.conf | 7594 ++++ db/pre-re/item_group.conf | 90 + db/pre-re/item_lapineddukddak.conf | 44 + db/pre-re/item_packages.conf | 25 + db/pre-re/job_db.conf | 357 + db/pre-re/map_zone_db.conf | 357 + db/pre-re/mob_boss.txt | 5 + db/pre-re/mob_branch.txt | 5 + db/pre-re/mob_db.conf | 5429 +++ db/pre-re/mob_poring.txt | 5 + db/pre-re/mob_race2_db.txt | 5 + db/pre-re/mob_skill_db.conf | 841 + db/pre-re/pet_db.conf | 97 + db/pre-re/refine_db.conf | 330 + db/pre-re/size_fix.txt | 7 + db/pre-re/skill_db.conf | 38447 +++++++++++++++++++ db/pre-re/skill_tree.conf | 566 + db/pre-re/statpoint.txt | 255 + db/produce_db.txt | 9 + db/quest_db.conf | 284 + db/re/level_penalty.txt | 14 + db/roulette_db.conf | 16 + db/sc_config.conf | 3778 ++ db/skill_changematerial_db.txt | 11 + db/skill_improvise_db.txt | 12 + db/spellbook_db.txt | 7 + db/stylist_db.conf | 267 + db/translations.conf | 20 + debug-start | 72 + docs | 1 + galimatia.jpg | Bin 0 -> 41719 bytes gprof.sh | 3 + kylian.jpg | Bin 0 -> 56221 bytes langs/lang_de.old | 6192 +++ langs/lang_de.txt | 19126 +++++++++ langs/lang_en.old | 10674 +++++ langs/lang_en.txt | 19126 +++++++++ langs/lang_es.old | 6630 ++++ langs/lang_es.txt | 19126 +++++++++ langs/lang_fr.old | 6579 ++++ langs/lang_fr.txt | 19126 +++++++++ langs/langs.txt | 4 + log/.placeholder | 0 maps/pre-re/000-0-0.mcache | Bin 0 -> 58 bytes maps/pre-re/000-0-1.mcache | Bin 0 -> 58 bytes maps/pre-re/000-0.mcache | Bin 0 -> 58 bytes maps/pre-re/000-1.mcache | Bin 0 -> 1538 bytes maps/pre-re/000-2-0.mcache | Bin 0 -> 87 bytes maps/pre-re/000-2-1.mcache | Bin 0 -> 223 bytes maps/pre-re/000-2-2.mcache | Bin 0 -> 155 bytes maps/pre-re/000-2-3.mcache | Bin 0 -> 88 bytes maps/pre-re/000-2-4.mcache | Bin 0 -> 132 bytes maps/pre-re/001-1.mcache | Bin 0 -> 3203 bytes maps/pre-re/001-2-0.mcache | Bin 0 -> 118 bytes maps/pre-re/001-2-1.mcache | Bin 0 -> 134 bytes maps/pre-re/001-2-10.mcache | Bin 0 -> 155 bytes maps/pre-re/001-2-11.mcache | Bin 0 -> 136 bytes maps/pre-re/001-2-12.mcache | Bin 0 -> 109 bytes maps/pre-re/001-2-13.mcache | Bin 0 -> 97 bytes maps/pre-re/001-2-14.mcache | Bin 0 -> 97 bytes maps/pre-re/001-2-15.mcache | Bin 0 -> 119 bytes maps/pre-re/001-2-16.mcache | Bin 0 -> 96 bytes maps/pre-re/001-2-17.mcache | Bin 0 -> 87 bytes maps/pre-re/001-2-18.mcache | Bin 0 -> 160 bytes maps/pre-re/001-2-19.mcache | Bin 0 -> 170 bytes maps/pre-re/001-2-2.mcache | Bin 0 -> 106 bytes maps/pre-re/001-2-20.mcache | Bin 0 -> 102 bytes maps/pre-re/001-2-21.mcache | Bin 0 -> 87 bytes maps/pre-re/001-2-22.mcache | Bin 0 -> 227 bytes maps/pre-re/001-2-23.mcache | Bin 0 -> 155 bytes maps/pre-re/001-2-24.mcache | Bin 0 -> 89 bytes maps/pre-re/001-2-25.mcache | Bin 0 -> 95 bytes maps/pre-re/001-2-26.mcache | Bin 0 -> 88 bytes maps/pre-re/001-2-27.mcache | Bin 0 -> 115 bytes maps/pre-re/001-2-28.mcache | Bin 0 -> 161 bytes maps/pre-re/001-2-29.mcache | Bin 0 -> 128 bytes maps/pre-re/001-2-3.mcache | Bin 0 -> 96 bytes maps/pre-re/001-2-30.mcache | Bin 0 -> 141 bytes maps/pre-re/001-2-31.mcache | Bin 0 -> 89 bytes maps/pre-re/001-2-32.mcache | Bin 0 -> 74 bytes maps/pre-re/001-2-33.mcache | Bin 0 -> 150 bytes maps/pre-re/001-2-34.mcache | Bin 0 -> 76 bytes maps/pre-re/001-2-35.mcache | Bin 0 -> 114 bytes maps/pre-re/001-2-36.mcache | Bin 0 -> 125 bytes maps/pre-re/001-2-37.mcache | Bin 0 -> 135 bytes maps/pre-re/001-2-38.mcache | Bin 0 -> 140 bytes maps/pre-re/001-2-39.mcache | Bin 0 -> 128 bytes maps/pre-re/001-2-4.mcache | Bin 0 -> 165 bytes maps/pre-re/001-2-40.mcache | Bin 0 -> 223 bytes maps/pre-re/001-2-41.mcache | Bin 0 -> 108 bytes maps/pre-re/001-2-42.mcache | Bin 0 -> 146 bytes maps/pre-re/001-2-43.mcache | Bin 0 -> 122 bytes maps/pre-re/001-2-5.mcache | Bin 0 -> 90 bytes maps/pre-re/001-2-6.mcache | Bin 0 -> 182 bytes maps/pre-re/001-2-7.mcache | Bin 0 -> 130 bytes maps/pre-re/001-2-8.mcache | Bin 0 -> 115 bytes maps/pre-re/001-2-9.mcache | Bin 0 -> 120 bytes maps/pre-re/001-3-0.mcache | Bin 0 -> 1593 bytes maps/pre-re/001-3-1.mcache | Bin 0 -> 159 bytes maps/pre-re/001-3-2.mcache | Bin 0 -> 351 bytes maps/pre-re/008-1-1.mcache | Bin 0 -> 2022 bytes maps/pre-re/008-1.mcache | Bin 0 -> 6937 bytes maps/pre-re/008-2-0.mcache | Bin 0 -> 123 bytes maps/pre-re/008-2-1.mcache | Bin 0 -> 143 bytes maps/pre-re/008-2-10.mcache | Bin 0 -> 107 bytes maps/pre-re/008-2-11.mcache | Bin 0 -> 115 bytes maps/pre-re/008-2-12.mcache | Bin 0 -> 74 bytes maps/pre-re/008-2-13.mcache | Bin 0 -> 99 bytes maps/pre-re/008-2-14.mcache | Bin 0 -> 96 bytes maps/pre-re/008-2-15.mcache | Bin 0 -> 93 bytes maps/pre-re/008-2-16.mcache | Bin 0 -> 108 bytes maps/pre-re/008-2-17.mcache | Bin 0 -> 204 bytes maps/pre-re/008-2-18.mcache | Bin 0 -> 206 bytes maps/pre-re/008-2-19.mcache | Bin 0 -> 148 bytes maps/pre-re/008-2-2.mcache | Bin 0 -> 119 bytes maps/pre-re/008-2-20.mcache | Bin 0 -> 121 bytes maps/pre-re/008-2-21.mcache | Bin 0 -> 98 bytes maps/pre-re/008-2-22.mcache | Bin 0 -> 91 bytes maps/pre-re/008-2-23.mcache | Bin 0 -> 180 bytes maps/pre-re/008-2-24.mcache | Bin 0 -> 117 bytes maps/pre-re/008-2-25.mcache | Bin 0 -> 126 bytes maps/pre-re/008-2-26.mcache | Bin 0 -> 95 bytes maps/pre-re/008-2-27.mcache | Bin 0 -> 88 bytes maps/pre-re/008-2-28.mcache | Bin 0 -> 74 bytes maps/pre-re/008-2-29.mcache | Bin 0 -> 79 bytes maps/pre-re/008-2-3.mcache | Bin 0 -> 130 bytes maps/pre-re/008-2-30.mcache | Bin 0 -> 90 bytes maps/pre-re/008-2-31.mcache | Bin 0 -> 97 bytes maps/pre-re/008-2-32.mcache | Bin 0 -> 126 bytes maps/pre-re/008-2-4.mcache | Bin 0 -> 114 bytes maps/pre-re/008-2-5.mcache | Bin 0 -> 81 bytes maps/pre-re/008-2-6.mcache | Bin 0 -> 82 bytes maps/pre-re/008-2-7.mcache | Bin 0 -> 83 bytes maps/pre-re/008-2-8.mcache | Bin 0 -> 105 bytes maps/pre-re/008-2-9.mcache | Bin 0 -> 91 bytes maps/pre-re/008-3-0.mcache | Bin 0 -> 3386 bytes maps/pre-re/008-3-1.mcache | Bin 0 -> 216 bytes maps/pre-re/008-3-2.mcache | Bin 0 -> 1162 bytes maps/pre-re/008-3-3.mcache | Bin 0 -> 284 bytes maps/pre-re/008-3-4.mcache | Bin 0 -> 1163 bytes maps/pre-re/008-3-5.mcache | Bin 0 -> 927 bytes maps/pre-re/008-3-6.mcache | Bin 0 -> 611 bytes maps/pre-re/009-1.mcache | Bin 0 -> 5338 bytes maps/pre-re/009-2-0.mcache | Bin 0 -> 112 bytes maps/pre-re/009-2-1.mcache | Bin 0 -> 141 bytes maps/pre-re/009-2-10.mcache | Bin 0 -> 95 bytes maps/pre-re/009-2-11.mcache | Bin 0 -> 92 bytes maps/pre-re/009-2-12.mcache | Bin 0 -> 67 bytes maps/pre-re/009-2-13.mcache | Bin 0 -> 98 bytes maps/pre-re/009-2-14.mcache | Bin 0 -> 103 bytes maps/pre-re/009-2-15.mcache | Bin 0 -> 101 bytes maps/pre-re/009-2-16.mcache | Bin 0 -> 65 bytes maps/pre-re/009-2-17.mcache | Bin 0 -> 66 bytes maps/pre-re/009-2-18.mcache | Bin 0 -> 62 bytes maps/pre-re/009-2-2.mcache | Bin 0 -> 87 bytes maps/pre-re/009-2-3.mcache | Bin 0 -> 163 bytes maps/pre-re/009-2-4.mcache | Bin 0 -> 151 bytes maps/pre-re/009-2-5.mcache | Bin 0 -> 165 bytes maps/pre-re/009-2-6.mcache | Bin 0 -> 64 bytes maps/pre-re/009-2-7.mcache | Bin 0 -> 66 bytes maps/pre-re/009-2-8.mcache | Bin 0 -> 70 bytes maps/pre-re/009-2-9.mcache | Bin 0 -> 84 bytes maps/pre-re/012-1.mcache | Bin 0 -> 1425 bytes maps/pre-re/012-2-1.mcache | Bin 0 -> 121 bytes maps/pre-re/012-2-2.mcache | Bin 0 -> 99 bytes maps/pre-re/012-2-3.mcache | Bin 0 -> 120 bytes maps/pre-re/012-2-4.mcache | Bin 0 -> 143 bytes maps/pre-re/012-2-5.mcache | Bin 0 -> 121 bytes maps/pre-re/012-2-6.mcache | Bin 0 -> 111 bytes maps/pre-re/012-2-7.mcache | Bin 0 -> 91 bytes maps/pre-re/012-3-1.mcache | Bin 0 -> 230 bytes maps/pre-re/012-3-2.mcache | Bin 0 -> 205 bytes maps/pre-re/012-3-3.mcache | Bin 0 -> 503 bytes maps/pre-re/020-1.mcache | Bin 0 -> 4793 bytes maps/pre-re/020-2-0.mcache | Bin 0 -> 94 bytes maps/pre-re/020-2-1.mcache | Bin 0 -> 88 bytes maps/pre-re/020-2-10.mcache | Bin 0 -> 71 bytes maps/pre-re/020-2-11.mcache | Bin 0 -> 64 bytes maps/pre-re/020-2-12.mcache | Bin 0 -> 64 bytes maps/pre-re/020-2-13.mcache | Bin 0 -> 64 bytes maps/pre-re/020-2-14.mcache | Bin 0 -> 80 bytes maps/pre-re/020-2-15.mcache | Bin 0 -> 79 bytes maps/pre-re/020-2-16.mcache | Bin 0 -> 75 bytes maps/pre-re/020-2-17.mcache | Bin 0 -> 65 bytes maps/pre-re/020-2-18.mcache | Bin 0 -> 67 bytes maps/pre-re/020-2-19.mcache | Bin 0 -> 65 bytes maps/pre-re/020-2-2.mcache | Bin 0 -> 68 bytes maps/pre-re/020-2-20.mcache | Bin 0 -> 80 bytes maps/pre-re/020-2-21.mcache | Bin 0 -> 65 bytes maps/pre-re/020-2-22.mcache | Bin 0 -> 81 bytes maps/pre-re/020-2-23.mcache | Bin 0 -> 64 bytes maps/pre-re/020-2-24.mcache | Bin 0 -> 64 bytes maps/pre-re/020-2-25.mcache | Bin 0 -> 70 bytes maps/pre-re/020-2-26.mcache | Bin 0 -> 140 bytes maps/pre-re/020-2-27.mcache | Bin 0 -> 77 bytes maps/pre-re/020-2-28.mcache | Bin 0 -> 78 bytes maps/pre-re/020-2-29.mcache | Bin 0 -> 72 bytes maps/pre-re/020-2-3.mcache | Bin 0 -> 79 bytes maps/pre-re/020-2-30.mcache | Bin 0 -> 62 bytes maps/pre-re/020-2-31.mcache | Bin 0 -> 70 bytes maps/pre-re/020-2-32.mcache | Bin 0 -> 70 bytes maps/pre-re/020-2-33.mcache | Bin 0 -> 70 bytes maps/pre-re/020-2-34.mcache | Bin 0 -> 149 bytes maps/pre-re/020-2-4.mcache | Bin 0 -> 67 bytes maps/pre-re/020-2-5.mcache | Bin 0 -> 80 bytes maps/pre-re/020-2-6.mcache | Bin 0 -> 74 bytes maps/pre-re/020-2-7.mcache | Bin 0 -> 63 bytes maps/pre-re/020-2-8.mcache | Bin 0 -> 65 bytes maps/pre-re/020-2-9.mcache | Bin 0 -> 75 bytes maps/pre-re/botcheck.mcache | Bin 0 -> 63 bytes maps/pre-re/fermi.mcache | Bin 0 -> 63 bytes maps/pre-re/marine-2.mcache | Bin 0 -> 101 bytes maps/pre-re/marine.mcache | Bin 0 -> 94 bytes maps/pre-re/sec_pri.mcache | Bin 0 -> 133 bytes maps/pre-re/test.mcache | Bin 0 -> 176 bytes maps/pre-re/testbg.mcache | Bin 0 -> 63 bytes npc/000-0-0/_import.txt | 5 + npc/000-0-0/mapflags.txt | 1 + npc/000-0-0/q'onan.txt | 14 + npc/000-0-0/sailors.txt | 92 + npc/000-0-1/_import.txt | 4 + npc/000-0-1/mapflags.txt | 1 + npc/000-0-1/narrator.txt | 180 + npc/000-0/_import.txt | 4 + npc/000-0/mapflags.txt | 1 + npc/000-0/sailors.txt | 92 + npc/000-1/_import.txt | 24 + npc/000-1/_mobs.txt | 38 + npc/000-1/_warps.txt | 3 + npc/000-1/ale.txt | 109 + npc/000-1/astapolos.txt | 165 + npc/000-1/boss.txt | 43 + npc/000-1/chest.txt | 65 + npc/000-1/couwan.txt | 94 + npc/000-1/darlin.txt | 148 + npc/000-1/fexil.txt | 43 + npc/000-1/gugli.txt | 248 + npc/000-1/gulukan.txt | 169 + npc/000-1/jalad.txt | 130 + npc/000-1/lean.txt | 73 + npc/000-1/mapflags.txt | 1 + npc/000-1/maxe.txt | 111 + npc/000-1/muller.txt | 131 + npc/000-1/panels.txt | 54 + npc/000-1/sapartan.txt | 101 + npc/000-1/shop.txt | 32 + npc/000-1/silvio.txt | 185 + npc/000-1/tarlan.txt | 64 + npc/000-1/tibbo.txt | 122 + npc/000-2-0/_import.txt | 8 + npc/000-2-0/_warps.txt | 3 + npc/000-2-0/billybons.txt | 95 + npc/000-2-0/doors.txt | 85 + npc/000-2-0/julia.txt | 289 + npc/000-2-0/mapflags.txt | 1 + npc/000-2-0/note.txt | 27 + npc/000-2-1/_import.txt | 17 + npc/000-2-1/_mobs.txt | 3 + npc/000-2-1/_savepoints.txt | 54 + npc/000-2-1/_warps.txt | 3 + npc/000-2-1/alige.txt | 321 + npc/000-2-1/arpan.txt | 304 + npc/000-2-1/chefgado.txt | 226 + npc/000-2-1/chest.txt | 72 + npc/000-2-1/dan.txt | 93 + npc/000-2-1/devis.txt | 16 + npc/000-2-1/hammock.txt | 125 + npc/000-2-1/knife.txt | 47 + npc/000-2-1/mapflags.txt | 1 + npc/000-2-1/peter.txt | 302 + npc/000-2-1/q'onan.txt | 15 + npc/000-2-1/story_save.txt | 30 + npc/000-2-2/_import.txt | 5 + npc/000-2-2/doors.txt | 75 + npc/000-2-2/mapflags.txt | 1 + npc/000-2-2/ratto.txt | 98 + npc/000-2-3/_import.txt | 10 + npc/000-2-3/_warps.txt | 3 + npc/000-2-3/box.txt | 112 + npc/000-2-3/elmo.txt | 66 + npc/000-2-3/hammock.txt | 17 + npc/000-2-3/mapflags.txt | 1 + npc/000-2-3/nard.txt | 341 + npc/000-2-3/piourocket.txt | 29 + npc/000-2-3/sailors.txt | 47 + npc/000-2-4/_import.txt | 6 + npc/000-2-4/_mobs.txt | 3 + npc/000-2-4/_warps.txt | 3 + npc/000-2-4/alige.txt | 38 + npc/000-2-4/mapflags.txt | 1 + npc/001-1/_import.txt | 45 + npc/001-1/_mobs.txt | 32 + npc/001-1/_warps.txt | 445 + npc/001-1/artaxe.txt | 18 + npc/001-1/beuss.txt | 27 + npc/001-1/calypsan.txt | 104 + npc/001-1/carmie.txt | 68 + npc/001-1/chelios.txt | 135 + npc/001-1/cookiemaster.txt | 256 + npc/001-1/devis.txt | 99 + npc/001-1/doors.txt | 61 + npc/001-1/elmo.txt | 19 + npc/001-1/enora.txt | 461 + npc/001-1/eugene.txt | 82 + npc/001-1/fexil.txt | 143 + npc/001-1/flags.txt | 17 + npc/001-1/flyingpiou.txt | 160 + npc/001-1/harbours.txt | 84 + npc/001-1/juscare.txt | 92 + npc/001-1/katja.txt | 128 + npc/001-1/koga.txt | 45 + npc/001-1/lucas.txt | 18 + npc/001-1/manhole.txt | 88 + npc/001-1/mapflags.txt | 1 + npc/001-1/marine.txt | 17 + npc/001-1/merlin.txt | 24 + npc/001-1/mouboo.txt | 61 + npc/001-1/nalkri.txt | 59 + npc/001-1/panels.txt | 57 + npc/001-1/pious.txt | 15 + npc/001-1/qonan.txt | 113 + npc/001-1/qpid.txt | 169 + npc/001-1/rowboat.txt | 69 + npc/001-1/rowboathelper.txt | 141 + npc/001-1/rumly.txt | 225 + npc/001-1/salem.txt | 219 + npc/001-1/shop.txt | 298 + npc/001-1/sign.txt | 168 + npc/001-1/sophialla.txt | 88 + npc/001-1/taree.txt | 20 + npc/001-1/treeleaf.txt | 22 + npc/001-1/trees.txt | 220 + npc/001-1/wateranimation.txt | 23 + npc/001-1/xilaxa.txt | 50 + npc/001-2-0/_import.txt | 6 + npc/001-2-0/_warps.txt | 4 + npc/001-2-0/mapflags.txt | 1 + npc/001-2-0/resa.txt | 79 + npc/001-2-0/shop.txt | 34 + npc/001-2-1/_import.txt | 5 + npc/001-2-1/_savepoints.txt | 15 + npc/001-2-1/_warps.txt | 3 + npc/001-2-1/mapflags.txt | 1 + npc/001-2-10/_import.txt | 5 + npc/001-2-10/_savepoints.txt | 15 + npc/001-2-10/_warps.txt | 4 + npc/001-2-10/mapflags.txt | 1 + npc/001-2-11/_import.txt | 6 + npc/001-2-11/_savepoints.txt | 15 + npc/001-2-11/_warps.txt | 3 + npc/001-2-11/mapflags.txt | 1 + npc/001-2-11/mona.txt | 170 + npc/001-2-12/_import.txt | 5 + npc/001-2-12/_warps.txt | 5 + npc/001-2-12/mapflags.txt | 1 + npc/001-2-12/oscar.txt | 144 + npc/001-2-13/_import.txt | 5 + npc/001-2-13/_savepoints.txt | 15 + npc/001-2-13/_warps.txt | 3 + npc/001-2-13/mapflags.txt | 1 + npc/001-2-14/_import.txt | 4 + npc/001-2-14/_warps.txt | 3 + npc/001-2-14/mapflags.txt | 1 + npc/001-2-15/_import.txt | 5 + npc/001-2-15/_savepoints.txt | 15 + npc/001-2-15/_warps.txt | 3 + npc/001-2-15/mapflags.txt | 1 + npc/001-2-16/_import.txt | 4 + npc/001-2-16/_warps.txt | 4 + npc/001-2-16/mapflags.txt | 1 + npc/001-2-17/_import.txt | 4 + npc/001-2-17/_warps.txt | 3 + npc/001-2-17/mapflags.txt | 1 + npc/001-2-18/_import.txt | 4 + npc/001-2-18/_warps.txt | 4 + npc/001-2-18/mapflags.txt | 1 + npc/001-2-19/_import.txt | 5 + npc/001-2-19/_warps.txt | 51 + npc/001-2-19/lloyd.txt | 249 + npc/001-2-19/mapflags.txt | 1 + npc/001-2-2/_import.txt | 5 + npc/001-2-2/_warps.txt | 4 + npc/001-2-2/mapflags.txt | 1 + npc/001-2-2/moon.txt | 215 + npc/001-2-20/_import.txt | 4 + npc/001-2-20/_warps.txt | 26 + npc/001-2-20/mapflags.txt | 1 + npc/001-2-21/_import.txt | 6 + npc/001-2-21/_warps.txt | 5 + npc/001-2-21/julia.txt | 140 + npc/001-2-21/mapflags.txt | 1 + npc/001-2-21/note.txt | 27 + npc/001-2-22/_import.txt | 13 + npc/001-2-22/_mobs.txt | 3 + npc/001-2-22/_savepoints.txt | 67 + npc/001-2-22/_warps.txt | 3 + npc/001-2-22/alige.txt | 325 + npc/001-2-22/chefgado.txt | 112 + npc/001-2-22/chest.txt | 49 + npc/001-2-22/hammock.txt | 137 + npc/001-2-22/knife.txt | 47 + npc/001-2-22/mapflags.txt | 1 + npc/001-2-22/note.txt | 33 + npc/001-2-22/peter.txt | 302 + npc/001-2-23/_import.txt | 6 + npc/001-2-23/_warps.txt | 3 + npc/001-2-23/doors.txt | 75 + npc/001-2-23/mapflags.txt | 1 + npc/001-2-23/ratto.txt | 98 + npc/001-2-24/_import.txt | 7 + npc/001-2-24/_warps.txt | 3 + npc/001-2-24/hammock.txt | 17 + npc/001-2-24/mapflags.txt | 1 + npc/001-2-24/nard.txt | 93 + npc/001-2-24/piourocket.txt | 9 + npc/001-2-25/_import.txt | 5 + npc/001-2-25/_mobs.txt | 3 + npc/001-2-25/_warps.txt | 3 + npc/001-2-25/mapflags.txt | 1 + npc/001-2-26/_import.txt | 6 + npc/001-2-26/_warps.txt | 3 + npc/001-2-26/flask.txt | 21 + npc/001-2-26/ivan.txt | 85 + npc/001-2-26/mapflags.txt | 1 + npc/001-2-27/_import.txt | 8 + npc/001-2-27/_warps.txt | 3 + npc/001-2-27/don.txt | 112 + npc/001-2-27/kaylo.txt | 43 + npc/001-2-27/lydon.txt | 36 + npc/001-2-27/mapflags.txt | 1 + npc/001-2-27/shop.txt | 62 + npc/001-2-28/_import.txt | 8 + npc/001-2-28/_warps.txt | 5 + npc/001-2-28/jenna.txt | 78 + npc/001-2-28/mapflags.txt | 1 + npc/001-2-28/note.txt | 43 + npc/001-2-28/plush.txt | 127 + npc/001-2-28/shop.txt | 24 + npc/001-2-29/_import.txt | 5 + npc/001-2-29/_savepoints.txt | 54 + npc/001-2-29/_warps.txt | 4 + npc/001-2-29/mapflags.txt | 1 + npc/001-2-3/_import.txt | 5 + npc/001-2-3/_savepoints.txt | 15 + npc/001-2-3/_warps.txt | 3 + npc/001-2-3/mapflags.txt | 1 + npc/001-2-30/_import.txt | 5 + npc/001-2-30/_mobs.txt | 3 + npc/001-2-30/_warps.txt | 3 + npc/001-2-30/mapflags.txt | 1 + npc/001-2-31/_import.txt | 4 + npc/001-2-31/_warps.txt | 4 + npc/001-2-31/mapflags.txt | 1 + npc/001-2-32/_import.txt | 6 + npc/001-2-32/_warps.txt | 3 + npc/001-2-32/doors.txt | 38 + npc/001-2-32/mapflags.txt | 1 + npc/001-2-32/serena.txt | 215 + npc/001-2-33/_import.txt | 6 + npc/001-2-33/_warps.txt | 53 + npc/001-2-33/lozerk.txt | 195 + npc/001-2-33/mapflags.txt | 3 + npc/001-2-33/triggers.txt | 102 + npc/001-2-34/_import.txt | 6 + npc/001-2-34/_warps.txt | 3 + npc/001-2-34/doors.txt | 29 + npc/001-2-34/mapflags.txt | 1 + npc/001-2-34/samantha.txt | 54 + npc/001-2-35/_import.txt | 4 + npc/001-2-35/doors.txt | 19 + npc/001-2-35/mapflags.txt | 2 + npc/001-2-36/_import.txt | 5 + npc/001-2-36/_warps.txt | 3 + npc/001-2-36/hector.txt | 460 + npc/001-2-36/mapflags.txt | 1 + npc/001-2-37/_import.txt | 6 + npc/001-2-37/_savepoints.txt | 54 + npc/001-2-37/_warps.txt | 4 + npc/001-2-37/hammock.txt | 106 + npc/001-2-37/mapflags.txt | 1 + npc/001-2-38/_import.txt | 6 + npc/001-2-38/_savepoints.txt | 54 + npc/001-2-38/_warps.txt | 4 + npc/001-2-38/hammock.txt | 106 + npc/001-2-38/mapflags.txt | 1 + npc/001-2-39/_import.txt | 5 + npc/001-2-39/_warps.txt | 4 + npc/001-2-39/mapflags.txt | 1 + npc/001-2-39/qanon.txt | 131 + npc/001-2-4/_import.txt | 7 + npc/001-2-4/_warps.txt | 27 + npc/001-2-4/books.txt | 102 + npc/001-2-4/mapflags.txt | 1 + npc/001-2-4/robin.txt | 64 + npc/001-2-4/terry.txt | 15 + npc/001-2-40/_import.txt | 5 + npc/001-2-40/_warps.txt | 5 + npc/001-2-40/mapflags.txt | 1 + npc/001-2-40/trozz.txt | 66 + npc/001-2-41/_import.txt | 5 + npc/001-2-41/_warps.txt | 3 + npc/001-2-41/edouard.txt | 175 + npc/001-2-41/mapflags.txt | 1 + npc/001-2-42/_import.txt | 3 + npc/001-2-42/_warps.txt | 3 + npc/001-2-43/_import.txt | 5 + npc/001-2-43/_warps.txt | 3 + npc/001-2-43/core.txt | 147 + npc/001-2-43/mapflags.txt | 1 + npc/001-2-5/_import.txt | 6 + npc/001-2-5/_warps.txt | 3 + npc/001-2-5/books.txt | 33 + npc/001-2-5/mapflags.txt | 1 + npc/001-2-5/tutorial.txt | 266 + npc/001-2-6/_import.txt | 8 + npc/001-2-6/_warps.txt | 3 + npc/001-2-6/books.txt | 345 + npc/001-2-6/christopher.txt | 68 + npc/001-2-6/dolfina.txt | 20 + npc/001-2-6/leonard.txt | 88 + npc/001-2-6/mapflags.txt | 1 + npc/001-2-7/_import.txt | 4 + npc/001-2-7/_warps.txt | 5 + npc/001-2-7/mapflags.txt | 1 + npc/001-2-8/_import.txt | 5 + npc/001-2-8/_warps.txt | 3 + npc/001-2-8/doors.txt | 59 + npc/001-2-8/mapflags.txt | 1 + npc/001-2-9/_import.txt | 5 + npc/001-2-9/_warps.txt | 3 + npc/001-2-9/janus.txt | 170 + npc/001-2-9/mapflags.txt | 1 + npc/001-3-0/_import.txt | 6 + npc/001-3-0/_mobs.txt | 39 + npc/001-3-0/_warps.txt | 8 + npc/001-3-0/gates.txt | 201 + npc/001-3-0/mundane.txt | 208 + npc/001-3-1/_import.txt | 5 + npc/001-3-1/_mobs.txt | 8 + npc/001-3-1/_warps.txt | 4 + npc/001-3-1/gates.txt | 66 + npc/001-3-2/_import.txt | 5 + npc/001-3-2/_warps.txt | 3 + npc/001-3-2/henry.txt | 374 + npc/001-3-2/smuggler.txt | 84 + npc/008-1-1/_import.txt | 11 + npc/008-1-1/_mobs.txt | 38 + npc/008-1-1/_warps.txt | 5 + npc/008-1-1/cutscene.txt | 180 + npc/008-1-1/galimatia.txt | 431 + npc/008-1-1/hal.txt | 131 + npc/008-1-1/koga.txt | 34 + npc/008-1-1/morcant.txt | 63 + npc/008-1-1/sign.txt | 22 + npc/008-1-1/soldiers.txt | 31 + npc/008-1-2/_import.txt | 4 + npc/008-1-2/_warps.txt | 4 + npc/008-1-2/sign.txt | 31 + npc/008-1/4144.txt | 90 + npc/008-1/_import.txt | 29 + npc/008-1/_mobs.txt | 124 + npc/008-1/_warps.txt | 33 + npc/008-1/auldsbel.txt | 53 + npc/008-1/banu.txt | 20 + npc/008-1/blossom.txt | 77 + npc/008-1/confused-tree.txt | 972 + npc/008-1/crane.txt | 92 + npc/008-1/doors.txt | 43 + npc/008-1/hinnak.txt | 354 + npc/008-1/jack.txt | 314 + npc/008-1/mapflags.txt | 1 + npc/008-1/marine.txt | 17 + npc/008-1/mikhail.txt | 123 + npc/008-1/milly.txt | 119 + npc/008-1/old-man.txt | 89 + npc/008-1/old-woman.txt | 136 + npc/008-1/oscar.txt | 19 + npc/008-1/rossy.txt | 391 + npc/008-1/sabine.txt | 63 + npc/008-1/sergeant-ryan.txt | 71 + npc/008-1/shop.txt | 50 + npc/008-1/sign.txt | 45 + npc/008-1/snarfles.txt | 97 + npc/008-1/soul-menhir.txt | 9 + npc/008-1/voltain.txt | 18 + npc/008-1/wateranimation.txt | 21 + npc/008-2-0/_import.txt | 6 + npc/008-2-0/_savepoints.txt | 15 + npc/008-2-0/_warps.txt | 4 + npc/008-2-0/celestia.txt | 19 + npc/008-2-0/mapflags.txt | 1 + npc/008-2-1/_import.txt | 9 + npc/008-2-1/_savepoints.txt | 15 + npc/008-2-1/_warps.txt | 4 + npc/008-2-1/generalstore.txt | 19 + npc/008-2-1/inspector.txt | 190 + npc/008-2-1/mapflags.txt | 1 + npc/008-2-1/richard.txt | 62 + npc/008-2-1/selim.txt | 22 + npc/008-2-10/_import.txt | 5 + npc/008-2-10/_warps.txt | 4 + npc/008-2-10/airlia.txt | 33 + npc/008-2-10/mapflags.txt | 1 + npc/008-2-11/_import.txt | 5 + npc/008-2-11/_savepoints.txt | 28 + npc/008-2-11/_warps.txt | 3 + npc/008-2-11/mapflags.txt | 1 + npc/008-2-12/_import.txt | 5 + npc/008-2-12/_warps.txt | 4 + npc/008-2-12/mapflags.txt | 1 + npc/008-2-12/nurse.txt | 175 + npc/008-2-13/_import.txt | 6 + npc/008-2-13/_savepoints.txt | 54 + npc/008-2-13/_warps.txt | 4 + npc/008-2-13/lena.txt | 270 + npc/008-2-13/mapflags.txt | 1 + npc/008-2-14/_import.txt | 6 + npc/008-2-14/_savepoints.txt | 15 + npc/008-2-14/_warps.txt | 3 + npc/008-2-14/doctor.txt | 114 + npc/008-2-14/mapflags.txt | 1 + npc/008-2-15/_import.txt | 3 + npc/008-2-15/_warps.txt | 3 + npc/008-2-16/_import.txt | 5 + npc/008-2-16/_warps.txt | 3 + npc/008-2-16/stove.txt | 87 + npc/008-2-16/yannika.txt | 469 + npc/008-2-17/_import.txt | 5 + npc/008-2-17/_warps.txt | 5 + npc/008-2-17/angus.txt | 19 + npc/008-2-17/caul.txt | 19 + npc/008-2-18/_import.txt | 4 + npc/008-2-18/_warps.txt | 3 + npc/008-2-18/malik.txt | 64 + npc/008-2-19/_import.txt | 4 + npc/008-2-19/_warps.txt | 3 + npc/008-2-19/books.txt | 60 + npc/008-2-2/_import.txt | 12 + npc/008-2-2/_warps.txt | 6 + npc/008-2-2/barron.txt | 32 + npc/008-2-2/jukebox.txt | 29 + npc/008-2-2/kfahr.txt | 785 + npc/008-2-2/ledmitz.txt | 36 + npc/008-2-2/mapflags.txt | 1 + npc/008-2-2/melania.txt | 107 + npc/008-2-2/melinda.txt | 181 + npc/008-2-2/note.txt | 35 + npc/008-2-2/shop.txt | 39 + npc/008-2-20/_import.txt | 4 + npc/008-2-20/_warps.txt | 4 + npc/008-2-20/valia.txt | 19 + npc/008-2-21/_import.txt | 4 + npc/008-2-21/_mobs.txt | 3 + npc/008-2-21/_warps.txt | 4 + npc/008-2-22/_import.txt | 4 + npc/008-2-22/_savepoints.txt | 15 + npc/008-2-22/_warps.txt | 3 + npc/008-2-23/_import.txt | 3 + npc/008-2-23/_warps.txt | 3 + npc/008-2-24/_import.txt | 5 + npc/008-2-24/_warps.txt | 5 + npc/008-2-24/chef.txt | 269 + npc/008-2-24/troupe-leader.txt | 119 + npc/008-2-25/_import.txt | 3 + npc/008-2-25/_warps.txt | 4 + npc/008-2-26/_import.txt | 3 + npc/008-2-26/_warps.txt | 3 + npc/008-2-27/_import.txt | 3 + npc/008-2-27/_warps.txt | 3 + npc/008-2-28/_import.txt | 3 + npc/008-2-28/_warps.txt | 3 + npc/008-2-29/_import.txt | 3 + npc/008-2-29/_warps.txt | 3 + npc/008-2-3/_import.txt | 5 + npc/008-2-3/_savepoints.txt | 106 + npc/008-2-3/_warps.txt | 3 + npc/008-2-3/mapflags.txt | 1 + npc/008-2-30/_import.txt | 3 + npc/008-2-30/_warps.txt | 3 + npc/008-2-31/_import.txt | 3 + npc/008-2-31/_warps.txt | 3 + npc/008-2-32/_import.txt | 4 + npc/008-2-32/_warps.txt | 3 + npc/008-2-32/thamas.txt | 83 + npc/008-2-4/_import.txt | 7 + npc/008-2-4/_savepoints.txt | 15 + npc/008-2-4/_warps.txt | 3 + npc/008-2-4/bernard.txt | 222 + npc/008-2-4/mapflags.txt | 1 + npc/008-2-4/olana.txt | 321 + npc/008-2-5/_import.txt | 4 + npc/008-2-5/_warps.txt | 3 + npc/008-2-5/mapflags.txt | 1 + npc/008-2-6/_import.txt | 6 + npc/008-2-6/_warps.txt | 3 + npc/008-2-6/alan.txt | 311 + npc/008-2-6/donald.txt | 39 + npc/008-2-6/mapflags.txt | 1 + npc/008-2-7/_import.txt | 8 + npc/008-2-7/_savepoints.txt | 15 + npc/008-2-7/_warps.txt | 3 + npc/008-2-7/mapflags.txt | 1 + npc/008-2-7/shop.txt | 35 + npc/008-2-7/simon.txt | 38 + npc/008-2-7/wyara.txt | 29 + npc/008-2-8/_import.txt | 6 + npc/008-2-8/_warps.txt | 4 + npc/008-2-8/macgowan.txt | 24 + npc/008-2-8/mapflags.txt | 1 + npc/008-2-8/nicholas.txt | 28 + npc/008-2-9/_import.txt | 5 + npc/008-2-9/_savepoints.txt | 15 + npc/008-2-9/_warps.txt | 3 + npc/008-2-9/mapflags.txt | 1 + npc/008-3-0/_import.txt | 6 + npc/008-3-0/_mobs.txt | 83 + npc/008-3-0/_warps.txt | 3 + npc/008-3-0/clauquer.txt | 138 + npc/008-3-0/juliet.txt | 656 + npc/008-3-1/_import.txt | 5 + npc/008-3-1/_mobs.txt | 8 + npc/008-3-1/_warps.txt | 3 + npc/008-3-1/arkim.txt | 56 + npc/008-3-2/_import.txt | 5 + npc/008-3-2/_mobs.txt | 7 + npc/008-3-2/_warps.txt | 3 + npc/008-3-2/boss.txt | 43 + npc/008-3-3/_import.txt | 4 + npc/008-3-3/_mobs.txt | 9 + npc/008-3-3/_warps.txt | 5 + npc/008-3-4/_import.txt | 4 + npc/008-3-4/_mobs.txt | 32 + npc/008-3-4/_warps.txt | 5 + npc/008-3-5/_import.txt | 7 + npc/008-3-5/_mobs.txt | 12 + npc/008-3-5/_warps.txt | 6 + npc/008-3-5/bryant.txt | 79 + npc/008-3-5/lordcave.txt | 101 + npc/008-3-5/nunia.txt | 81 + npc/008-3-6/_import.txt | 4 + npc/008-3-6/_mobs.txt | 11 + npc/008-3-6/_warps.txt | 3 + npc/009-1/_import.txt | 10 + npc/009-1/_mobs.txt | 33 + npc/009-1/_warps.txt | 15 + npc/009-1/blackwin.txt | 30 + npc/009-1/forwin.txt | 24 + npc/009-1/hamond.txt | 18 + npc/009-1/soul-menhir.txt | 7 + npc/009-1/thurstan.txt | 22 + npc/009-1/wateranimation.txt | 10 + npc/009-2-0/_import.txt | 3 + npc/009-2-0/_warps.txt | 3 + npc/009-2-1/_import.txt | 3 + npc/009-2-1/_warps.txt | 3 + npc/009-2-10/_import.txt | 3 + npc/009-2-10/_warps.txt | 4 + npc/009-2-11/_import.txt | 3 + npc/009-2-11/_warps.txt | 3 + npc/009-2-12/_import.txt | 3 + npc/009-2-12/_warps.txt | 4 + npc/009-2-13/_import.txt | 3 + npc/009-2-13/_warps.txt | 4 + npc/009-2-14/_import.txt | 3 + npc/009-2-14/_warps.txt | 3 + npc/009-2-15/_import.txt | 3 + npc/009-2-15/_warps.txt | 5 + npc/009-2-16/_import.txt | 3 + npc/009-2-16/_warps.txt | 4 + npc/009-2-17/_import.txt | 3 + npc/009-2-17/_warps.txt | 4 + npc/009-2-18/_import.txt | 3 + npc/009-2-18/_warps.txt | 3 + npc/009-2-2/_import.txt | 3 + npc/009-2-2/_warps.txt | 3 + npc/009-2-3/_import.txt | 6 + npc/009-2-3/_warps.txt | 5 + npc/009-2-3/barbara.txt | 17 + npc/009-2-3/chef.txt | 91 + npc/009-2-3/reid.txt | 22 + npc/009-2-4/_import.txt | 5 + npc/009-2-4/_warps.txt | 3 + npc/009-2-4/aldred.txt | 17 + npc/009-2-4/golbenez.txt | 51 + npc/009-2-5/_import.txt | 5 + npc/009-2-5/_warps.txt | 3 + npc/009-2-5/lovers.txt | 29 + npc/009-2-5/savaric.txt | 20 + npc/009-2-6/_import.txt | 5 + npc/009-2-6/_warps.txt | 3 + npc/009-2-6/eurni.txt | 22 + npc/009-2-6/jpmorbid.txt | 61 + npc/009-2-7/_import.txt | 5 + npc/009-2-7/_warps.txt | 3 + npc/009-2-7/leofwin.txt | 18 + npc/009-2-7/umfrey.txt | 25 + npc/009-2-8/_import.txt | 4 + npc/009-2-8/_warps.txt | 3 + npc/009-2-8/cerhan.txt | 19 + npc/009-2-9/_import.txt | 3 + npc/009-2-9/_warps.txt | 4 + npc/012-1/_import.txt | 18 + npc/012-1/_mobs.txt | 12 + npc/012-1/_warps.txt | 9 + npc/012-1/aahna.txt | 17 + npc/012-1/aidan.txt | 19 + npc/012-1/ayasha.txt | 17 + npc/012-1/crasmande.txt | 18 + npc/012-1/hasan.txt | 18 + npc/012-1/ishi.txt | 20 + npc/012-1/kaan.txt | 19 + npc/012-1/liana.txt | 25 + npc/012-1/marine.txt | 17 + npc/012-1/prawors.txt | 18 + npc/012-1/tiki.txt | 150 + npc/012-1/vincent.txt | 18 + npc/012-1/wateranimation.txt | 12 + npc/012-1/zegas.txt | 36 + npc/012-2-1/_import.txt | 5 + npc/012-2-1/_warps.txt | 4 + npc/012-2-1/jessie.txt | 30 + npc/012-2-1/tanisha.txt | 18 + npc/012-2-2/_import.txt | 5 + npc/012-2-2/_savepoints.txt | 28 + npc/012-2-2/_warps.txt | 3 + npc/012-2-2/sorfina.txt | 34 + npc/012-2-3/_import.txt | 5 + npc/012-2-3/_warps.txt | 3 + npc/012-2-3/cynric.txt | 54 + npc/012-2-3/nyle.txt | 67 + npc/012-2-4/_import.txt | 5 + npc/012-2-4/_warps.txt | 3 + npc/012-2-4/morgan.txt | 22 + npc/012-2-4/zitoni.txt | 76 + npc/012-2-5/_import.txt | 5 + npc/012-2-5/_warps.txt | 3 + npc/012-2-5/rosen.txt | 20 + npc/012-2-5/toichi.txt | 73 + npc/012-2-6/_import.txt | 3 + npc/012-2-6/_warps.txt | 3 + npc/012-2-7/_import.txt | 5 + npc/012-2-7/_savepoints.txt | 15 + npc/012-2-7/_warps.txt | 3 + npc/012-2-7/marazor.txt | 16 + npc/012-3-1/_import.txt | 4 + npc/012-3-1/_mobs.txt | 8 + npc/012-3-1/_warps.txt | 5 + npc/012-3-2/_import.txt | 4 + npc/012-3-2/_mobs.txt | 8 + npc/012-3-2/_warps.txt | 5 + npc/012-3-3/_import.txt | 5 + npc/012-3-3/_mobs.txt | 7 + npc/012-3-3/_warps.txt | 3 + npc/012-3-3/manatree.txt | 19 + npc/020-1/_import.txt | 39 + npc/020-1/_mobs.txt | 63 + npc/020-1/_warps.txt | 46 + npc/020-1/adrian.txt | 42 + npc/020-1/aisha.txt | 18 + npc/020-1/anwar.txt | 148 + npc/020-1/bodyguard.txt | 53 + npc/020-1/boss.txt | 43 + npc/020-1/budifis.txt | 20 + npc/020-1/cyndala.txt | 19 + npc/020-1/ekinu.txt | 18 + npc/020-1/eomie.txt | 192 + npc/020-1/froma.txt | 19 + npc/020-1/harper.txt | 18 + npc/020-1/hocus.txt | 166 + npc/020-1/inar.txt | 19 + npc/020-1/issay.txt | 15 + npc/020-1/itka.txt | 48 + npc/020-1/joaquim.txt | 201 + npc/020-1/joelin.txt | 18 + npc/020-1/jossy.txt | 19 + npc/020-1/mahoud.txt | 18 + npc/020-1/malivox.txt | 23 + npc/020-1/marikel.txt | 18 + npc/020-1/marine.txt | 17 + npc/020-1/martha.txt | 18 + npc/020-1/neko.txt | 19 + npc/020-1/nickos.txt | 18 + npc/020-1/noke.txt | 19 + npc/020-1/odonell.txt | 18 + npc/020-1/philip.txt | 18 + npc/020-1/popaul.txt | 19 + npc/020-1/pusco.txt | 20 + npc/020-1/ryan.txt | 18 + npc/020-1/sander.txt | 18 + npc/020-1/tindris.txt | 30 + npc/020-1/vaspina.txt | 20 + npc/020-1/wateranimation.txt | 20 + npc/020-2-0/_import.txt | 5 + npc/020-2-0/_mobs.txt | 5 + npc/020-2-0/_warps.txt | 3 + npc/020-2-0/kaizer.txt | 18 + npc/020-2-1/_import.txt | 3 + npc/020-2-1/_warps.txt | 5 + npc/020-2-10/_import.txt | 4 + npc/020-2-10/_warps.txt | 4 + npc/020-2-10/hetchel.txt | 33 + npc/020-2-11/_import.txt | 3 + npc/020-2-11/_warps.txt | 3 + npc/020-2-12/_import.txt | 3 + npc/020-2-12/_warps.txt | 3 + npc/020-2-13/_import.txt | 3 + npc/020-2-13/_warps.txt | 3 + npc/020-2-14/_import.txt | 3 + npc/020-2-14/_warps.txt | 3 + npc/020-2-15/_import.txt | 7 + npc/020-2-15/_warps.txt | 3 + npc/020-2-15/eleanore.txt | 16 + npc/020-2-15/kadiya.txt | 21 + npc/020-2-15/memoriam.txt | 19 + npc/020-2-15/yumi.txt | 54 + npc/020-2-16/_import.txt | 3 + npc/020-2-16/_warps.txt | 3 + npc/020-2-17/_import.txt | 3 + npc/020-2-17/_warps.txt | 3 + npc/020-2-18/_import.txt | 4 + npc/020-2-18/_warps.txt | 4 + npc/020-2-18/inya.txt | 19 + npc/020-2-19/_import.txt | 3 + npc/020-2-19/_warps.txt | 3 + npc/020-2-2/_import.txt | 3 + npc/020-2-2/_warps.txt | 4 + npc/020-2-20/_import.txt | 5 + npc/020-2-20/_warps.txt | 6 + npc/020-2-20/drabur.txt | 54 + npc/020-2-20/riskim.txt | 152 + npc/020-2-21/_import.txt | 3 + npc/020-2-21/_warps.txt | 3 + npc/020-2-22/_import.txt | 3 + npc/020-2-22/_warps.txt | 5 + npc/020-2-23/_import.txt | 3 + npc/020-2-23/_warps.txt | 4 + npc/020-2-24/_import.txt | 4 + npc/020-2-24/_warps.txt | 4 + npc/020-2-24/kylian.txt | 130 + npc/020-2-25/_import.txt | 3 + npc/020-2-25/_warps.txt | 6 + npc/020-2-26/_import.txt | 4 + npc/020-2-26/_warps.txt | 9 + npc/020-2-26/receptionist.txt | 21 + npc/020-2-27/_import.txt | 3 + npc/020-2-27/_warps.txt | 4 + npc/020-2-28/_import.txt | 4 + npc/020-2-28/_warps.txt | 5 + npc/020-2-28/pauline.txt | 39 + npc/020-2-29/_import.txt | 3 + npc/020-2-29/_warps.txt | 4 + npc/020-2-3/_import.txt | 4 + npc/020-2-3/_warps.txt | 4 + npc/020-2-3/inac.txt | 18 + npc/020-2-30/_import.txt | 4 + npc/020-2-30/_warps.txt | 3 + npc/020-2-30/david.txt | 42 + npc/020-2-31/_import.txt | 3 + npc/020-2-31/_warps.txt | 4 + npc/020-2-32/_import.txt | 3 + npc/020-2-32/_warps.txt | 4 + npc/020-2-33/_import.txt | 3 + npc/020-2-33/_warps.txt | 4 + npc/020-2-34/_import.txt | 5 + npc/020-2-34/_warps.txt | 3 + npc/020-2-34/casino.txt | 17 + npc/020-2-34/donutello.txt | 166 + npc/020-2-4/_import.txt | 3 + npc/020-2-4/_warps.txt | 3 + npc/020-2-5/_import.txt | 5 + npc/020-2-5/_warps.txt | 5 + npc/020-2-5/dausen.txt | 19 + npc/020-2-5/filipa.txt | 19 + npc/020-2-6/_import.txt | 3 + npc/020-2-6/_warps.txt | 5 + npc/020-2-7/_import.txt | 4 + npc/020-2-7/_warps.txt | 3 + npc/020-2-7/manoli.txt | 19 + npc/020-2-8/_import.txt | 5 + npc/020-2-8/_warps.txt | 3 + npc/020-2-8/heathin.txt | 19 + npc/020-2-8/jhedia.txt | 19 + npc/020-2-9/_import.txt | 5 + npc/020-2-9/_warps.txt | 3 + npc/020-2-9/hydusun.txt | 62 + npc/020-2-9/yanis.txt | 18 + npc/_anchors.txt | 53 + npc/_import.txt | 176 + npc/botcheck/_import.txt | 2 + npc/commands/bodytype.txt | 53 + npc/commands/debug-look.txt | 83 + npc/commands/debug-preset.txt | 253 + npc/commands/debug-quest.txt | 217 + npc/commands/debug-skill.txt | 94 + npc/commands/debug.txt | 145 + npc/commands/event.txt | 57 + npc/commands/gm.txt | 41 + npc/commands/mobinfo.txt | 29 + npc/commands/motd.txt | 194 + npc/commands/music.txt | 75 + npc/commands/python.txt | 24 + npc/commands/rate-management.txt | 107 + npc/commands/resync.txt | 40 + npc/commands/scheduled-broadcasts.txt | 227 + npc/commands/super-menu.txt | 68 + npc/commands/warp.txt | 91 + npc/commands/zeny.txt | 98 + npc/config/hairstyle_config.txt | 26 + npc/config/location.txt | 83 + npc/config/magic.txt | 451 + npc/dev/ci_test.txt | 47 + npc/dev/test.txt | 814 + npc/fermi/_import.txt | 3 + npc/fermi/_warps.txt | 3 + npc/functions/RNGesus.txt | 87 + npc/functions/afk.txt | 69 + npc/functions/array.txt | 445 + npc/functions/asklanguage.txt | 56 + npc/functions/asleep.txt | 19 + npc/functions/bank.txt | 297 + npc/functions/barber.txt | 220 + npc/functions/beds.txt | 22 + npc/functions/bitwise.txt | 66 + npc/functions/bodytype.txt | 19 + npc/functions/casino.txt | 254 + npc/functions/clientversion.txt | 20 + npc/functions/confused-tree-dict.txt | 515 + npc/functions/crafting.txt | 119 + npc/functions/daily.txt | 154 + npc/functions/doors.txt | 65 + npc/functions/event-listeners.txt | 169 + npc/functions/faction.txt | 104 + npc/functions/fishing.txt | 401 + npc/functions/game-rules.txt | 66 + npc/functions/generic-text.txt | 120 + npc/functions/global_event_handler.txt | 73 + npc/functions/goodbye.txt | 28 + npc/functions/hammocks.txt | 50 + npc/functions/harbours.txt | 39 + npc/functions/hello.txt | 23 + npc/functions/input.txt | 66 + npc/functions/inventoryplace.txt | 37 + npc/functions/legacy.txt | 238 + npc/functions/legiontalk.txt | 66 + npc/functions/libquest.txt | 104 + npc/functions/lockpicks.txt | 193 + npc/functions/main.txt | 445 + npc/functions/manhole.txt | 73 + npc/functions/masks.txt | 43 + npc/functions/math.txt | 50 + npc/functions/mouboofunc.txt | 89 + npc/functions/music.txt | 87 + npc/functions/npcmove.txt | 142 + npc/functions/npcmovegraph.txt | 485 + npc/functions/openbook.txt | 34 + npc/functions/permissions.txt | 35 + npc/functions/player-cache.txt | 501 + npc/functions/quest-debug/000-ShipQuests_Julia.txt | 37 + npc/functions/quest-debug/001-ShipQuests_Arpan.txt | 27 + npc/functions/quest-debug/002-ShipQuests_Alige.txt | 27 + npc/functions/quest-debug/003-ShipQuests_Peter.txt | 36 + npc/functions/quest-debug/004-ShipQuests_Nard.txt | 38 + npc/functions/quest-debug/005-ShipQuests_Knife.txt | 25 + .../quest-debug/006-ShipQuests_ArpanMoney.txt | 27 + npc/functions/quest-debug/007-ShipQuests_Door.txt | 25 + .../quest-debug/008-ShipQuests_Couwan.txt | 26 + .../quest-debug/009-ShipQuests_TreasureChest.txt | 25 + npc/functions/quest-debug/010-ShipQuests_Ale.txt | 25 + .../quest-debug/011-ShipQuests_Astapolos.txt | 25 + .../quest-debug/012-ShipQuests_Gulukan.txt | 25 + npc/functions/quest-debug/013-ShipQuests_Jalad.txt | 25 + .../quest-debug/014-ShipQuests_QMuller.txt | 25 + npc/functions/quest-debug/015-ShipQuests_Tibbo.txt | 25 + npc/functions/quest-debug/016-ShipQuests_Gugli.txt | 48 + .../quest-debug/017-ShipQuests_ChefGado.txt | 30 + npc/functions/quest-debug/018-General_Cookies.txt | 25 + .../quest-debug/020-ArtisQuests_LazyBrother.txt | 28 + .../quest-debug/021-ArtisQuests_Urchin.txt | 26 + .../quest-debug/022-ArtisQuests_CatchPiou.txt | 26 + .../quest-debug/023-ArtisQuests_Fishman.txt | 26 + .../quest-debug/024-ArtisQuests_QOnan.txt | 27 + npc/functions/quest-debug/026-General_Rumly.txt | 27 + .../quest-debug/027-ArtisQuests_Enora.txt | 49 + .../quest-debug/029-ArtisQuests_Fexil.txt | 27 + .../quest-debug/030-ArtisQuests_Lloyd.txt | 25 + npc/functions/quest-debug/031-General_Janus.txt | 31 + .../quest-debug/032-ArtisQuests_MonaDad.txt | 26 + .../quest-debug/033-Artis_Legion_Progress.txt | 31 + .../quest-debug/034-ArtisQuests_TrainingLegion.txt | 28 + .../quest-debug/035-ThiefQuests_Artis.txt | 38 + .../quest-debug/050-HurnscaldQuests_Hinnak.txt | 32 + .../quest-debug/051-HurnscaldQuests_Soup.txt | 32 + .../quest-debug/052-HurnscaldQuests_Inspector.txt | 41 + .../quest-debug/053-HurnscaldQuests_ForestBow.txt | 42 + .../054-HurnscaldQuests_WoodenShield.txt | 37 + npc/functions/quest-debug/055-General_Cooking.txt | 92 + .../quest-debug/056-General_Brotherhood.txt | 27 + .../quest-debug/057-HurnscaldQuests_Kfahr.txt | 31 + .../quest-debug/058-ArgaesQuest_Galimatia.txt | 32 + .../quest-debug/059-HurnscaldQuests_Rossy.txt | 43 + npc/functions/quest-debug/061-General_Hal.txt | 30 + npc/functions/quest-debug/100-General_Narrator.txt | 27 + npc/functions/quest-debug/functions.txt | 109 + npc/functions/questgen.txt | 38 + npc/functions/referral.txt | 43 + npc/functions/refine.txt | 66 + npc/functions/resetstatus.txt | 117 + npc/functions/riddle.txt | 74 + npc/functions/sailordialogue.txt | 53 + npc/functions/sailortalk.txt | 37 + npc/functions/savepoint.txt | 57 + npc/functions/scoreboards.txt | 291 + npc/functions/shops.txt | 18 + npc/functions/skills.txt | 20 + npc/functions/soul-menhir.txt | 75 + npc/functions/spotlight.txt | 92 + npc/functions/string.txt | 196 + npc/functions/time.txt | 108 + npc/functions/timer.txt | 63 + npc/functions/treasure.txt | 134 + npc/functions/util.txt | 102 + npc/functions/vault.txt | 98 + npc/functions/villagertalk.txt | 53 + npc/functions/warp.txt | 58 + npc/items/cookie.txt | 22 + npc/items/croconut.txt | 72 + npc/items/gift.txt | 35 + npc/items/master_skillbook.txt | 164 + npc/items/music_toys.txt | 18 + npc/items/rand_sc_heal.txt | 85 + npc/items/recipes.txt | 352 + npc/items/shovel.txt | 361 + npc/marine-2/_import.txt | 4 + npc/marine-2/_mobs.txt | 4 + npc/marine-2/main.txt | 60 + npc/marine/_import.txt | 4 + npc/marine/_mobs.txt | 3 + npc/marine/saluc.txt | 137 + npc/pre-re/scripts_main.conf | 4 + npc/scripts.conf | 178 + npc/sec_pri/_import.txt | 3 + npc/sec_pri/redirect.txt | 12 + npc/test/_import.txt | 12 + npc/test/_mobs.txt | 15 + npc/test/mapflags.txt | 2 + npc/test/npc1.txt | 712 + npc/test/npc2.txt | 35 + npc/test/npc3.txt | 7 + npc/test/npc4.txt | 30 + npc/test/npc5.txt | 34 + npc/test/npc6.txt | 23 + npc/test/test1.txt | 165 + npc/test/test2.txt | 13 + npc/testbg/_import.txt | 3 + npc/testbg/mapflags.txt | 1 + old/char-server | Bin 0 -> 1895792 bytes old/login-server | Bin 0 -> 962976 bytes old/map-server | Bin 0 -> 11561848 bytes old/plugins/HPMHooking_char.so | Bin 0 -> 856096 bytes old/plugins/HPMHooking_login.so | Bin 0 -> 434248 bytes old/plugins/HPMHooking_map.so | Bin 0 -> 3560640 bytes old/plugins/db2sql.so | Bin 0 -> 311808 bytes old/plugins/libevol_char.so | Bin 0 -> 163800 bytes old/plugins/libevol_login.so | Bin 0 -> 217168 bytes old/plugins/libevol_map.so | Bin 0 -> 4915448 bytes old/plugins/sample.so | Bin 0 -> 274384 bytes oldplugins/HPMHooking_char.so | Bin 0 -> 849992 bytes oldplugins/HPMHooking_login.so | Bin 0 -> 436584 bytes oldplugins/HPMHooking_map.so | Bin 0 -> 3765480 bytes oldplugins/constdb2doc.so | Bin 0 -> 245128 bytes oldplugins/db2sql.so | Bin 0 -> 326128 bytes oldplugins/generate-translations.so | Bin 0 -> 249064 bytes oldplugins/libevol_char.so | Bin 0 -> 174584 bytes oldplugins/libevol_login.so | Bin 0 -> 231552 bytes oldplugins/libevol_map.so | Bin 0 -> 5123120 bytes oldplugins/mapcache.so | Bin 0 -> 78688 bytes oldplugins/sample.so | Bin 0 -> 302392 bytes oldplugins/script_mapquit.so | Bin 0 -> 73568 bytes script-checker | 42 + sql-files/init.sql | 4 + sql-files/initremote.sql | 4 + sql-files/logs.sql | 186 + sql-files/main.sql | 1093 + sql-files/tools/convert_engine_innodb.sql | 56 + sql-files/tools/convert_engine_myisam.sql | 56 + sql-files/tools/convert_passwords.sql | 3 + sql-files/upgrades/2013-02-14--16-15.sql | 7 + sql-files/upgrades/2013-02-15--18-06.sql | 3 + sql-files/upgrades/2013-03-05--01-05.sql | 3 + sql-files/upgrades/2013-03-06--00-00.sql | 9 + sql-files/upgrades/2013-03-09--01-56.sql | 4 + sql-files/upgrades/2013-03-27--18-35.sql | 3 + sql-files/upgrades/2013-04-16--01-24.sql | 3 + sql-files/upgrades/2013-04-16--02-15.sql | 4 + sql-files/upgrades/2013-10-09--21-38.sql | 3 + sql-files/upgrades/2013-10-10--16-36.sql | 7 + sql-files/upgrades/2013-10-27--16-47.sql | 6 + sql-files/upgrades/2013-10-30--19-53.sql | 5 + sql-files/upgrades/2013-10-30--21-12.sql | 3 + sql-files/upgrades/2013-10-31--07-49.sql | 6 + sql-files/upgrades/2013-11-09--00-03.sql | 5 + sql-files/upgrades/2013-11-15--00-06.sql | 105 + sql-files/upgrades/2013-11-15--19-57.sql | 5 + sql-files/upgrades/2013-11-16--07-49.sql | 3 + sql-files/upgrades/2013-11-18--08-23.sql | 65 + sql-files/upgrades/2013-12-24--00-15.sql | 8 + sql-files/upgrades/2014-01-04--16-47.sql | 61 + sql-files/upgrades/2014-01-06--17-22.sql | 16 + sql-files/upgrades/2014-02-19--17-57.sql | 4 + sql-files/upgrades/2014-03-25--23-57.sql | 3 + sql-files/upgrades/2014-04-07--22-04.sql | 3 + sql-files/upgrades/2014-04-26--10-00.sql | 3 + sql-files/upgrades/2014-05-17--00-06.sql | 3 + sql-files/upgrades/2014-09-01--16-53.sql | 5 + sql-files/upgrades/2014-11-03--00-45.sql | 3 + sql-files/upgrades/2015-07-02--18-14.sql | 74 + sql-files/upgrades/2015-07-08--13-08.sql | 6 + sql-files/upgrades/2015-08-27--20-42.sql | 3 + sql-files/upgrades/2015-12-16--12-57.sql | 26 + sql-files/upgrades/2015-12-17--15-58.sql | 22 + sql-files/upgrades/2016-03-10--22-18.sql | 22 + sql-files/upgrades/2016-07-08--02-42.sql | 35 + sql-files/upgrades/2016-07-08--02-51.sql | 30 + sql-files/upgrades/2016-10-03--20-27.sql | 23 + sql-files/upgrades/2016-10-26--10-29.sql | 23 + sql-files/upgrades/2017-03-02--11-40.sql | 93 + sql-files/upgrades/2017-03-05--08-09.sql | 15 + sql-files/upgrades/2017-03-15--14-29.sql | 74 + sql-files/upgrades/2017-06-04--15-04.sql | 24 + sql-files/upgrades/2017-06-04--15-05.sql | 23 + sql-files/upgrades/2017-11-04--10-39.sql | 6 + sql-files/upgrades/2018-02-26--15-57.sql | 6 + sql-files/upgrades/2018-03-10--04-06.sql | 24 + sql-files/upgrades/2018-06-03--00-10.sql | 40 + sql-files/upgrades/2018-06-03--17-16.sql | 24 + sql-files/upgrades/2018-06-05--12-02.sql | 24 + sql-files/upgrades/2018-07-24--03-23.sql | 22 + sql-files/upgrades/2018-09-01--05-22.sql | 63 + sql-files/upgrades/2018-12-14--01-02.sql | 24 + sql-files/upgrades/2018-12-29--07-51.sql | 29 + sql-files/upgrades/2019-04-08--21-52.sql | 29 + sql-files/upgrades/2019-04-25--02-12.sql | 24 + sql-files/upgrades/2019-05-09--18-07.sql | 22 + sql-files/upgrades/2019-08-08--19-43.sql | 95 + sql-files/upgrades/2019-10-05--19-01.sql | 28 + sql-files/upgrades/2019-10-12--14-21.sql | 23 + sql-files/upgrades/2019-11-22--23-58.sql | 23 + sql-files/upgrades/2020-01-24--01-09.sql | 63 + sql-files/upgrades/2020-03-22--01-56.sql | 23 + sql-files/upgrades/2020-03-22--03-09.sql | 24 + sql-files/upgrades/2020-05-01--04-44.sql | 25 + sql-files/upgrades/2020-05-10--23-11.sql | 43 + sql-files/upgrades/index.txt | 66 + sysinfogen.sh | 259 + test_char | 4 + test_login | 4 + test_map | 4 + tuco7n-Content III.jpg | Bin 0 -> 392781 bytes tuco7n-Content IV.jpg | Bin 0 -> 390418 bytes tuco7n-Master Flowerchart.jpg | Bin 0 -> 173737 bytes tuco7n.drawio | 1 + 1393 files changed, 237327 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .mailmap create mode 100644 .tools/conf/mariadb/battle.conf create mode 100644 .tools/conf/mariadb/char-server.conf create mode 100644 .tools/conf/mariadb/constants.conf create mode 100644 .tools/conf/mariadb/inter-server.conf create mode 100644 .tools/conf/mariadb/login-server.conf create mode 100644 .tools/conf/mariadb/logs.conf create mode 100644 .tools/conf/mariadb/map-server.conf create mode 100644 .tools/conf/mariadb/msg_conf.txt create mode 100644 .tools/conf/mariadb/ports.conf create mode 100644 .tools/conf/mariadb/script.conf create mode 100644 .tools/conf/mariadb/socket.conf create mode 100644 .tools/conf/mariadb/sql_connection.conf create mode 100644 .tools/conf/mysql/battle.conf create mode 100644 .tools/conf/mysql/char-server.conf create mode 100644 .tools/conf/mysql/constants.conf create mode 100644 .tools/conf/mysql/inter-server.conf create mode 100644 .tools/conf/mysql/login-server.conf create mode 100644 .tools/conf/mysql/logs.conf create mode 100644 .tools/conf/mysql/map-server.conf create mode 100644 .tools/conf/mysql/msg_conf.txt create mode 100644 .tools/conf/mysql/ports.conf create mode 100644 .tools/conf/mysql/script.conf create mode 100644 .tools/conf/mysql/socket.conf create mode 100644 .tools/conf/mysql/sql_connection.conf create mode 100755 .tools/jobs/build.sh create mode 100755 .tools/jobs/cloneall.sh create mode 100755 .tools/jobs/clonedata.sh create mode 100755 .tools/jobs/initdb.sh create mode 100755 .tools/jobs/install.sh create mode 100755 .tools/jobs/newlines.sh create mode 100755 .tools/jobs/runserver.sh create mode 100755 .tools/jobs/runservervalgrind.sh create mode 100755 .tools/jobs/spaces.sh create mode 100644 .tools/npc/motd-debug-text.txt create mode 100755 .tools/scripts/init.sh create mode 100644 COPYING create mode 100644 Makefile create mode 100755 athena-start create mode 100644 changechase.diff create mode 100644 conf/atcommand.conf create mode 100644 conf/battlegrounds.conf create mode 100644 conf/channels.conf.base create mode 100644 conf/char/char-server.conf create mode 100644 conf/clans.conf create mode 100644 conf/common/inter-server.conf create mode 100644 conf/common/map-index.conf create mode 100644 conf/common/socket.conf create mode 100644 conf/global/console.conf create mode 100644 conf/grf-files.txt create mode 100644 conf/groups.conf create mode 100644 conf/import-tmpl/battle.conf create mode 100644 conf/import-tmpl/char-server.conf create mode 100644 conf/import-tmpl/inter-server.conf create mode 100644 conf/import-tmpl/login-server.conf create mode 100644 conf/import-tmpl/logs.conf create mode 100644 conf/import-tmpl/map-server.conf create mode 100644 conf/import-tmpl/msg_conf.txt create mode 100644 conf/import-tmpl/script.conf create mode 100644 conf/import-tmpl/socket.conf create mode 100644 conf/login/login-server.conf create mode 100644 conf/map/battle.conf create mode 100644 conf/map/battle/battle.conf create mode 100644 conf/map/battle/battleground.conf create mode 100644 conf/map/battle/client.conf create mode 100644 conf/map/battle/drops.conf create mode 100644 conf/map/battle/exp.conf create mode 100644 conf/map/battle/feature.conf create mode 100644 conf/map/battle/gm.conf create mode 100644 conf/map/battle/guild.conf create mode 100644 conf/map/battle/homunc.conf create mode 100644 conf/map/battle/items.conf create mode 100644 conf/map/battle/limits.conf create mode 100644 conf/map/battle/misc.conf create mode 100644 conf/map/battle/monster.conf create mode 100644 conf/map/battle/party.conf create mode 100644 conf/map/battle/pet.conf create mode 100644 conf/map/battle/player.conf create mode 100644 conf/map/battle/skill.conf create mode 100644 conf/map/battle/status.conf create mode 100644 conf/map/charhelp.txt create mode 100644 conf/map/help.txt create mode 100644 conf/map/logs.conf create mode 100644 conf/map/map-server.conf create mode 100644 conf/map/maps.conf create mode 100644 conf/map/script.conf create mode 100644 conf/messages.conf create mode 100644 conf/network.conf create mode 100644 conf/plugins.conf create mode 100644 conf/readme.txt create mode 100644 db/.editorconfig create mode 100644 db/GeoIP.dat create mode 100644 db/abra_db.txt create mode 100644 db/achievement_rank_db.conf create mode 100644 db/attendance_db.conf create mode 100644 db/cashshop_db.conf create mode 100644 db/castle_db.conf create mode 100644 db/clans.conf create mode 100644 db/constants.conf create mode 100644 db/craft_db.conf create mode 100644 db/create_arrow_db.txt create mode 100644 db/elemental_db.txt create mode 100644 db/elemental_skill_db.txt create mode 100644 db/guild_skill_tree.txt create mode 100644 db/homun_skill_tree.txt create mode 100644 db/item_db2.conf create mode 100644 db/item_options.conf create mode 100644 db/job_db2.txt create mode 100644 db/magicmushroom_db.txt create mode 100644 db/map_index.txt create mode 100644 db/mercenary_db.txt create mode 100644 db/mercenary_skill_db.txt create mode 100644 db/mob_chat_db.txt create mode 100644 db/mob_classchange.txt create mode 100644 db/mob_db2.conf create mode 100644 db/mob_item_ratio.txt create mode 100644 db/mob_pouch.txt create mode 100644 db/mob_skill_db2.conf create mode 100644 db/option_drop_groups.conf create mode 100644 db/pet_db2.conf create mode 100644 db/pre-re/achievement_db.conf create mode 100644 db/pre-re/attr_fix.txt create mode 100644 db/pre-re/exp_group_db.conf create mode 100644 db/pre-re/exp_guild.txt create mode 100644 db/pre-re/exp_homun.txt create mode 100644 db/pre-re/homunculus_db.txt create mode 100644 db/pre-re/item_chain.conf create mode 100644 db/pre-re/item_combo_db.conf create mode 100644 db/pre-re/item_db.conf create mode 100644 db/pre-re/item_group.conf create mode 100644 db/pre-re/item_lapineddukddak.conf create mode 100644 db/pre-re/item_packages.conf create mode 100644 db/pre-re/job_db.conf create mode 100644 db/pre-re/map_zone_db.conf create mode 100644 db/pre-re/mob_boss.txt create mode 100644 db/pre-re/mob_branch.txt create mode 100644 db/pre-re/mob_db.conf create mode 100644 db/pre-re/mob_poring.txt create mode 100644 db/pre-re/mob_race2_db.txt create mode 100644 db/pre-re/mob_skill_db.conf create mode 100644 db/pre-re/pet_db.conf create mode 100644 db/pre-re/refine_db.conf create mode 100644 db/pre-re/size_fix.txt create mode 100644 db/pre-re/skill_db.conf create mode 100644 db/pre-re/skill_tree.conf create mode 100644 db/pre-re/statpoint.txt create mode 100644 db/produce_db.txt create mode 100644 db/quest_db.conf create mode 100644 db/re/level_penalty.txt create mode 100644 db/roulette_db.conf create mode 100644 db/sc_config.conf create mode 100644 db/skill_changematerial_db.txt create mode 100644 db/skill_improvise_db.txt create mode 100644 db/spellbook_db.txt create mode 100644 db/stylist_db.conf create mode 100644 db/translations.conf create mode 100755 debug-start create mode 120000 docs create mode 100644 galimatia.jpg create mode 100755 gprof.sh create mode 100644 kylian.jpg create mode 100644 langs/lang_de.old create mode 100644 langs/lang_de.txt create mode 100644 langs/lang_en.old create mode 100644 langs/lang_en.txt create mode 100644 langs/lang_es.old create mode 100644 langs/lang_es.txt create mode 100644 langs/lang_fr.old create mode 100644 langs/lang_fr.txt create mode 100644 langs/langs.txt create mode 100644 log/.placeholder create mode 100644 maps/pre-re/000-0-0.mcache create mode 100644 maps/pre-re/000-0-1.mcache create mode 100644 maps/pre-re/000-0.mcache create mode 100644 maps/pre-re/000-1.mcache create mode 100644 maps/pre-re/000-2-0.mcache create mode 100644 maps/pre-re/000-2-1.mcache create mode 100644 maps/pre-re/000-2-2.mcache create mode 100644 maps/pre-re/000-2-3.mcache create mode 100644 maps/pre-re/000-2-4.mcache create mode 100644 maps/pre-re/001-1.mcache create mode 100644 maps/pre-re/001-2-0.mcache create mode 100644 maps/pre-re/001-2-1.mcache create mode 100644 maps/pre-re/001-2-10.mcache create mode 100644 maps/pre-re/001-2-11.mcache create mode 100644 maps/pre-re/001-2-12.mcache create mode 100644 maps/pre-re/001-2-13.mcache create mode 100644 maps/pre-re/001-2-14.mcache create mode 100644 maps/pre-re/001-2-15.mcache create mode 100644 maps/pre-re/001-2-16.mcache create mode 100644 maps/pre-re/001-2-17.mcache create mode 100644 maps/pre-re/001-2-18.mcache create mode 100644 maps/pre-re/001-2-19.mcache create mode 100644 maps/pre-re/001-2-2.mcache create mode 100644 maps/pre-re/001-2-20.mcache create mode 100644 maps/pre-re/001-2-21.mcache create mode 100644 maps/pre-re/001-2-22.mcache create mode 100644 maps/pre-re/001-2-23.mcache create mode 100644 maps/pre-re/001-2-24.mcache create mode 100644 maps/pre-re/001-2-25.mcache create mode 100644 maps/pre-re/001-2-26.mcache create mode 100644 maps/pre-re/001-2-27.mcache create mode 100644 maps/pre-re/001-2-28.mcache create mode 100644 maps/pre-re/001-2-29.mcache create mode 100644 maps/pre-re/001-2-3.mcache create mode 100644 maps/pre-re/001-2-30.mcache create mode 100644 maps/pre-re/001-2-31.mcache create mode 100644 maps/pre-re/001-2-32.mcache create mode 100644 maps/pre-re/001-2-33.mcache create mode 100644 maps/pre-re/001-2-34.mcache create mode 100644 maps/pre-re/001-2-35.mcache create mode 100644 maps/pre-re/001-2-36.mcache create mode 100644 maps/pre-re/001-2-37.mcache create mode 100644 maps/pre-re/001-2-38.mcache create mode 100644 maps/pre-re/001-2-39.mcache create mode 100644 maps/pre-re/001-2-4.mcache create mode 100644 maps/pre-re/001-2-40.mcache create mode 100644 maps/pre-re/001-2-41.mcache create mode 100644 maps/pre-re/001-2-42.mcache create mode 100644 maps/pre-re/001-2-43.mcache create mode 100644 maps/pre-re/001-2-5.mcache create mode 100644 maps/pre-re/001-2-6.mcache create mode 100644 maps/pre-re/001-2-7.mcache create mode 100644 maps/pre-re/001-2-8.mcache create mode 100644 maps/pre-re/001-2-9.mcache create mode 100644 maps/pre-re/001-3-0.mcache create mode 100644 maps/pre-re/001-3-1.mcache create mode 100644 maps/pre-re/001-3-2.mcache create mode 100644 maps/pre-re/008-1-1.mcache create mode 100644 maps/pre-re/008-1.mcache create mode 100644 maps/pre-re/008-2-0.mcache create mode 100644 maps/pre-re/008-2-1.mcache create mode 100644 maps/pre-re/008-2-10.mcache create mode 100644 maps/pre-re/008-2-11.mcache create mode 100644 maps/pre-re/008-2-12.mcache create mode 100644 maps/pre-re/008-2-13.mcache create mode 100644 maps/pre-re/008-2-14.mcache create mode 100644 maps/pre-re/008-2-15.mcache create mode 100644 maps/pre-re/008-2-16.mcache create mode 100644 maps/pre-re/008-2-17.mcache create mode 100644 maps/pre-re/008-2-18.mcache create mode 100644 maps/pre-re/008-2-19.mcache create mode 100644 maps/pre-re/008-2-2.mcache create mode 100644 maps/pre-re/008-2-20.mcache create mode 100644 maps/pre-re/008-2-21.mcache create mode 100644 maps/pre-re/008-2-22.mcache create mode 100644 maps/pre-re/008-2-23.mcache create mode 100644 maps/pre-re/008-2-24.mcache create mode 100644 maps/pre-re/008-2-25.mcache create mode 100644 maps/pre-re/008-2-26.mcache create mode 100644 maps/pre-re/008-2-27.mcache create mode 100644 maps/pre-re/008-2-28.mcache create mode 100644 maps/pre-re/008-2-29.mcache create mode 100644 maps/pre-re/008-2-3.mcache create mode 100644 maps/pre-re/008-2-30.mcache create mode 100644 maps/pre-re/008-2-31.mcache create mode 100644 maps/pre-re/008-2-32.mcache create mode 100644 maps/pre-re/008-2-4.mcache create mode 100644 maps/pre-re/008-2-5.mcache create mode 100644 maps/pre-re/008-2-6.mcache create mode 100644 maps/pre-re/008-2-7.mcache create mode 100644 maps/pre-re/008-2-8.mcache create mode 100644 maps/pre-re/008-2-9.mcache create mode 100644 maps/pre-re/008-3-0.mcache create mode 100644 maps/pre-re/008-3-1.mcache create mode 100644 maps/pre-re/008-3-2.mcache create mode 100644 maps/pre-re/008-3-3.mcache create mode 100644 maps/pre-re/008-3-4.mcache create mode 100644 maps/pre-re/008-3-5.mcache create mode 100644 maps/pre-re/008-3-6.mcache create mode 100644 maps/pre-re/009-1.mcache create mode 100644 maps/pre-re/009-2-0.mcache create mode 100644 maps/pre-re/009-2-1.mcache create mode 100644 maps/pre-re/009-2-10.mcache create mode 100644 maps/pre-re/009-2-11.mcache create mode 100644 maps/pre-re/009-2-12.mcache create mode 100644 maps/pre-re/009-2-13.mcache create mode 100644 maps/pre-re/009-2-14.mcache create mode 100644 maps/pre-re/009-2-15.mcache create mode 100644 maps/pre-re/009-2-16.mcache create mode 100644 maps/pre-re/009-2-17.mcache create mode 100644 maps/pre-re/009-2-18.mcache create mode 100644 maps/pre-re/009-2-2.mcache create mode 100644 maps/pre-re/009-2-3.mcache create mode 100644 maps/pre-re/009-2-4.mcache create mode 100644 maps/pre-re/009-2-5.mcache create mode 100644 maps/pre-re/009-2-6.mcache create mode 100644 maps/pre-re/009-2-7.mcache create mode 100644 maps/pre-re/009-2-8.mcache create mode 100644 maps/pre-re/009-2-9.mcache create mode 100644 maps/pre-re/012-1.mcache create mode 100644 maps/pre-re/012-2-1.mcache create mode 100644 maps/pre-re/012-2-2.mcache create mode 100644 maps/pre-re/012-2-3.mcache create mode 100644 maps/pre-re/012-2-4.mcache create mode 100644 maps/pre-re/012-2-5.mcache create mode 100644 maps/pre-re/012-2-6.mcache create mode 100644 maps/pre-re/012-2-7.mcache create mode 100644 maps/pre-re/012-3-1.mcache create mode 100644 maps/pre-re/012-3-2.mcache create mode 100644 maps/pre-re/012-3-3.mcache create mode 100644 maps/pre-re/020-1.mcache create mode 100644 maps/pre-re/020-2-0.mcache create mode 100644 maps/pre-re/020-2-1.mcache create mode 100644 maps/pre-re/020-2-10.mcache create mode 100644 maps/pre-re/020-2-11.mcache create mode 100644 maps/pre-re/020-2-12.mcache create mode 100644 maps/pre-re/020-2-13.mcache create mode 100644 maps/pre-re/020-2-14.mcache create mode 100644 maps/pre-re/020-2-15.mcache create mode 100644 maps/pre-re/020-2-16.mcache create mode 100644 maps/pre-re/020-2-17.mcache create mode 100644 maps/pre-re/020-2-18.mcache create mode 100644 maps/pre-re/020-2-19.mcache create mode 100644 maps/pre-re/020-2-2.mcache create mode 100644 maps/pre-re/020-2-20.mcache create mode 100644 maps/pre-re/020-2-21.mcache create mode 100644 maps/pre-re/020-2-22.mcache create mode 100644 maps/pre-re/020-2-23.mcache create mode 100644 maps/pre-re/020-2-24.mcache create mode 100644 maps/pre-re/020-2-25.mcache create mode 100644 maps/pre-re/020-2-26.mcache create mode 100644 maps/pre-re/020-2-27.mcache create mode 100644 maps/pre-re/020-2-28.mcache create mode 100644 maps/pre-re/020-2-29.mcache create mode 100644 maps/pre-re/020-2-3.mcache create mode 100644 maps/pre-re/020-2-30.mcache create mode 100644 maps/pre-re/020-2-31.mcache create mode 100644 maps/pre-re/020-2-32.mcache create mode 100644 maps/pre-re/020-2-33.mcache create mode 100644 maps/pre-re/020-2-34.mcache create mode 100644 maps/pre-re/020-2-4.mcache create mode 100644 maps/pre-re/020-2-5.mcache create mode 100644 maps/pre-re/020-2-6.mcache create mode 100644 maps/pre-re/020-2-7.mcache create mode 100644 maps/pre-re/020-2-8.mcache create mode 100644 maps/pre-re/020-2-9.mcache create mode 100644 maps/pre-re/botcheck.mcache create mode 100644 maps/pre-re/fermi.mcache create mode 100644 maps/pre-re/marine-2.mcache create mode 100644 maps/pre-re/marine.mcache create mode 100644 maps/pre-re/sec_pri.mcache create mode 100644 maps/pre-re/test.mcache create mode 100644 maps/pre-re/testbg.mcache create mode 100644 npc/000-0-0/_import.txt create mode 100644 npc/000-0-0/mapflags.txt create mode 100644 npc/000-0-0/q'onan.txt create mode 100644 npc/000-0-0/sailors.txt create mode 100644 npc/000-0-1/_import.txt create mode 100644 npc/000-0-1/mapflags.txt create mode 100644 npc/000-0-1/narrator.txt create mode 100644 npc/000-0/_import.txt create mode 100644 npc/000-0/mapflags.txt create mode 100644 npc/000-0/sailors.txt create mode 100644 npc/000-1/_import.txt create mode 100644 npc/000-1/_mobs.txt create mode 100644 npc/000-1/_warps.txt create mode 100644 npc/000-1/ale.txt create mode 100644 npc/000-1/astapolos.txt create mode 100644 npc/000-1/boss.txt create mode 100644 npc/000-1/chest.txt create mode 100644 npc/000-1/couwan.txt create mode 100644 npc/000-1/darlin.txt create mode 100644 npc/000-1/fexil.txt create mode 100644 npc/000-1/gugli.txt create mode 100644 npc/000-1/gulukan.txt create mode 100644 npc/000-1/jalad.txt create mode 100644 npc/000-1/lean.txt create mode 100644 npc/000-1/mapflags.txt create mode 100644 npc/000-1/maxe.txt create mode 100644 npc/000-1/muller.txt create mode 100644 npc/000-1/panels.txt create mode 100644 npc/000-1/sapartan.txt create mode 100644 npc/000-1/shop.txt create mode 100644 npc/000-1/silvio.txt create mode 100644 npc/000-1/tarlan.txt create mode 100644 npc/000-1/tibbo.txt create mode 100644 npc/000-2-0/_import.txt create mode 100644 npc/000-2-0/_warps.txt create mode 100644 npc/000-2-0/billybons.txt create mode 100644 npc/000-2-0/doors.txt create mode 100644 npc/000-2-0/julia.txt create mode 100644 npc/000-2-0/mapflags.txt create mode 100644 npc/000-2-0/note.txt create mode 100644 npc/000-2-1/_import.txt create mode 100644 npc/000-2-1/_mobs.txt create mode 100644 npc/000-2-1/_savepoints.txt create mode 100644 npc/000-2-1/_warps.txt create mode 100644 npc/000-2-1/alige.txt create mode 100644 npc/000-2-1/arpan.txt create mode 100644 npc/000-2-1/chefgado.txt create mode 100644 npc/000-2-1/chest.txt create mode 100644 npc/000-2-1/dan.txt create mode 100644 npc/000-2-1/devis.txt create mode 100644 npc/000-2-1/hammock.txt create mode 100644 npc/000-2-1/knife.txt create mode 100644 npc/000-2-1/mapflags.txt create mode 100644 npc/000-2-1/peter.txt create mode 100644 npc/000-2-1/q'onan.txt create mode 100644 npc/000-2-1/story_save.txt create mode 100644 npc/000-2-2/_import.txt create mode 100644 npc/000-2-2/doors.txt create mode 100644 npc/000-2-2/mapflags.txt create mode 100644 npc/000-2-2/ratto.txt create mode 100644 npc/000-2-3/_import.txt create mode 100644 npc/000-2-3/_warps.txt create mode 100644 npc/000-2-3/box.txt create mode 100644 npc/000-2-3/elmo.txt create mode 100644 npc/000-2-3/hammock.txt create mode 100644 npc/000-2-3/mapflags.txt create mode 100644 npc/000-2-3/nard.txt create mode 100644 npc/000-2-3/piourocket.txt create mode 100644 npc/000-2-3/sailors.txt create mode 100644 npc/000-2-4/_import.txt create mode 100644 npc/000-2-4/_mobs.txt create mode 100644 npc/000-2-4/_warps.txt create mode 100644 npc/000-2-4/alige.txt create mode 100644 npc/000-2-4/mapflags.txt create mode 100644 npc/001-1/_import.txt create mode 100644 npc/001-1/_mobs.txt create mode 100644 npc/001-1/_warps.txt create mode 100644 npc/001-1/artaxe.txt create mode 100644 npc/001-1/beuss.txt create mode 100644 npc/001-1/calypsan.txt create mode 100644 npc/001-1/carmie.txt create mode 100644 npc/001-1/chelios.txt create mode 100644 npc/001-1/cookiemaster.txt create mode 100644 npc/001-1/devis.txt create mode 100644 npc/001-1/doors.txt create mode 100644 npc/001-1/elmo.txt create mode 100644 npc/001-1/enora.txt create mode 100644 npc/001-1/eugene.txt create mode 100644 npc/001-1/fexil.txt create mode 100644 npc/001-1/flags.txt create mode 100644 npc/001-1/flyingpiou.txt create mode 100644 npc/001-1/harbours.txt create mode 100644 npc/001-1/juscare.txt create mode 100644 npc/001-1/katja.txt create mode 100644 npc/001-1/koga.txt create mode 100644 npc/001-1/lucas.txt create mode 100644 npc/001-1/manhole.txt create mode 100644 npc/001-1/mapflags.txt create mode 100644 npc/001-1/marine.txt create mode 100644 npc/001-1/merlin.txt create mode 100644 npc/001-1/mouboo.txt create mode 100644 npc/001-1/nalkri.txt create mode 100644 npc/001-1/panels.txt create mode 100644 npc/001-1/pious.txt create mode 100644 npc/001-1/qonan.txt create mode 100644 npc/001-1/qpid.txt create mode 100644 npc/001-1/rowboat.txt create mode 100644 npc/001-1/rowboathelper.txt create mode 100644 npc/001-1/rumly.txt create mode 100644 npc/001-1/salem.txt create mode 100644 npc/001-1/shop.txt create mode 100644 npc/001-1/sign.txt create mode 100644 npc/001-1/sophialla.txt create mode 100644 npc/001-1/taree.txt create mode 100644 npc/001-1/treeleaf.txt create mode 100644 npc/001-1/trees.txt create mode 100644 npc/001-1/wateranimation.txt create mode 100644 npc/001-1/xilaxa.txt create mode 100644 npc/001-2-0/_import.txt create mode 100644 npc/001-2-0/_warps.txt create mode 100644 npc/001-2-0/mapflags.txt create mode 100644 npc/001-2-0/resa.txt create mode 100644 npc/001-2-0/shop.txt create mode 100644 npc/001-2-1/_import.txt create mode 100644 npc/001-2-1/_savepoints.txt create mode 100644 npc/001-2-1/_warps.txt create mode 100644 npc/001-2-1/mapflags.txt create mode 100644 npc/001-2-10/_import.txt create mode 100644 npc/001-2-10/_savepoints.txt create mode 100644 npc/001-2-10/_warps.txt create mode 100644 npc/001-2-10/mapflags.txt create mode 100644 npc/001-2-11/_import.txt create mode 100644 npc/001-2-11/_savepoints.txt create mode 100644 npc/001-2-11/_warps.txt create mode 100644 npc/001-2-11/mapflags.txt create mode 100644 npc/001-2-11/mona.txt create mode 100644 npc/001-2-12/_import.txt create mode 100644 npc/001-2-12/_warps.txt create mode 100644 npc/001-2-12/mapflags.txt create mode 100644 npc/001-2-12/oscar.txt create mode 100644 npc/001-2-13/_import.txt create mode 100644 npc/001-2-13/_savepoints.txt create mode 100644 npc/001-2-13/_warps.txt create mode 100644 npc/001-2-13/mapflags.txt create mode 100644 npc/001-2-14/_import.txt create mode 100644 npc/001-2-14/_warps.txt create mode 100644 npc/001-2-14/mapflags.txt create mode 100644 npc/001-2-15/_import.txt create mode 100644 npc/001-2-15/_savepoints.txt create mode 100644 npc/001-2-15/_warps.txt create mode 100644 npc/001-2-15/mapflags.txt create mode 100644 npc/001-2-16/_import.txt create mode 100644 npc/001-2-16/_warps.txt create mode 100644 npc/001-2-16/mapflags.txt create mode 100644 npc/001-2-17/_import.txt create mode 100644 npc/001-2-17/_warps.txt create mode 100644 npc/001-2-17/mapflags.txt create mode 100644 npc/001-2-18/_import.txt create mode 100644 npc/001-2-18/_warps.txt create mode 100644 npc/001-2-18/mapflags.txt create mode 100644 npc/001-2-19/_import.txt create mode 100644 npc/001-2-19/_warps.txt create mode 100644 npc/001-2-19/lloyd.txt create mode 100644 npc/001-2-19/mapflags.txt create mode 100644 npc/001-2-2/_import.txt create mode 100644 npc/001-2-2/_warps.txt create mode 100644 npc/001-2-2/mapflags.txt create mode 100644 npc/001-2-2/moon.txt create mode 100644 npc/001-2-20/_import.txt create mode 100644 npc/001-2-20/_warps.txt create mode 100644 npc/001-2-20/mapflags.txt create mode 100644 npc/001-2-21/_import.txt create mode 100644 npc/001-2-21/_warps.txt create mode 100644 npc/001-2-21/julia.txt create mode 100644 npc/001-2-21/mapflags.txt create mode 100644 npc/001-2-21/note.txt create mode 100644 npc/001-2-22/_import.txt create mode 100644 npc/001-2-22/_mobs.txt create mode 100644 npc/001-2-22/_savepoints.txt create mode 100644 npc/001-2-22/_warps.txt create mode 100644 npc/001-2-22/alige.txt create mode 100644 npc/001-2-22/chefgado.txt create mode 100644 npc/001-2-22/chest.txt create mode 100644 npc/001-2-22/hammock.txt create mode 100644 npc/001-2-22/knife.txt create mode 100644 npc/001-2-22/mapflags.txt create mode 100644 npc/001-2-22/note.txt create mode 100644 npc/001-2-22/peter.txt create mode 100644 npc/001-2-23/_import.txt create mode 100644 npc/001-2-23/_warps.txt create mode 100644 npc/001-2-23/doors.txt create mode 100644 npc/001-2-23/mapflags.txt create mode 100644 npc/001-2-23/ratto.txt create mode 100644 npc/001-2-24/_import.txt create mode 100644 npc/001-2-24/_warps.txt create mode 100644 npc/001-2-24/hammock.txt create mode 100644 npc/001-2-24/mapflags.txt create mode 100644 npc/001-2-24/nard.txt create mode 100644 npc/001-2-24/piourocket.txt create mode 100644 npc/001-2-25/_import.txt create mode 100644 npc/001-2-25/_mobs.txt create mode 100644 npc/001-2-25/_warps.txt create mode 100644 npc/001-2-25/mapflags.txt create mode 100644 npc/001-2-26/_import.txt create mode 100644 npc/001-2-26/_warps.txt create mode 100644 npc/001-2-26/flask.txt create mode 100644 npc/001-2-26/ivan.txt create mode 100644 npc/001-2-26/mapflags.txt create mode 100644 npc/001-2-27/_import.txt create mode 100644 npc/001-2-27/_warps.txt create mode 100644 npc/001-2-27/don.txt create mode 100644 npc/001-2-27/kaylo.txt create mode 100644 npc/001-2-27/lydon.txt create mode 100644 npc/001-2-27/mapflags.txt create mode 100644 npc/001-2-27/shop.txt create mode 100644 npc/001-2-28/_import.txt create mode 100644 npc/001-2-28/_warps.txt create mode 100644 npc/001-2-28/jenna.txt create mode 100644 npc/001-2-28/mapflags.txt create mode 100644 npc/001-2-28/note.txt create mode 100644 npc/001-2-28/plush.txt create mode 100644 npc/001-2-28/shop.txt create mode 100644 npc/001-2-29/_import.txt create mode 100644 npc/001-2-29/_savepoints.txt create mode 100644 npc/001-2-29/_warps.txt create mode 100644 npc/001-2-29/mapflags.txt create mode 100644 npc/001-2-3/_import.txt create mode 100644 npc/001-2-3/_savepoints.txt create mode 100644 npc/001-2-3/_warps.txt create mode 100644 npc/001-2-3/mapflags.txt create mode 100644 npc/001-2-30/_import.txt create mode 100644 npc/001-2-30/_mobs.txt create mode 100644 npc/001-2-30/_warps.txt create mode 100644 npc/001-2-30/mapflags.txt create mode 100644 npc/001-2-31/_import.txt create mode 100644 npc/001-2-31/_warps.txt create mode 100644 npc/001-2-31/mapflags.txt create mode 100644 npc/001-2-32/_import.txt create mode 100644 npc/001-2-32/_warps.txt create mode 100644 npc/001-2-32/doors.txt create mode 100644 npc/001-2-32/mapflags.txt create mode 100644 npc/001-2-32/serena.txt create mode 100644 npc/001-2-33/_import.txt create mode 100644 npc/001-2-33/_warps.txt create mode 100644 npc/001-2-33/lozerk.txt create mode 100644 npc/001-2-33/mapflags.txt create mode 100644 npc/001-2-33/triggers.txt create mode 100644 npc/001-2-34/_import.txt create mode 100644 npc/001-2-34/_warps.txt create mode 100644 npc/001-2-34/doors.txt create mode 100644 npc/001-2-34/mapflags.txt create mode 100644 npc/001-2-34/samantha.txt create mode 100644 npc/001-2-35/_import.txt create mode 100644 npc/001-2-35/doors.txt create mode 100644 npc/001-2-35/mapflags.txt create mode 100644 npc/001-2-36/_import.txt create mode 100644 npc/001-2-36/_warps.txt create mode 100644 npc/001-2-36/hector.txt create mode 100644 npc/001-2-36/mapflags.txt create mode 100644 npc/001-2-37/_import.txt create mode 100644 npc/001-2-37/_savepoints.txt create mode 100644 npc/001-2-37/_warps.txt create mode 100644 npc/001-2-37/hammock.txt create mode 100644 npc/001-2-37/mapflags.txt create mode 100644 npc/001-2-38/_import.txt create mode 100644 npc/001-2-38/_savepoints.txt create mode 100644 npc/001-2-38/_warps.txt create mode 100644 npc/001-2-38/hammock.txt create mode 100644 npc/001-2-38/mapflags.txt create mode 100644 npc/001-2-39/_import.txt create mode 100644 npc/001-2-39/_warps.txt create mode 100644 npc/001-2-39/mapflags.txt create mode 100644 npc/001-2-39/qanon.txt create mode 100644 npc/001-2-4/_import.txt create mode 100644 npc/001-2-4/_warps.txt create mode 100644 npc/001-2-4/books.txt create mode 100644 npc/001-2-4/mapflags.txt create mode 100644 npc/001-2-4/robin.txt create mode 100644 npc/001-2-4/terry.txt create mode 100644 npc/001-2-40/_import.txt create mode 100644 npc/001-2-40/_warps.txt create mode 100644 npc/001-2-40/mapflags.txt create mode 100644 npc/001-2-40/trozz.txt create mode 100644 npc/001-2-41/_import.txt create mode 100644 npc/001-2-41/_warps.txt create mode 100644 npc/001-2-41/edouard.txt create mode 100644 npc/001-2-41/mapflags.txt create mode 100644 npc/001-2-42/_import.txt create mode 100644 npc/001-2-42/_warps.txt create mode 100644 npc/001-2-43/_import.txt create mode 100644 npc/001-2-43/_warps.txt create mode 100644 npc/001-2-43/core.txt create mode 100644 npc/001-2-43/mapflags.txt create mode 100644 npc/001-2-5/_import.txt create mode 100644 npc/001-2-5/_warps.txt create mode 100644 npc/001-2-5/books.txt create mode 100644 npc/001-2-5/mapflags.txt create mode 100644 npc/001-2-5/tutorial.txt create mode 100644 npc/001-2-6/_import.txt create mode 100644 npc/001-2-6/_warps.txt create mode 100644 npc/001-2-6/books.txt create mode 100644 npc/001-2-6/christopher.txt create mode 100644 npc/001-2-6/dolfina.txt create mode 100644 npc/001-2-6/leonard.txt create mode 100644 npc/001-2-6/mapflags.txt create mode 100644 npc/001-2-7/_import.txt create mode 100644 npc/001-2-7/_warps.txt create mode 100644 npc/001-2-7/mapflags.txt create mode 100644 npc/001-2-8/_import.txt create mode 100644 npc/001-2-8/_warps.txt create mode 100644 npc/001-2-8/doors.txt create mode 100644 npc/001-2-8/mapflags.txt create mode 100644 npc/001-2-9/_import.txt create mode 100644 npc/001-2-9/_warps.txt create mode 100644 npc/001-2-9/janus.txt create mode 100644 npc/001-2-9/mapflags.txt create mode 100644 npc/001-3-0/_import.txt create mode 100644 npc/001-3-0/_mobs.txt create mode 100644 npc/001-3-0/_warps.txt create mode 100644 npc/001-3-0/gates.txt create mode 100644 npc/001-3-0/mundane.txt create mode 100644 npc/001-3-1/_import.txt create mode 100644 npc/001-3-1/_mobs.txt create mode 100644 npc/001-3-1/_warps.txt create mode 100644 npc/001-3-1/gates.txt create mode 100644 npc/001-3-2/_import.txt create mode 100644 npc/001-3-2/_warps.txt create mode 100644 npc/001-3-2/henry.txt create mode 100644 npc/001-3-2/smuggler.txt create mode 100644 npc/008-1-1/_import.txt create mode 100644 npc/008-1-1/_mobs.txt create mode 100644 npc/008-1-1/_warps.txt create mode 100644 npc/008-1-1/cutscene.txt create mode 100644 npc/008-1-1/galimatia.txt create mode 100644 npc/008-1-1/hal.txt create mode 100644 npc/008-1-1/koga.txt create mode 100644 npc/008-1-1/morcant.txt create mode 100644 npc/008-1-1/sign.txt create mode 100644 npc/008-1-1/soldiers.txt create mode 100644 npc/008-1-2/_import.txt create mode 100644 npc/008-1-2/_warps.txt create mode 100644 npc/008-1-2/sign.txt create mode 100644 npc/008-1/4144.txt create mode 100644 npc/008-1/_import.txt create mode 100644 npc/008-1/_mobs.txt create mode 100644 npc/008-1/_warps.txt create mode 100644 npc/008-1/auldsbel.txt create mode 100644 npc/008-1/banu.txt create mode 100644 npc/008-1/blossom.txt create mode 100644 npc/008-1/confused-tree.txt create mode 100644 npc/008-1/crane.txt create mode 100644 npc/008-1/doors.txt create mode 100644 npc/008-1/hinnak.txt create mode 100644 npc/008-1/jack.txt create mode 100644 npc/008-1/mapflags.txt create mode 100644 npc/008-1/marine.txt create mode 100644 npc/008-1/mikhail.txt create mode 100644 npc/008-1/milly.txt create mode 100644 npc/008-1/old-man.txt create mode 100644 npc/008-1/old-woman.txt create mode 100644 npc/008-1/oscar.txt create mode 100644 npc/008-1/rossy.txt create mode 100644 npc/008-1/sabine.txt create mode 100644 npc/008-1/sergeant-ryan.txt create mode 100644 npc/008-1/shop.txt create mode 100644 npc/008-1/sign.txt create mode 100644 npc/008-1/snarfles.txt create mode 100644 npc/008-1/soul-menhir.txt create mode 100644 npc/008-1/voltain.txt create mode 100644 npc/008-1/wateranimation.txt create mode 100644 npc/008-2-0/_import.txt create mode 100644 npc/008-2-0/_savepoints.txt create mode 100644 npc/008-2-0/_warps.txt create mode 100644 npc/008-2-0/celestia.txt create mode 100644 npc/008-2-0/mapflags.txt create mode 100644 npc/008-2-1/_import.txt create mode 100644 npc/008-2-1/_savepoints.txt create mode 100644 npc/008-2-1/_warps.txt create mode 100644 npc/008-2-1/generalstore.txt create mode 100644 npc/008-2-1/inspector.txt create mode 100644 npc/008-2-1/mapflags.txt create mode 100644 npc/008-2-1/richard.txt create mode 100644 npc/008-2-1/selim.txt create mode 100644 npc/008-2-10/_import.txt create mode 100644 npc/008-2-10/_warps.txt create mode 100644 npc/008-2-10/airlia.txt create mode 100644 npc/008-2-10/mapflags.txt create mode 100644 npc/008-2-11/_import.txt create mode 100644 npc/008-2-11/_savepoints.txt create mode 100644 npc/008-2-11/_warps.txt create mode 100644 npc/008-2-11/mapflags.txt create mode 100644 npc/008-2-12/_import.txt create mode 100644 npc/008-2-12/_warps.txt create mode 100644 npc/008-2-12/mapflags.txt create mode 100644 npc/008-2-12/nurse.txt create mode 100644 npc/008-2-13/_import.txt create mode 100644 npc/008-2-13/_savepoints.txt create mode 100644 npc/008-2-13/_warps.txt create mode 100644 npc/008-2-13/lena.txt create mode 100644 npc/008-2-13/mapflags.txt create mode 100644 npc/008-2-14/_import.txt create mode 100644 npc/008-2-14/_savepoints.txt create mode 100644 npc/008-2-14/_warps.txt create mode 100644 npc/008-2-14/doctor.txt create mode 100644 npc/008-2-14/mapflags.txt create mode 100644 npc/008-2-15/_import.txt create mode 100644 npc/008-2-15/_warps.txt create mode 100644 npc/008-2-16/_import.txt create mode 100644 npc/008-2-16/_warps.txt create mode 100644 npc/008-2-16/stove.txt create mode 100644 npc/008-2-16/yannika.txt create mode 100644 npc/008-2-17/_import.txt create mode 100644 npc/008-2-17/_warps.txt create mode 100644 npc/008-2-17/angus.txt create mode 100644 npc/008-2-17/caul.txt create mode 100644 npc/008-2-18/_import.txt create mode 100644 npc/008-2-18/_warps.txt create mode 100644 npc/008-2-18/malik.txt create mode 100644 npc/008-2-19/_import.txt create mode 100644 npc/008-2-19/_warps.txt create mode 100644 npc/008-2-19/books.txt create mode 100644 npc/008-2-2/_import.txt create mode 100644 npc/008-2-2/_warps.txt create mode 100644 npc/008-2-2/barron.txt create mode 100644 npc/008-2-2/jukebox.txt create mode 100644 npc/008-2-2/kfahr.txt create mode 100644 npc/008-2-2/ledmitz.txt create mode 100644 npc/008-2-2/mapflags.txt create mode 100644 npc/008-2-2/melania.txt create mode 100644 npc/008-2-2/melinda.txt create mode 100644 npc/008-2-2/note.txt create mode 100644 npc/008-2-2/shop.txt create mode 100644 npc/008-2-20/_import.txt create mode 100644 npc/008-2-20/_warps.txt create mode 100644 npc/008-2-20/valia.txt create mode 100644 npc/008-2-21/_import.txt create mode 100644 npc/008-2-21/_mobs.txt create mode 100644 npc/008-2-21/_warps.txt create mode 100644 npc/008-2-22/_import.txt create mode 100644 npc/008-2-22/_savepoints.txt create mode 100644 npc/008-2-22/_warps.txt create mode 100644 npc/008-2-23/_import.txt create mode 100644 npc/008-2-23/_warps.txt create mode 100644 npc/008-2-24/_import.txt create mode 100644 npc/008-2-24/_warps.txt create mode 100644 npc/008-2-24/chef.txt create mode 100644 npc/008-2-24/troupe-leader.txt create mode 100644 npc/008-2-25/_import.txt create mode 100644 npc/008-2-25/_warps.txt create mode 100644 npc/008-2-26/_import.txt create mode 100644 npc/008-2-26/_warps.txt create mode 100644 npc/008-2-27/_import.txt create mode 100644 npc/008-2-27/_warps.txt create mode 100644 npc/008-2-28/_import.txt create mode 100644 npc/008-2-28/_warps.txt create mode 100644 npc/008-2-29/_import.txt create mode 100644 npc/008-2-29/_warps.txt create mode 100644 npc/008-2-3/_import.txt create mode 100644 npc/008-2-3/_savepoints.txt create mode 100644 npc/008-2-3/_warps.txt create mode 100644 npc/008-2-3/mapflags.txt create mode 100644 npc/008-2-30/_import.txt create mode 100644 npc/008-2-30/_warps.txt create mode 100644 npc/008-2-31/_import.txt create mode 100644 npc/008-2-31/_warps.txt create mode 100644 npc/008-2-32/_import.txt create mode 100644 npc/008-2-32/_warps.txt create mode 100644 npc/008-2-32/thamas.txt create mode 100644 npc/008-2-4/_import.txt create mode 100644 npc/008-2-4/_savepoints.txt create mode 100644 npc/008-2-4/_warps.txt create mode 100644 npc/008-2-4/bernard.txt create mode 100644 npc/008-2-4/mapflags.txt create mode 100644 npc/008-2-4/olana.txt create mode 100644 npc/008-2-5/_import.txt create mode 100644 npc/008-2-5/_warps.txt create mode 100644 npc/008-2-5/mapflags.txt create mode 100644 npc/008-2-6/_import.txt create mode 100644 npc/008-2-6/_warps.txt create mode 100644 npc/008-2-6/alan.txt create mode 100644 npc/008-2-6/donald.txt create mode 100644 npc/008-2-6/mapflags.txt create mode 100644 npc/008-2-7/_import.txt create mode 100644 npc/008-2-7/_savepoints.txt create mode 100644 npc/008-2-7/_warps.txt create mode 100644 npc/008-2-7/mapflags.txt create mode 100644 npc/008-2-7/shop.txt create mode 100644 npc/008-2-7/simon.txt create mode 100644 npc/008-2-7/wyara.txt create mode 100644 npc/008-2-8/_import.txt create mode 100644 npc/008-2-8/_warps.txt create mode 100644 npc/008-2-8/macgowan.txt create mode 100644 npc/008-2-8/mapflags.txt create mode 100644 npc/008-2-8/nicholas.txt create mode 100644 npc/008-2-9/_import.txt create mode 100644 npc/008-2-9/_savepoints.txt create mode 100644 npc/008-2-9/_warps.txt create mode 100644 npc/008-2-9/mapflags.txt create mode 100644 npc/008-3-0/_import.txt create mode 100644 npc/008-3-0/_mobs.txt create mode 100644 npc/008-3-0/_warps.txt create mode 100644 npc/008-3-0/clauquer.txt create mode 100644 npc/008-3-0/juliet.txt create mode 100644 npc/008-3-1/_import.txt create mode 100644 npc/008-3-1/_mobs.txt create mode 100644 npc/008-3-1/_warps.txt create mode 100644 npc/008-3-1/arkim.txt create mode 100644 npc/008-3-2/_import.txt create mode 100644 npc/008-3-2/_mobs.txt create mode 100644 npc/008-3-2/_warps.txt create mode 100644 npc/008-3-2/boss.txt create mode 100644 npc/008-3-3/_import.txt create mode 100644 npc/008-3-3/_mobs.txt create mode 100644 npc/008-3-3/_warps.txt create mode 100644 npc/008-3-4/_import.txt create mode 100644 npc/008-3-4/_mobs.txt create mode 100644 npc/008-3-4/_warps.txt create mode 100644 npc/008-3-5/_import.txt create mode 100644 npc/008-3-5/_mobs.txt create mode 100644 npc/008-3-5/_warps.txt create mode 100644 npc/008-3-5/bryant.txt create mode 100644 npc/008-3-5/lordcave.txt create mode 100644 npc/008-3-5/nunia.txt create mode 100644 npc/008-3-6/_import.txt create mode 100644 npc/008-3-6/_mobs.txt create mode 100644 npc/008-3-6/_warps.txt create mode 100644 npc/009-1/_import.txt create mode 100644 npc/009-1/_mobs.txt create mode 100644 npc/009-1/_warps.txt create mode 100644 npc/009-1/blackwin.txt create mode 100644 npc/009-1/forwin.txt create mode 100644 npc/009-1/hamond.txt create mode 100644 npc/009-1/soul-menhir.txt create mode 100644 npc/009-1/thurstan.txt create mode 100644 npc/009-1/wateranimation.txt create mode 100644 npc/009-2-0/_import.txt create mode 100644 npc/009-2-0/_warps.txt create mode 100644 npc/009-2-1/_import.txt create mode 100644 npc/009-2-1/_warps.txt create mode 100644 npc/009-2-10/_import.txt create mode 100644 npc/009-2-10/_warps.txt create mode 100644 npc/009-2-11/_import.txt create mode 100644 npc/009-2-11/_warps.txt create mode 100644 npc/009-2-12/_import.txt create mode 100644 npc/009-2-12/_warps.txt create mode 100644 npc/009-2-13/_import.txt create mode 100644 npc/009-2-13/_warps.txt create mode 100644 npc/009-2-14/_import.txt create mode 100644 npc/009-2-14/_warps.txt create mode 100644 npc/009-2-15/_import.txt create mode 100644 npc/009-2-15/_warps.txt create mode 100644 npc/009-2-16/_import.txt create mode 100644 npc/009-2-16/_warps.txt create mode 100644 npc/009-2-17/_import.txt create mode 100644 npc/009-2-17/_warps.txt create mode 100644 npc/009-2-18/_import.txt create mode 100644 npc/009-2-18/_warps.txt create mode 100644 npc/009-2-2/_import.txt create mode 100644 npc/009-2-2/_warps.txt create mode 100644 npc/009-2-3/_import.txt create mode 100644 npc/009-2-3/_warps.txt create mode 100644 npc/009-2-3/barbara.txt create mode 100644 npc/009-2-3/chef.txt create mode 100644 npc/009-2-3/reid.txt create mode 100644 npc/009-2-4/_import.txt create mode 100644 npc/009-2-4/_warps.txt create mode 100644 npc/009-2-4/aldred.txt create mode 100644 npc/009-2-4/golbenez.txt create mode 100644 npc/009-2-5/_import.txt create mode 100644 npc/009-2-5/_warps.txt create mode 100644 npc/009-2-5/lovers.txt create mode 100644 npc/009-2-5/savaric.txt create mode 100644 npc/009-2-6/_import.txt create mode 100644 npc/009-2-6/_warps.txt create mode 100644 npc/009-2-6/eurni.txt create mode 100644 npc/009-2-6/jpmorbid.txt create mode 100644 npc/009-2-7/_import.txt create mode 100644 npc/009-2-7/_warps.txt create mode 100644 npc/009-2-7/leofwin.txt create mode 100644 npc/009-2-7/umfrey.txt create mode 100644 npc/009-2-8/_import.txt create mode 100644 npc/009-2-8/_warps.txt create mode 100644 npc/009-2-8/cerhan.txt create mode 100644 npc/009-2-9/_import.txt create mode 100644 npc/009-2-9/_warps.txt create mode 100644 npc/012-1/_import.txt create mode 100644 npc/012-1/_mobs.txt create mode 100644 npc/012-1/_warps.txt create mode 100644 npc/012-1/aahna.txt create mode 100644 npc/012-1/aidan.txt create mode 100644 npc/012-1/ayasha.txt create mode 100644 npc/012-1/crasmande.txt create mode 100644 npc/012-1/hasan.txt create mode 100644 npc/012-1/ishi.txt create mode 100644 npc/012-1/kaan.txt create mode 100644 npc/012-1/liana.txt create mode 100644 npc/012-1/marine.txt create mode 100644 npc/012-1/prawors.txt create mode 100644 npc/012-1/tiki.txt create mode 100644 npc/012-1/vincent.txt create mode 100644 npc/012-1/wateranimation.txt create mode 100644 npc/012-1/zegas.txt create mode 100644 npc/012-2-1/_import.txt create mode 100644 npc/012-2-1/_warps.txt create mode 100644 npc/012-2-1/jessie.txt create mode 100644 npc/012-2-1/tanisha.txt create mode 100644 npc/012-2-2/_import.txt create mode 100644 npc/012-2-2/_savepoints.txt create mode 100644 npc/012-2-2/_warps.txt create mode 100644 npc/012-2-2/sorfina.txt create mode 100644 npc/012-2-3/_import.txt create mode 100644 npc/012-2-3/_warps.txt create mode 100644 npc/012-2-3/cynric.txt create mode 100644 npc/012-2-3/nyle.txt create mode 100644 npc/012-2-4/_import.txt create mode 100644 npc/012-2-4/_warps.txt create mode 100644 npc/012-2-4/morgan.txt create mode 100644 npc/012-2-4/zitoni.txt create mode 100644 npc/012-2-5/_import.txt create mode 100644 npc/012-2-5/_warps.txt create mode 100644 npc/012-2-5/rosen.txt create mode 100644 npc/012-2-5/toichi.txt create mode 100644 npc/012-2-6/_import.txt create mode 100644 npc/012-2-6/_warps.txt create mode 100644 npc/012-2-7/_import.txt create mode 100644 npc/012-2-7/_savepoints.txt create mode 100644 npc/012-2-7/_warps.txt create mode 100644 npc/012-2-7/marazor.txt create mode 100644 npc/012-3-1/_import.txt create mode 100644 npc/012-3-1/_mobs.txt create mode 100644 npc/012-3-1/_warps.txt create mode 100644 npc/012-3-2/_import.txt create mode 100644 npc/012-3-2/_mobs.txt create mode 100644 npc/012-3-2/_warps.txt create mode 100644 npc/012-3-3/_import.txt create mode 100644 npc/012-3-3/_mobs.txt create mode 100644 npc/012-3-3/_warps.txt create mode 100644 npc/012-3-3/manatree.txt create mode 100644 npc/020-1/_import.txt create mode 100644 npc/020-1/_mobs.txt create mode 100644 npc/020-1/_warps.txt create mode 100644 npc/020-1/adrian.txt create mode 100644 npc/020-1/aisha.txt create mode 100644 npc/020-1/anwar.txt create mode 100644 npc/020-1/bodyguard.txt create mode 100644 npc/020-1/boss.txt create mode 100644 npc/020-1/budifis.txt create mode 100644 npc/020-1/cyndala.txt create mode 100644 npc/020-1/ekinu.txt create mode 100644 npc/020-1/eomie.txt create mode 100644 npc/020-1/froma.txt create mode 100644 npc/020-1/harper.txt create mode 100644 npc/020-1/hocus.txt create mode 100644 npc/020-1/inar.txt create mode 100644 npc/020-1/issay.txt create mode 100644 npc/020-1/itka.txt create mode 100644 npc/020-1/joaquim.txt create mode 100644 npc/020-1/joelin.txt create mode 100644 npc/020-1/jossy.txt create mode 100644 npc/020-1/mahoud.txt create mode 100644 npc/020-1/malivox.txt create mode 100644 npc/020-1/marikel.txt create mode 100644 npc/020-1/marine.txt create mode 100644 npc/020-1/martha.txt create mode 100644 npc/020-1/neko.txt create mode 100644 npc/020-1/nickos.txt create mode 100644 npc/020-1/noke.txt create mode 100644 npc/020-1/odonell.txt create mode 100644 npc/020-1/philip.txt create mode 100644 npc/020-1/popaul.txt create mode 100644 npc/020-1/pusco.txt create mode 100644 npc/020-1/ryan.txt create mode 100644 npc/020-1/sander.txt create mode 100644 npc/020-1/tindris.txt create mode 100644 npc/020-1/vaspina.txt create mode 100644 npc/020-1/wateranimation.txt create mode 100644 npc/020-2-0/_import.txt create mode 100644 npc/020-2-0/_mobs.txt create mode 100644 npc/020-2-0/_warps.txt create mode 100644 npc/020-2-0/kaizer.txt create mode 100644 npc/020-2-1/_import.txt create mode 100644 npc/020-2-1/_warps.txt create mode 100644 npc/020-2-10/_import.txt create mode 100644 npc/020-2-10/_warps.txt create mode 100644 npc/020-2-10/hetchel.txt create mode 100644 npc/020-2-11/_import.txt create mode 100644 npc/020-2-11/_warps.txt create mode 100644 npc/020-2-12/_import.txt create mode 100644 npc/020-2-12/_warps.txt create mode 100644 npc/020-2-13/_import.txt create mode 100644 npc/020-2-13/_warps.txt create mode 100644 npc/020-2-14/_import.txt create mode 100644 npc/020-2-14/_warps.txt create mode 100644 npc/020-2-15/_import.txt create mode 100644 npc/020-2-15/_warps.txt create mode 100644 npc/020-2-15/eleanore.txt create mode 100644 npc/020-2-15/kadiya.txt create mode 100644 npc/020-2-15/memoriam.txt create mode 100644 npc/020-2-15/yumi.txt create mode 100644 npc/020-2-16/_import.txt create mode 100644 npc/020-2-16/_warps.txt create mode 100644 npc/020-2-17/_import.txt create mode 100644 npc/020-2-17/_warps.txt create mode 100644 npc/020-2-18/_import.txt create mode 100644 npc/020-2-18/_warps.txt create mode 100644 npc/020-2-18/inya.txt create mode 100644 npc/020-2-19/_import.txt create mode 100644 npc/020-2-19/_warps.txt create mode 100644 npc/020-2-2/_import.txt create mode 100644 npc/020-2-2/_warps.txt create mode 100644 npc/020-2-20/_import.txt create mode 100644 npc/020-2-20/_warps.txt create mode 100644 npc/020-2-20/drabur.txt create mode 100644 npc/020-2-20/riskim.txt create mode 100644 npc/020-2-21/_import.txt create mode 100644 npc/020-2-21/_warps.txt create mode 100644 npc/020-2-22/_import.txt create mode 100644 npc/020-2-22/_warps.txt create mode 100644 npc/020-2-23/_import.txt create mode 100644 npc/020-2-23/_warps.txt create mode 100644 npc/020-2-24/_import.txt create mode 100644 npc/020-2-24/_warps.txt create mode 100644 npc/020-2-24/kylian.txt create mode 100644 npc/020-2-25/_import.txt create mode 100644 npc/020-2-25/_warps.txt create mode 100644 npc/020-2-26/_import.txt create mode 100644 npc/020-2-26/_warps.txt create mode 100644 npc/020-2-26/receptionist.txt create mode 100644 npc/020-2-27/_import.txt create mode 100644 npc/020-2-27/_warps.txt create mode 100644 npc/020-2-28/_import.txt create mode 100644 npc/020-2-28/_warps.txt create mode 100644 npc/020-2-28/pauline.txt create mode 100644 npc/020-2-29/_import.txt create mode 100644 npc/020-2-29/_warps.txt create mode 100644 npc/020-2-3/_import.txt create mode 100644 npc/020-2-3/_warps.txt create mode 100644 npc/020-2-3/inac.txt create mode 100644 npc/020-2-30/_import.txt create mode 100644 npc/020-2-30/_warps.txt create mode 100644 npc/020-2-30/david.txt create mode 100644 npc/020-2-31/_import.txt create mode 100644 npc/020-2-31/_warps.txt create mode 100644 npc/020-2-32/_import.txt create mode 100644 npc/020-2-32/_warps.txt create mode 100644 npc/020-2-33/_import.txt create mode 100644 npc/020-2-33/_warps.txt create mode 100644 npc/020-2-34/_import.txt create mode 100644 npc/020-2-34/_warps.txt create mode 100644 npc/020-2-34/casino.txt create mode 100644 npc/020-2-34/donutello.txt create mode 100644 npc/020-2-4/_import.txt create mode 100644 npc/020-2-4/_warps.txt create mode 100644 npc/020-2-5/_import.txt create mode 100644 npc/020-2-5/_warps.txt create mode 100644 npc/020-2-5/dausen.txt create mode 100644 npc/020-2-5/filipa.txt create mode 100644 npc/020-2-6/_import.txt create mode 100644 npc/020-2-6/_warps.txt create mode 100644 npc/020-2-7/_import.txt create mode 100644 npc/020-2-7/_warps.txt create mode 100644 npc/020-2-7/manoli.txt create mode 100644 npc/020-2-8/_import.txt create mode 100644 npc/020-2-8/_warps.txt create mode 100644 npc/020-2-8/heathin.txt create mode 100644 npc/020-2-8/jhedia.txt create mode 100644 npc/020-2-9/_import.txt create mode 100644 npc/020-2-9/_warps.txt create mode 100644 npc/020-2-9/hydusun.txt create mode 100644 npc/020-2-9/yanis.txt create mode 100644 npc/_anchors.txt create mode 100644 npc/_import.txt create mode 100644 npc/botcheck/_import.txt create mode 100644 npc/commands/bodytype.txt create mode 100644 npc/commands/debug-look.txt create mode 100644 npc/commands/debug-preset.txt create mode 100644 npc/commands/debug-quest.txt create mode 100644 npc/commands/debug-skill.txt create mode 100644 npc/commands/debug.txt create mode 100644 npc/commands/event.txt create mode 100644 npc/commands/gm.txt create mode 100644 npc/commands/mobinfo.txt create mode 100644 npc/commands/motd.txt create mode 100644 npc/commands/music.txt create mode 100644 npc/commands/python.txt create mode 100644 npc/commands/rate-management.txt create mode 100644 npc/commands/resync.txt create mode 100644 npc/commands/scheduled-broadcasts.txt create mode 100644 npc/commands/super-menu.txt create mode 100644 npc/commands/warp.txt create mode 100644 npc/commands/zeny.txt create mode 100644 npc/config/hairstyle_config.txt create mode 100644 npc/config/location.txt create mode 100644 npc/config/magic.txt create mode 100644 npc/dev/ci_test.txt create mode 100644 npc/dev/test.txt create mode 100644 npc/fermi/_import.txt create mode 100644 npc/fermi/_warps.txt create mode 100644 npc/functions/RNGesus.txt create mode 100644 npc/functions/afk.txt create mode 100644 npc/functions/array.txt create mode 100644 npc/functions/asklanguage.txt create mode 100644 npc/functions/asleep.txt create mode 100644 npc/functions/bank.txt create mode 100644 npc/functions/barber.txt create mode 100644 npc/functions/beds.txt create mode 100644 npc/functions/bitwise.txt create mode 100644 npc/functions/bodytype.txt create mode 100644 npc/functions/casino.txt create mode 100644 npc/functions/clientversion.txt create mode 100644 npc/functions/confused-tree-dict.txt create mode 100644 npc/functions/crafting.txt create mode 100644 npc/functions/daily.txt create mode 100644 npc/functions/doors.txt create mode 100644 npc/functions/event-listeners.txt create mode 100644 npc/functions/faction.txt create mode 100644 npc/functions/fishing.txt create mode 100644 npc/functions/game-rules.txt create mode 100644 npc/functions/generic-text.txt create mode 100644 npc/functions/global_event_handler.txt create mode 100644 npc/functions/goodbye.txt create mode 100644 npc/functions/hammocks.txt create mode 100644 npc/functions/harbours.txt create mode 100644 npc/functions/hello.txt create mode 100644 npc/functions/input.txt create mode 100644 npc/functions/inventoryplace.txt create mode 100644 npc/functions/legacy.txt create mode 100644 npc/functions/legiontalk.txt create mode 100644 npc/functions/libquest.txt create mode 100644 npc/functions/lockpicks.txt create mode 100644 npc/functions/main.txt create mode 100644 npc/functions/manhole.txt create mode 100644 npc/functions/masks.txt create mode 100644 npc/functions/math.txt create mode 100644 npc/functions/mouboofunc.txt create mode 100644 npc/functions/music.txt create mode 100644 npc/functions/npcmove.txt create mode 100644 npc/functions/npcmovegraph.txt create mode 100644 npc/functions/openbook.txt create mode 100644 npc/functions/permissions.txt create mode 100644 npc/functions/player-cache.txt create mode 100644 npc/functions/quest-debug/000-ShipQuests_Julia.txt create mode 100644 npc/functions/quest-debug/001-ShipQuests_Arpan.txt create mode 100644 npc/functions/quest-debug/002-ShipQuests_Alige.txt create mode 100644 npc/functions/quest-debug/003-ShipQuests_Peter.txt create mode 100644 npc/functions/quest-debug/004-ShipQuests_Nard.txt create mode 100644 npc/functions/quest-debug/005-ShipQuests_Knife.txt create mode 100644 npc/functions/quest-debug/006-ShipQuests_ArpanMoney.txt create mode 100644 npc/functions/quest-debug/007-ShipQuests_Door.txt create mode 100644 npc/functions/quest-debug/008-ShipQuests_Couwan.txt create mode 100644 npc/functions/quest-debug/009-ShipQuests_TreasureChest.txt create mode 100644 npc/functions/quest-debug/010-ShipQuests_Ale.txt create mode 100644 npc/functions/quest-debug/011-ShipQuests_Astapolos.txt create mode 100644 npc/functions/quest-debug/012-ShipQuests_Gulukan.txt create mode 100644 npc/functions/quest-debug/013-ShipQuests_Jalad.txt create mode 100644 npc/functions/quest-debug/014-ShipQuests_QMuller.txt create mode 100644 npc/functions/quest-debug/015-ShipQuests_Tibbo.txt create mode 100644 npc/functions/quest-debug/016-ShipQuests_Gugli.txt create mode 100644 npc/functions/quest-debug/017-ShipQuests_ChefGado.txt create mode 100644 npc/functions/quest-debug/018-General_Cookies.txt create mode 100644 npc/functions/quest-debug/020-ArtisQuests_LazyBrother.txt create mode 100644 npc/functions/quest-debug/021-ArtisQuests_Urchin.txt create mode 100644 npc/functions/quest-debug/022-ArtisQuests_CatchPiou.txt create mode 100644 npc/functions/quest-debug/023-ArtisQuests_Fishman.txt create mode 100644 npc/functions/quest-debug/024-ArtisQuests_QOnan.txt create mode 100644 npc/functions/quest-debug/026-General_Rumly.txt create mode 100644 npc/functions/quest-debug/027-ArtisQuests_Enora.txt create mode 100644 npc/functions/quest-debug/029-ArtisQuests_Fexil.txt create mode 100644 npc/functions/quest-debug/030-ArtisQuests_Lloyd.txt create mode 100644 npc/functions/quest-debug/031-General_Janus.txt create mode 100644 npc/functions/quest-debug/032-ArtisQuests_MonaDad.txt create mode 100644 npc/functions/quest-debug/033-Artis_Legion_Progress.txt create mode 100644 npc/functions/quest-debug/034-ArtisQuests_TrainingLegion.txt create mode 100644 npc/functions/quest-debug/035-ThiefQuests_Artis.txt create mode 100644 npc/functions/quest-debug/050-HurnscaldQuests_Hinnak.txt create mode 100644 npc/functions/quest-debug/051-HurnscaldQuests_Soup.txt create mode 100644 npc/functions/quest-debug/052-HurnscaldQuests_Inspector.txt create mode 100644 npc/functions/quest-debug/053-HurnscaldQuests_ForestBow.txt create mode 100644 npc/functions/quest-debug/054-HurnscaldQuests_WoodenShield.txt create mode 100644 npc/functions/quest-debug/055-General_Cooking.txt create mode 100644 npc/functions/quest-debug/056-General_Brotherhood.txt create mode 100644 npc/functions/quest-debug/057-HurnscaldQuests_Kfahr.txt create mode 100644 npc/functions/quest-debug/058-ArgaesQuest_Galimatia.txt create mode 100644 npc/functions/quest-debug/059-HurnscaldQuests_Rossy.txt create mode 100644 npc/functions/quest-debug/061-General_Hal.txt create mode 100644 npc/functions/quest-debug/100-General_Narrator.txt create mode 100644 npc/functions/quest-debug/functions.txt create mode 100644 npc/functions/questgen.txt create mode 100644 npc/functions/referral.txt create mode 100644 npc/functions/refine.txt create mode 100644 npc/functions/resetstatus.txt create mode 100644 npc/functions/riddle.txt create mode 100644 npc/functions/sailordialogue.txt create mode 100644 npc/functions/sailortalk.txt create mode 100644 npc/functions/savepoint.txt create mode 100644 npc/functions/scoreboards.txt create mode 100644 npc/functions/shops.txt create mode 100644 npc/functions/skills.txt create mode 100644 npc/functions/soul-menhir.txt create mode 100644 npc/functions/spotlight.txt create mode 100644 npc/functions/string.txt create mode 100644 npc/functions/time.txt create mode 100644 npc/functions/timer.txt create mode 100644 npc/functions/treasure.txt create mode 100644 npc/functions/util.txt create mode 100644 npc/functions/vault.txt create mode 100644 npc/functions/villagertalk.txt create mode 100644 npc/functions/warp.txt create mode 100644 npc/items/cookie.txt create mode 100644 npc/items/croconut.txt create mode 100644 npc/items/gift.txt create mode 100644 npc/items/master_skillbook.txt create mode 100644 npc/items/music_toys.txt create mode 100644 npc/items/rand_sc_heal.txt create mode 100644 npc/items/recipes.txt create mode 100644 npc/items/shovel.txt create mode 100644 npc/marine-2/_import.txt create mode 100644 npc/marine-2/_mobs.txt create mode 100644 npc/marine-2/main.txt create mode 100644 npc/marine/_import.txt create mode 100644 npc/marine/_mobs.txt create mode 100644 npc/marine/saluc.txt create mode 100644 npc/pre-re/scripts_main.conf create mode 100644 npc/scripts.conf create mode 100644 npc/sec_pri/_import.txt create mode 100644 npc/sec_pri/redirect.txt create mode 100644 npc/test/_import.txt create mode 100644 npc/test/_mobs.txt create mode 100644 npc/test/mapflags.txt create mode 100644 npc/test/npc1.txt create mode 100644 npc/test/npc2.txt create mode 100644 npc/test/npc3.txt create mode 100644 npc/test/npc4.txt create mode 100644 npc/test/npc5.txt create mode 100644 npc/test/npc6.txt create mode 100644 npc/test/test1.txt create mode 100644 npc/test/test2.txt create mode 100644 npc/testbg/_import.txt create mode 100644 npc/testbg/mapflags.txt create mode 100755 old/char-server create mode 100755 old/login-server create mode 100755 old/map-server create mode 100644 old/plugins/HPMHooking_char.so create mode 100644 old/plugins/HPMHooking_login.so create mode 100644 old/plugins/HPMHooking_map.so create mode 100644 old/plugins/db2sql.so create mode 100644 old/plugins/libevol_char.so create mode 100644 old/plugins/libevol_login.so create mode 100644 old/plugins/libevol_map.so create mode 100644 old/plugins/sample.so create mode 100644 oldplugins/HPMHooking_char.so create mode 100644 oldplugins/HPMHooking_login.so create mode 100644 oldplugins/HPMHooking_map.so create mode 100755 oldplugins/constdb2doc.so create mode 100644 oldplugins/db2sql.so create mode 100755 oldplugins/generate-translations.so create mode 100644 oldplugins/libevol_char.so create mode 100644 oldplugins/libevol_login.so create mode 100644 oldplugins/libevol_map.so create mode 100755 oldplugins/mapcache.so create mode 100644 oldplugins/sample.so create mode 100755 oldplugins/script_mapquit.so create mode 100755 script-checker create mode 100644 sql-files/init.sql create mode 100644 sql-files/initremote.sql create mode 100644 sql-files/logs.sql create mode 100644 sql-files/main.sql create mode 100644 sql-files/tools/convert_engine_innodb.sql create mode 100644 sql-files/tools/convert_engine_myisam.sql create mode 100644 sql-files/tools/convert_passwords.sql create mode 100644 sql-files/upgrades/2013-02-14--16-15.sql create mode 100644 sql-files/upgrades/2013-02-15--18-06.sql create mode 100644 sql-files/upgrades/2013-03-05--01-05.sql create mode 100644 sql-files/upgrades/2013-03-06--00-00.sql create mode 100644 sql-files/upgrades/2013-03-09--01-56.sql create mode 100644 sql-files/upgrades/2013-03-27--18-35.sql create mode 100644 sql-files/upgrades/2013-04-16--01-24.sql create mode 100644 sql-files/upgrades/2013-04-16--02-15.sql create mode 100644 sql-files/upgrades/2013-10-09--21-38.sql create mode 100644 sql-files/upgrades/2013-10-10--16-36.sql create mode 100644 sql-files/upgrades/2013-10-27--16-47.sql create mode 100644 sql-files/upgrades/2013-10-30--19-53.sql create mode 100644 sql-files/upgrades/2013-10-30--21-12.sql create mode 100644 sql-files/upgrades/2013-10-31--07-49.sql create mode 100644 sql-files/upgrades/2013-11-09--00-03.sql create mode 100644 sql-files/upgrades/2013-11-15--00-06.sql create mode 100644 sql-files/upgrades/2013-11-15--19-57.sql create mode 100644 sql-files/upgrades/2013-11-16--07-49.sql create mode 100644 sql-files/upgrades/2013-11-18--08-23.sql create mode 100644 sql-files/upgrades/2013-12-24--00-15.sql create mode 100644 sql-files/upgrades/2014-01-04--16-47.sql create mode 100644 sql-files/upgrades/2014-01-06--17-22.sql create mode 100644 sql-files/upgrades/2014-02-19--17-57.sql create mode 100644 sql-files/upgrades/2014-03-25--23-57.sql create mode 100644 sql-files/upgrades/2014-04-07--22-04.sql create mode 100644 sql-files/upgrades/2014-04-26--10-00.sql create mode 100644 sql-files/upgrades/2014-05-17--00-06.sql create mode 100644 sql-files/upgrades/2014-09-01--16-53.sql create mode 100644 sql-files/upgrades/2014-11-03--00-45.sql create mode 100644 sql-files/upgrades/2015-07-02--18-14.sql create mode 100644 sql-files/upgrades/2015-07-08--13-08.sql create mode 100644 sql-files/upgrades/2015-08-27--20-42.sql create mode 100644 sql-files/upgrades/2015-12-16--12-57.sql create mode 100644 sql-files/upgrades/2015-12-17--15-58.sql create mode 100644 sql-files/upgrades/2016-03-10--22-18.sql create mode 100644 sql-files/upgrades/2016-07-08--02-42.sql create mode 100644 sql-files/upgrades/2016-07-08--02-51.sql create mode 100644 sql-files/upgrades/2016-10-03--20-27.sql create mode 100644 sql-files/upgrades/2016-10-26--10-29.sql create mode 100644 sql-files/upgrades/2017-03-02--11-40.sql create mode 100644 sql-files/upgrades/2017-03-05--08-09.sql create mode 100644 sql-files/upgrades/2017-03-15--14-29.sql create mode 100644 sql-files/upgrades/2017-06-04--15-04.sql create mode 100644 sql-files/upgrades/2017-06-04--15-05.sql create mode 100644 sql-files/upgrades/2017-11-04--10-39.sql create mode 100644 sql-files/upgrades/2018-02-26--15-57.sql create mode 100644 sql-files/upgrades/2018-03-10--04-06.sql create mode 100644 sql-files/upgrades/2018-06-03--00-10.sql create mode 100644 sql-files/upgrades/2018-06-03--17-16.sql create mode 100644 sql-files/upgrades/2018-06-05--12-02.sql create mode 100644 sql-files/upgrades/2018-07-24--03-23.sql create mode 100644 sql-files/upgrades/2018-09-01--05-22.sql create mode 100644 sql-files/upgrades/2018-12-14--01-02.sql create mode 100644 sql-files/upgrades/2018-12-29--07-51.sql create mode 100644 sql-files/upgrades/2019-04-08--21-52.sql create mode 100644 sql-files/upgrades/2019-04-25--02-12.sql create mode 100644 sql-files/upgrades/2019-05-09--18-07.sql create mode 100644 sql-files/upgrades/2019-08-08--19-43.sql create mode 100644 sql-files/upgrades/2019-10-05--19-01.sql create mode 100644 sql-files/upgrades/2019-10-12--14-21.sql create mode 100644 sql-files/upgrades/2019-11-22--23-58.sql create mode 100644 sql-files/upgrades/2020-01-24--01-09.sql create mode 100644 sql-files/upgrades/2020-03-22--01-56.sql create mode 100644 sql-files/upgrades/2020-03-22--03-09.sql create mode 100644 sql-files/upgrades/2020-05-01--04-44.sql create mode 100644 sql-files/upgrades/2020-05-10--23-11.sql create mode 100644 sql-files/upgrades/index.txt create mode 100755 sysinfogen.sh create mode 100755 test_char create mode 100755 test_login create mode 100755 test_map create mode 100644 tuco7n-Content III.jpg create mode 100644 tuco7n-Content IV.jpg create mode 100644 tuco7n-Master Flowerchart.jpg create mode 100644 tuco7n.drawio diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..cc391d8c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..bbb4a20d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# treat script files as C (for highlighting in merge requests) +npc/**/*.txt linguist-language=C gitlab-language=c diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..d00cfb7c --- /dev/null +++ b/.gitignore @@ -0,0 +1,125 @@ +#Global +.Apple* +.DS_Store +._* +.clang_complete +.local.vimrc +.ycm_extra_conf.py* +Thumbs.db + +# / +/*.exe +/*.ilk +/*.log +/*.ncb +/*.opensdf +/*.opt +/*.pdb +/*.pid +/*.sdf +/*.stackdump +/*.suo +/*.exp +/*.lib +/autom4te.cache/ +/start-log.txt +/char-server +/config.log +/config.status +/core +/ipch +/login-server +/Makefile.cache +/map-server +/mapcache +/configure +/versions + +# /plugins -- everything +/plugins/ + +#OSX Xcode project user-sensitive-stuff +/DerivedData +/Hercules +/build +/Hercules.xcodeproj/xcuserdata +/Hercules.xcodeproj/project.xcworkspace/xcuserdata/ +/Hercules.xcodeproj/project.xcworkspace/xcshareddata/Hercules.xccheckout + +# /3rdparty/libconfig/ +/3rdparty/libconfig/Makefile +/3rdparty/libconfig/*.o + +# /3rdparty/mt19937ar/ +/3rdparty/mt19937ar/Makefile +/3rdparty/mt19937ar/*.o + +# /cache/ +/cache/ + +# /conf/ +/conf/import + +# /log/ +/log/*.log +/log/*.leaks +/log/*.tmp + +# /src/char/ +/src/char/Makefile +/src/char/obj_sql + +# /src/common/ +/src/common/Makefile +/src/common/obj_all +/src/common/obj_sql +/src/common/sysinfo.inc + +# /src/login/ +/src/login/Makefile +/src/login/obj_sql + +# /src/map/ +/src/map/Makefile +/src/map/obj_sql +/src/map/pcre.h + +# /src/test/ +/src/test/Makefile +/src/test/obj + +# /src/tool/ +/src/tool/Makefile +/src/tool/obj_all + +# /src/plugins/ +/src/plugins/Makefile + +# /tools/ +/tools/convert +/tools/adduser +/tools/*.exe +/tools/*.ilk +/tools/*.pdb +/tools/HPMHookGen/Makefile +/tools/HPMHookGen/doxyoutput + +# /vcproj-* +/vcproj-*/*.user +/vcproj-*/char-server +/vcproj-*/login-server +/vcproj-*/map-server +/vcproj-*/mapcache +/vcproj-*/plugin-*/ + +# temp files +*.txt~ +*.conf~ +*.py~ +*.bak +/gmon.out +/gprof_* + +# auto created configs +conf/channels.conf +npc/commands/motd-debug-text.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..b679a601 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,79 @@ +stages: +- lint +- test + +variables: + GET_SOURCES_ATTEMPTS: "5" + ARTIFACT_DOWNLOAD_ATTEMPTS: "5" + MYSQL_ROOT_PASSWORD: root + packetver: "20170517" + +newlines: + stage: lint + script: + - ./.tools/jobs/install.sh "dos2unix git-core" + - ./.tools/jobs/newlines.sh + image: debian:unstable + artifacts: + untracked: true + when: always + expire_in: 3 week + +spaces: + stage: lint + script: + - ./.tools/jobs/install.sh "sed git-core" + - cd npc + - ../.tools/jobs/spaces.sh + image: debian:unstable + artifacts: + untracked: true + when: always + expire_in: 3 week + +mariadb_run_latest_gcc10: + stage: test + needs: [] + script: + - export CC=gcc-10 + - export HERCCPPFLAGS=" -Wno-format-overflow" + - export ASAN_OPTIONS=detect_stack_use_after_return=true:strict_init_order=true:detect_odr_violation=0 + - ./.tools/jobs/install.sh "mysql-client + gcc-10 + git-core + make autoconf automake autopoint + libtool libmariadbclient-dev-compat libz-dev libpcre3-dev" + - ./.tools/jobs/cloneall.sh + - ./.tools/jobs/initdb.sh mariadb + - ./.tools/jobs/build.sh "--enable-packetver=${packetver} --enable-epoll --enable-debug --enable-sanitize=full --disable-manager --enable-Werror --enable-buildbot" "--enable-werror --enable-lto --enable-sanitize" + - ./.tools/jobs/runserver.sh mariadb + image: debian:unstable + services: + - mariadb:latest + artifacts: + untracked: true + when: always + expire_in: 3 week + +mariadb_run_valgrind_latest: + stage: test + needs: [] + script: + - export CC=gcc-6 + - ./.tools/jobs/install.sh "mysql-client + gcc-6 + git-core + make autoconf automake autopoint + libtool mariadb-client libmariadbclient-dev-compat libz-dev libpcre3-dev + valgrind" + - ./.tools/jobs/cloneall.sh + - ./.tools/jobs/initdb.sh mariadb + - ./.tools/jobs/build.sh "--enable-packetver=${packetver} --enable-epoll --enable-debug --disable-manager --enable-Werror --enable-buildbot" "--enable-werror" + - ./.tools/jobs/runservervalgrind.sh mariadb + image: debian:stretch + services: + - mariadb:latest + artifacts: + untracked: true + when: always + expire_in: 3 week diff --git a/.mailmap b/.mailmap new file mode 100644 index 00000000..9d753f39 --- /dev/null +++ b/.mailmap @@ -0,0 +1,32 @@ +Jesusaves Jesusaves +Jesusaves Jonatas L. Nogueira +Alige Alige +Alige Alige +Reid Reid Yaro +Reid Reid +Reid Reid Yaro +Reid Reid +gumi gumi +Hal9000 Hal9OOO +Hal9000 Hal9OOO (Francesco Miglietta) +Hal9000 epoc +Hal9000 +Micksha Micksha +omatt omattornot +omatt omatt +gumi mekolat +wushin Wushin +Monwarez Thibault Payet +Monwarez User Monwarez +Vasily_Makarov Dan Sagunov +Vasily_Makarov Dan Sagunov +Vasily_Makarov dan +Vasily_Makarov Vasily +Akko Teru Teru <9bi at [comc]ast dot net> +jak1 jak1 +Kurt Kuschinski Hocus +Kurt Kuschinski Kurt Kuschinski +Saweres root +Mikko Mikko +Ledmitz Ledmitz + diff --git a/.tools/conf/mariadb/battle.conf b/.tools/conf/mariadb/battle.conf new file mode 100644 index 00000000..ff05022c --- /dev/null +++ b/.tools/conf/mariadb/battle.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +battle_configuration: { + // See conf/map/battle.conf for details +} diff --git a/.tools/conf/mariadb/char-server.conf b/.tools/conf/mariadb/char-server.conf new file mode 100644 index 00000000..448b8d18 --- /dev/null +++ b/.tools/conf/mariadb/char-server.conf @@ -0,0 +1,31 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Character Server local configuration file. +//========================================================================= + +min_char_class: 0 +max_char_class: 6 diff --git a/.tools/conf/mariadb/constants.conf b/.tools/conf/mariadb/constants.conf new file mode 100644 index 00000000..7d269595 --- /dev/null +++ b/.tools/conf/mariadb/constants.conf @@ -0,0 +1,31 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +debug: 0 +SERVER_USES_VAULT: 0 diff --git a/.tools/conf/mariadb/inter-server.conf b/.tools/conf/mariadb/inter-server.conf new file mode 100644 index 00000000..9cd3932f --- /dev/null +++ b/.tools/conf/mariadb/inter-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Inter Server local configuration file. +//========================================================================= + +inter_configuration: { + // See conf/common/inter-server.conf +} diff --git a/.tools/conf/mariadb/login-server.conf b/.tools/conf/mariadb/login-server.conf new file mode 100644 index 00000000..c8f1f854 --- /dev/null +++ b/.tools/conf/mariadb/login-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Login Server local configuration file. +//========================================================================= + +login_configuration: { + // See conf/login/login-server.conf for details +} diff --git a/.tools/conf/mariadb/logs.conf b/.tools/conf/mariadb/logs.conf new file mode 100644 index 00000000..47e5a665 --- /dev/null +++ b/.tools/conf/mariadb/logs.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Log local configuration file. +//========================================================================= + +map_log: { + // See conf/map/logs.conf for details +} diff --git a/.tools/conf/mariadb/map-server.conf b/.tools/conf/mariadb/map-server.conf new file mode 100644 index 00000000..11e4356b --- /dev/null +++ b/.tools/conf/mariadb/map-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Map Server local configuration file. +//========================================================================= + +map_configuration: { + // See conf/map/map-server.conf for details +} diff --git a/.tools/conf/mariadb/msg_conf.txt b/.tools/conf/mariadb/msg_conf.txt new file mode 100644 index 00000000..e69de29b diff --git a/.tools/conf/mariadb/ports.conf b/.tools/conf/mariadb/ports.conf new file mode 100644 index 00000000..7d5481e3 --- /dev/null +++ b/.tools/conf/mariadb/ports.conf @@ -0,0 +1,8 @@ +// Login server port +login_port: 6901 + +// Character server port +char_port: 6122 + +// Map server port +map_port: 5122 diff --git a/.tools/conf/mariadb/script.conf b/.tools/conf/mariadb/script.conf new file mode 100644 index 00000000..042644ff --- /dev/null +++ b/.tools/conf/mariadb/script.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Script local configuration file. +//========================================================================= + +script_configuration: { + // See conf/map/script.conf for details +} diff --git a/.tools/conf/mariadb/socket.conf b/.tools/conf/mariadb/socket.conf new file mode 100644 index 00000000..57806f21 --- /dev/null +++ b/.tools/conf/mariadb/socket.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Sockets local configuration file +//========================================================================= + +socket_configuration: { + // See conf/common/socket.conf for details. +} diff --git a/.tools/conf/mariadb/sql_connection.conf b/.tools/conf/mariadb/sql_connection.conf new file mode 100644 index 00000000..1e0e559f --- /dev/null +++ b/.tools/conf/mariadb/sql_connection.conf @@ -0,0 +1,52 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= SQL connection configuration file. +//========================================================================= +// This file affects how ALL server sql connections work, unless explictly +// defined so in the server configuration file (See +// doc/global_configuration.txt for more information). +//========================================================================= + +sql_connection: { + // [INTER] You can specify the codepage to use in your mySQL tables here. + // (Note that this feature requires MySQL 4.1+) + //default_codepage: "" + + // [LOGIN] Is `userid` in account_db case sensitive? + //case_sensitive: false + + // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1. + // Under windows, you want to use 127.0.0.1. If you see a message like + // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" + // and you have localhost, switch it to 127.0.0.1 + db_hostname: "mariadb" + db_port: 3306 + db_username: "evol" + db_password: "evol" + db_database: "evol" + //codepage:"" +} diff --git a/.tools/conf/mysql/battle.conf b/.tools/conf/mysql/battle.conf new file mode 100644 index 00000000..ff05022c --- /dev/null +++ b/.tools/conf/mysql/battle.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +battle_configuration: { + // See conf/map/battle.conf for details +} diff --git a/.tools/conf/mysql/char-server.conf b/.tools/conf/mysql/char-server.conf new file mode 100644 index 00000000..448b8d18 --- /dev/null +++ b/.tools/conf/mysql/char-server.conf @@ -0,0 +1,31 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Character Server local configuration file. +//========================================================================= + +min_char_class: 0 +max_char_class: 6 diff --git a/.tools/conf/mysql/constants.conf b/.tools/conf/mysql/constants.conf new file mode 100644 index 00000000..7d269595 --- /dev/null +++ b/.tools/conf/mysql/constants.conf @@ -0,0 +1,31 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +debug: 0 +SERVER_USES_VAULT: 0 diff --git a/.tools/conf/mysql/inter-server.conf b/.tools/conf/mysql/inter-server.conf new file mode 100644 index 00000000..9cd3932f --- /dev/null +++ b/.tools/conf/mysql/inter-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Inter Server local configuration file. +//========================================================================= + +inter_configuration: { + // See conf/common/inter-server.conf +} diff --git a/.tools/conf/mysql/login-server.conf b/.tools/conf/mysql/login-server.conf new file mode 100644 index 00000000..c8f1f854 --- /dev/null +++ b/.tools/conf/mysql/login-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Login Server local configuration file. +//========================================================================= + +login_configuration: { + // See conf/login/login-server.conf for details +} diff --git a/.tools/conf/mysql/logs.conf b/.tools/conf/mysql/logs.conf new file mode 100644 index 00000000..47e5a665 --- /dev/null +++ b/.tools/conf/mysql/logs.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Log local configuration file. +//========================================================================= + +map_log: { + // See conf/map/logs.conf for details +} diff --git a/.tools/conf/mysql/map-server.conf b/.tools/conf/mysql/map-server.conf new file mode 100644 index 00000000..11e4356b --- /dev/null +++ b/.tools/conf/mysql/map-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Map Server local configuration file. +//========================================================================= + +map_configuration: { + // See conf/map/map-server.conf for details +} diff --git a/.tools/conf/mysql/msg_conf.txt b/.tools/conf/mysql/msg_conf.txt new file mode 100644 index 00000000..e69de29b diff --git a/.tools/conf/mysql/ports.conf b/.tools/conf/mysql/ports.conf new file mode 100644 index 00000000..7d5481e3 --- /dev/null +++ b/.tools/conf/mysql/ports.conf @@ -0,0 +1,8 @@ +// Login server port +login_port: 6901 + +// Character server port +char_port: 6122 + +// Map server port +map_port: 5122 diff --git a/.tools/conf/mysql/script.conf b/.tools/conf/mysql/script.conf new file mode 100644 index 00000000..042644ff --- /dev/null +++ b/.tools/conf/mysql/script.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Script local configuration file. +//========================================================================= + +script_configuration: { + // See conf/map/script.conf for details +} diff --git a/.tools/conf/mysql/socket.conf b/.tools/conf/mysql/socket.conf new file mode 100644 index 00000000..57806f21 --- /dev/null +++ b/.tools/conf/mysql/socket.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Sockets local configuration file +//========================================================================= + +socket_configuration: { + // See conf/common/socket.conf for details. +} diff --git a/.tools/conf/mysql/sql_connection.conf b/.tools/conf/mysql/sql_connection.conf new file mode 100644 index 00000000..b469dbf0 --- /dev/null +++ b/.tools/conf/mysql/sql_connection.conf @@ -0,0 +1,52 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= SQL connection configuration file. +//========================================================================= +// This file affects how ALL server sql connections work, unless explictly +// defined so in the server configuration file (See +// doc/global_configuration.txt for more information). +//========================================================================= + +sql_connection: { + // [INTER] You can specify the codepage to use in your mySQL tables here. + // (Note that this feature requires MySQL 4.1+) + //default_codepage: "" + + // [LOGIN] Is `userid` in account_db case sensitive? + //case_sensitive: false + + // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1. + // Under windows, you want to use 127.0.0.1. If you see a message like + // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" + // and you have localhost, switch it to 127.0.0.1 + db_hostname: "mysql" + db_port: 3306 + db_username: "evol" + db_password: "evol" + db_database: "evol" + //codepage:"" +} diff --git a/.tools/jobs/build.sh b/.tools/jobs/build.sh new file mode 100755 index 00000000..8b57f711 --- /dev/null +++ b/.tools/jobs/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +export LOGFILE=gcc6.log + +source ./.tools/scripts/init.sh + +pwd +cd .. + +build_init + +cd server-code +check_error $? + +make_server "$1" "$2" diff --git a/.tools/jobs/cloneall.sh b/.tools/jobs/cloneall.sh new file mode 100755 index 00000000..79bb8d03 --- /dev/null +++ b/.tools/jobs/cloneall.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source ./.tools/scripts/init.sh + +do_init diff --git a/.tools/jobs/clonedata.sh b/.tools/jobs/clonedata.sh new file mode 100755 index 00000000..95fa77a5 --- /dev/null +++ b/.tools/jobs/clonedata.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source ./.tools/scripts/init.sh + +do_init_data diff --git a/.tools/jobs/initdb.sh b/.tools/jobs/initdb.sh new file mode 100755 index 00000000..d6c2480f --- /dev/null +++ b/.tools/jobs/initdb.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +source ./.tools/scripts/init.sh + +cd ../server-data + +export host=$1 +cd sql-files + +export CMD="mysql --force -u root -proot --host=${host}" +check_error $? +echo $CMD <./initremote.sql +$CMD <./initremote.sql +check_error $? + +export CMD="mysql -u evol -pevol --host=${host} evol" +echo Creating tables... +echo $CMD runlog.txt + export errcode=$? + export teststr=$(cat runlog.txt) + if [[ -n "${teststr}" ]]; then + echo "Errors found in running server $1." + cat runlog.txt + echo "Errors found in running server $1." + exit 1 + else + echo "No errors found for server $1." + fi + if [ ${errcode} -ne 0 ]; then + echo "server $1 terminated with exit code ${errcode}" + echo "Test failed" + exit 1 + fi +} + +do_init_tools +init_configs $1 + +cd server-data +pwd +ls -la + +run_server ./login-server +run_server ./char-server + +ARGS="--load-script npc/dev/test.txt " +ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt" + +run_server ./map-server "$ARGS" diff --git a/.tools/jobs/runservervalgrind.sh b/.tools/jobs/runservervalgrind.sh new file mode 100755 index 00000000..6442b091 --- /dev/null +++ b/.tools/jobs/runservervalgrind.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +source ./.tools/scripts/init.sh + +function run_server { + echo "running: $1 --run-once $2" + valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no $1 --run-once $2 2>runlog.txt + export errcode=$? + export teststr=$(grep "invalid" runlog.txt) + cat runlog.txt + if [[ -n "${teststr}" ]]; then + echo "Errors found in running server $1." + exit 1 + else + echo "No errors found for server $1." + fi + if [ ${errcode} -ne 0 ]; then + echo "server $1 terminated with exit code ${errcode}" + echo "Test failed" + exit 1 + fi +} + +do_init_tools +init_configs $1 + +cd server-data +pwd +ls -la + +run_server ./login-server +run_server ./char-server + +ARGS="--load-script npc/dev/test.txt " +ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt" + +run_server ./map-server "$ARGS" diff --git a/.tools/jobs/spaces.sh b/.tools/jobs/spaces.sh new file mode 100755 index 00000000..b0f485db --- /dev/null +++ b/.tools/jobs/spaces.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +find -H . -type f -name "*.txt" -exec sed -i 's/[[:blank:]]*$//' {} \; + +export RES=$(git diff --name-only) +if [[ -n "${RES}" ]]; then + echo "Extra spaces before new lines detected in files:" + git diff --name-only + exit 1 +fi diff --git a/.tools/npc/motd-debug-text.txt b/.tools/npc/motd-debug-text.txt new file mode 100644 index 00000000..a57c9a2a --- /dev/null +++ b/.tools/npc/motd-debug-text.txt @@ -0,0 +1,4 @@ +function script MOTD_debug_text { + setarray $@Debug_Messages$[0], ""; + return; +} diff --git a/.tools/scripts/init.sh b/.tools/scripts/init.sh new file mode 100755 index 00000000..9bac358e --- /dev/null +++ b/.tools/scripts/init.sh @@ -0,0 +1,217 @@ +#!/bin/bash + +mkdir logs + +export dir=$(pwd) +export ERRFILE=${dir}/logs/${LOGFILE} + +cat /etc/os-release + +rm ${ERRFILE} + +function check_error { + if [ "$1" != 0 ]; then + echo "Error $1" + exit $1 + fi +} + +function update_repos { + if [ "$CI_SERVER" == "" ]; + then + return + fi + + export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101") + if [ "$DATA" != "" ]; + then + echo "Detected local runner" + sed -i 's!http://httpredir.debian.org/debian!http://1.10.100.103/debian!' /etc/apt/sources.list + else + echo "Detected non local runner" + fi +} + +function gitclone1 { + echo git clone $2 $3 + git clone $2 $3 + if [ "$?" != 0 ]; then + echo git clone $1 $3 + git clone $1 $3 + return $? + fi + return $? +} + +function gitclone { + export name1=$1/$2 + export name2=${CI_BUILD_REPO##*@} + export name2=https://${name2%/*}/$2 + + gitclone1 "$name1" "$name2" $3 + if [ "$?" != 0 ]; then + sleep 1s + gitclone1 "$name1" "$name2" $3 + if [ "$?" != 0 ]; then + sleep 3s + gitclone1 "$name1" "$name2" $3 + if [ "$?" != 0 ]; then + sleep 5s + gitclone1 "$name1" "$name2" $3 + fi + fi + fi + check_error $? +} + +function update_repos { + if [ "$CI_SERVER" == "" ]; + then + return + fi + + export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101") + if [ "$DATA" != "" ]; + then + echo "Detected local runner" + sed -i 's!http://httpredir.debian.org/debian!http://1.10.100.103/debian!' /etc/apt/sources.list + else + echo "Detected non local runner" + fi +} + +function aptget_update { + update_repos + echo apt-get update + apt-get update + if [ "$?" != 0 ]; then + sleep 1s + apt-get update + if [ "$?" != 0 ]; then + sleep 1s + apt-get update + fi + fi + check_error $? +} + +function aptget_install { + echo apt-get -y install $* + apt-get -y install $* + if [ "$?" != 0 ]; then + sleep 1s + apt-get -y install $* + if [ "$?" != 0 ]; then + sleep 2s + apt-get -y install $* + fi + fi + check_error $? +} + +function make_server { + ls -la ../server-data + ls -la ../server-data/plugins + echo source src/evol/tools/vars.sh + source ./src/evol/tools/vars.sh + check_error $? + export CPPFLAGS="$CPPFLAGS -DI_AM_AWARE_OF_THE_RISK_AND_STILL_WANT_TO_RUN_HERCULES_AS_ROOT" + echo "autoreconf -i" + autoreconf -i + check_error $? + echo ./configure $1 CPPFLAGS=\"${CPPFLAGS}${HERCCPPFLAGS}\" + ./configure $1 CPPFLAGS="$CPPFLAGS$HERCCPPFLAGS" + export err="$?" + if [ "$err" != 0 ]; then + echo "Error $err" + echo cat config.log + cat config.log + exit $err + fi + echo "make -j2" + make -j2 + check_error $? + echo "make -j2 plugin.script_mapquit" + make -j2 plugin.script_mapquit + check_error $? + make install + check_error $? + + cd src/evol + echo "autoreconf -i" + mkdir m4 + autoreconf -i + check_error $? + mkdir build + cd build + echo ../configure $2 CPPFLAGS=\"${VARS}\" + ../configure $2 CPPFLAGS="${VARS}" + check_error $? + echo "make -j2 V=0" + make -j2 V=0 + check_error $? + cd ../../../.. + ls -la server-data/plugins +} + +function do_init_data { + mkdir shared + cd .. + rm -rf server-data + cp -r ${CI_PROJECT_NAME:=serverdata} server-data + ls -la server-data + check_error $? +} + +function do_init_tools { + cd .. + rm -rf tools + gitclone https://gitlab.com/evol evol-tools.git tools +} + +function do_init { + do_init_data + rm -rf server-code + gitclone https://gitlab.com/evol hercules.git server-code + check_error $? + cd server-code/src + check_error $? + gitclone https://gitlab.com/evol evol-hercules.git evol + check_error $? + cd ../.. + check_error $? + mkdir -p server-data/plugins +} + +function build_init { + if [ "$CI_SERVER" == "" ]; + then + return + fi + mkdir -p /local/bin + echo "#!/bin/bash" > /local/bin/id + echo "echo 1000" >> /local/bin/id + export PATH="/local/bin:$PATH" + chmod +x /local/bin/id + echo "fake id check" + id + + cd server-code/src/evol + source tools/vars.sh + check_error $? + cd ../../.. + check_error $? + echo $CC --version + $CC --version + check_error $? +} + +function init_configs { + cd tools/localserver + ./installconfigs.sh + cd ../.. + cp server-data/.tools/conf/$1/* server-data/conf/import/ + cp server-data/.tools/npc/motd-* server-data/npc/commands/ + ls -la server-data/conf/import + cat server-data/conf/import/inter_conf.txt +} diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..b66e50be --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +.PHONY: new server-update server-updatebuild maps build buildasan config updateconfig initdb updatedb givegm updates constdb + +new: build config initdb + +server-update: updateconfig updatedb + +server-updatebuild: build updateconfig updatedb + +maps: + cd ../tools/hercules/ ; ./tmx_converter.py ../../client-data/ ../../server-data ; ./convert_tmx_to_mapcache.py + +build: + cd ../tools/localserver/ ; ./build.sh + +buildasan: + cd ../tools/localserver/ ; ./buildasan.sh + +config: + cd ../tools/localserver/ ; ./installconfigs.sh + +updateconfig: + cd ../tools/localserver/ ; ./updateconfigs.sh + +initdb: + cd ../tools/localserver/ ; ./initdb.sh + +updatedb: + cd ../tools/localserver/ ; ./updatedb.sh + +givegm: + cd ../tools/localserver/ ; ./givegm.sh ${ID} + +updates: + cd ../tools/update/ ; ./createnew.sh ; ./create_music.sh + +constdb: + mkdir -p doc && ./map-server --run-once --load-plugin constdb2doc --constdb2doc && cp -f doc/constants.md ../docs/server/scripts/constants.md; rm -r doc diff --git a/athena-start b/athena-start new file mode 100755 index 00000000..eb3dbdf5 --- /dev/null +++ b/athena-start @@ -0,0 +1,72 @@ +#!/bin/sh +# athena starting script by rowla +# modified by shazeya@syafi.com (NL101541) + +PATH=./:$PATH + +L_SRV=login-server +C_SRV=char-server +M_SRV=map-server + +print_start() { +# more << EOF +echo "Athena Starting..." +echo " (c) 2003 Athena Project" +echo " modified by shazeya@syafi.com" +echo "" +#echo "Debug informations will appear," +#echo "since this is a test release." +#echo "" +echo "checking..." +#EOF +} + +check_files() { + + for i in ${L_SRV} ${C_SRV} ${M_SRV} + do + if [ ! -f ./$i ]; then + echo "$i does not exist, or can't run." + echo "Stop. Check your compile." + exit 1; + fi + done + +# more << EOF +echo "Check complete." +echo "Looks good, a nice Athena!" +#EOF +} + + +case $1 in + 'start') + print_start + check_files + + exec ./${L_SRV}& + echo $! > .${L_SRV}.pid + exec ./${C_SRV}& + echo $! > .${C_SRV}.pid + exec ./${M_SRV}& + echo $! > .${M_SRV}.pid + + echo "Now Started Athena." +;; + 'stop') + for i in .${L_SRV}.pid .${C_SRV}.pid .${M_SRV}.pid + do + if [ -e ./$i ]; then + kill $(cat $i) + rm $i + fi + done +;; + 'restart') + $0 stop + $0 start +;; + *) + echo "Usage: athena-start { start | stop | restart }" +;; +esac diff --git a/changechase.diff b/changechase.diff new file mode 100644 index 00000000..1ef1575c --- /dev/null +++ b/changechase.diff @@ -0,0 +1,36 @@ +1002:Piou +1003:Piousse +1007:Little Blub +1010:Crocotree +1011:Plushroom Field +1012:Frostiana +1013:Pikpik +1014:CroconutMob +1017:Manana Tree +1019:PumpkinMob +1021:Dummy +1033:Clover Patch +1034:Pink Flower +1036:Mauve Plant +1037:Alizarin Plant +1038:Gamboge Plant +1039:Cobalt Plant +1045:Diamond Vein +1046:Gold Vein +1047:Iron Vein +1048:Coal Vein +1051:Ruby Vein +1052:Emerald Vein +1053:Sapphire Vein +1054:Topaz Vein +1055:Amethyst Vein +1056:Beehive +1059:Yellow Tulip +1060:Yellow Rose +1061:Blue Rose +1062:Red Rose +1069:Gem Veinbloc +1070:Gold Veinbloc +1071:Coal Veinbloc +1105:Thief Slime +1107:Burning Dummy diff --git a/conf/atcommand.conf b/conf/atcommand.conf new file mode 100644 index 00000000..722dfe35 --- /dev/null +++ b/conf/atcommand.conf @@ -0,0 +1,91 @@ +/* Atcommands and charcommands configuration file */ + +/* The symbol that will be used to recognize commands. +You can set any one character except: + - control-characters (0x00-0x1f), + - '%' (party chat symbol) + - '$' (guild chat symbol) + - '/' (client commands symbol) +atcommand_symbol represents @commands used locally. +charcommand_symbol represents #commands used on other players. +*/ + +atcommand_symbol : "@" +charcommand_symbol: "#" // We can use $ if this overlaps with ManaPlus + +/* Command aliases +You can define aliases for any command. Aliases work just like the original command. +Format is + : ["", ...] +*/ + +aliases: { + mobinfo: ["mi"] + iteminfo: ["ii"] + time: ["date", "serverdate", "servertime"] + tonpc: ["npc"] + autotrade: ["at"] + help: ["h"] + jumpto: ["goto", "warpto"] + mount: ["mountpeco"] + who: ["whois"] + npctalk: ["npctalkc"] + gvgon: ["gpvpon"] + gvgoff: ["gpvpoff"] + jobchange: ["job"] + load: ["return"] + warp: ["rura", "mapmove"] + dye: ["ccolor"] + hairstyle: ["hstyle"] + haircolor: ["hcolor"] + monster: ["spawn"] + blvl: ["lvup", "blevel", "baselvl", "baselvup", "baselevel", "baselvlup"] + jlvl: ["jlevel", "joblvl", "joblvup", "joblevel", "joblvlup"] + glvl: ["glevel", "guildlvl", "guildlvup", "guildlevel", "guildlvlup"] + allskill: ["allskills", "skillall", "skillsall"] + allstats: ["allstat", "statall", "statsall"] + ban: ["banish"] + unban: ["unbanish"] + unjail: ["discharge"] + homlevel: ["hlvl", "hlevel", "homlvl", "homlvup"] + homevolution: ["homevolve"] + mutearea: ["stfu"] + monsterignore: ["battleignore", "safe"] + raise: ["revive"] + kill: ["die"] + guildstorage: ["gstorage"] + accinfo: ["accountinfo"] + itemreset: ["clearinventory"] + channel: ["main"] + autoloottype: ["aloottype"] + camerainfo: ["setcamera", "viewpointvalue"] + tee: ["t"] + log: ["l"] + request: ["wgm"] +} + +/* List of commands that should not be logged at all */ +/* Add as many commands as you like */ +nolog: { + iteminfo: 1 + mobinfo: 1 + uptime: 1 + duel: 1 + accept: 1 + reject: 1 + noask: 1 + time: 1 + jailtime: 1 + email: 1 + rates: 1 + help: 1 + commands: 1 + charcommands: 1 + refresh: 1 + // Should we log @hugo and @linus? They're quite spammy +} + +/* Commands help file */ +help: { + @include "conf/map/help.txt" +} diff --git a/conf/battlegrounds.conf b/conf/battlegrounds.conf new file mode 100644 index 00000000..2b4184e1 --- /dev/null +++ b/conf/battlegrounds.conf @@ -0,0 +1,124 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= http://herc.ws/board/ +//==================================================== +//= http://herc.ws/board/topic/928-memory-slasher-may-30-patch/ +//==================================================== +//= Fields (TODO/INCOMPLETE) +//= arenas: ({ +//= //- allowedTypes defines what kind of applications the arena will accept, setting is not case-sensitive and is ok with whitespaces +//= allowedTypes: "Solo | Party" //Arena Accepts solo and party-type joins +//= allowedTypes: "guild|party" //Arena Accepts solo and guild-type joins +//= allowedTypes: "All" //Arena Accepts solo, party and guild-type joins +//= //- fillAnnounce (optional arena param) +//= }) +battlegrounds: ( +{ + /* feature is not complete */ + feature_off: true + /* character variable for global bg delay */ + global_delay_var: "BG_Delay_Tick" + /* how many seconds to consider a player "afk" and kick him out? */ + maximum_afk_seconds: 30 + + /* one can add as many as he wishes */ + /* for custom ones, need to edit "lua files/entryqueue/entryqueuelist.lua" [Ind/Hercules] */ + arenas: ({ + name: "Tierra Gorge" //must match the name in client files + event: "Tierra_BG2::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 3 + loss: 1 + draw: 1 + } + minPlayers: 6 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "Tierra_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "Flavius" //must match the name in client files + event: "start#bat_b01::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 9 + loss: 3 + draw: 3 + } + minPlayers: 2 /* minimum amount of players to start (DEBUG VALUE, CHANGE BACK) */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "Flavius_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 80 and up)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 5 + loss: 1 + draw: 1 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 60~79)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 60 + maxLevel: 79 + reward: {/* amount of badges awarded on each case */ + win: 2 + loss: 0 + draw: 1 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 59 and below)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 1 + maxLevel: 59 + reward: {/* amount of badges awarded on each case */ + win: 1 + loss: 0 + draw: 0 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + } + ) +}) diff --git a/conf/channels.conf.base b/conf/channels.conf.base new file mode 100644 index 00000000..f7bdad32 --- /dev/null +++ b/conf/channels.conf.base @@ -0,0 +1,76 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= http://herc.ws/board/ +//==================================================== +//================= More Information ================= +// http://herc.ws/board/topic/316-introducing-hercules-channel-system/ +//==================================================== +chsys: ( +{ + /* Default Channels (available on boot) */ + default_channels: { + /* channel_name : channel_messages_color */ + main: "Orange" /* Available as #main */ + support: "Blue" /* Available as #support */ + trade: "Red" /* Available as #trade */ + gm: "Red" + lang: "Green" + offtopic: "Cyan" /* Available as #offtopic */ + /* You may add as many channels as you like */ + } + /* Colors Available */ + colors: { + Default: "0xffffff" /* Custom channels use the first color listed unless a font is selected through @channel. */ + Red: "0xff0000" + Blue: "0x83cfe9" + Orange: "0xe57c00" + Cyan: "0x00b89d" + Yellow: "0xffff90" + Green: "0x28bf00" + Light_Green: "0x3dff98" + Normal: "0x00ff00" + /* As many colors as you like */ + } + /* Allow users to create their own (private) channels through @channels command? */ + /* (must also allow players to use @channels in groups.conf) */ + allow_user_channel_creation: true + + /* "map_local_channel" is a instanced channel unique to each map. */ + map_local_channel: true + map_local_channel_name: "map" /* Available as #map */ + map_local_channel_color: "Yellow" + map_local_channel_autojoin: true /* You can disable autojoin in specific maps through a mapflag or zone. */ + + /* "ally_channel" is a channel shared by all your guild allies */ + ally_channel_enabled: true + ally_channel_name: "ally" /* Available as #ally */ + ally_channel_color: "Green" + ally_channel_autojoin: true /* Will members autojoin to their respective #ally chats when they log-in? */ + + /* "irc_channel" is a special channel connected to a specific chat room in any irc network. */ + irc_channel_enabled: false + irc_channel_name: "irc" /* available as #irc */ + irc_channel_color: "Light_Green" + irc_channel_network: "irc.freenode.net:6667" /* network to connect to (:and port) */ + irc_channel_channel: "#themanaworld" /* channel in the network above to join */ + irc_channel_nick: "testbot" /* nick the bot will use */ + irc_channel_nick_pw: "" /* password to this nick (if any) to identify to nick server on the irc network */ + irc_channel_use_ghost: false /* whether to send a GHOST command to the nick server (requires irc_channel_nick_pw to be defined) */ + irc_channel_autojoin: true + irc_flood_protection_enabled: true /* Whether to enable anti-flood protection for outgoing messages */ + irc_flood_protection_rate: 1000 /* The delay between messages during anti-flood protection (milliseconds) */ + irc_flood_protection_burst: 3 /* The maximum number of messages that are sent at once burst size before triggering the anti-flood protection */ + + // @channel setopt MessageDelay + // Sets the maximum amount of message delay (in seconds) allowed for a channel. + // Default: 10 + // Max: 255 + channel_opt_msg_delay: 10 +} +) diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf new file mode 100644 index 00000000..b8f914b8 --- /dev/null +++ b/conf/char/char-server.conf @@ -0,0 +1,255 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Character Server configuration file. +//========================================================================= + +char_configuration: { + @include "conf/global/console.conf" + @include "conf/import/sql_connection.conf" + + // Server name, use alternative character such as ASCII 160 for spaces. + // NOTE: Do not use spaces or any of these characters which are not allowed in + // Windows filenames \/:*?"<>| + // ... or else guild emblems won't work client-side! + server_name: "Hercules" + + // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters) + wisp_server_name: "Server" + + // Guild earned exp modifier. + // Adjusts taxed exp before adding it to the guild's exp. For example, + // if set to 200, the guild receives double the player's taxed exp. + guild_exp_rate: 100 + + // Information related to inter-server behavior + inter: { + // Server Communication username and password. + userid: "s1" + passwd: "p1" + + // Login Server IP + // The character server connects to the login server using this IP address. + // NOTE: This is useful when you are running behind a firewall or are on + // a machine with multiple interfaces. + //login_ip: "127.0.0.1" + + // The character server listens on the interface with this IP address. + // NOTE: This allows you to run multiple servers on multiple interfaces + // while using the same ports for each server. + //bind_ip: "127.0.0.1" + + // Character Server IP + // The IP address which clients will use to connect. + // Set this to what your server's public IP address is. + //char_ip: "127.0.0.1" + + @include "conf/import/ports.conf" + } + + // Connection permission + permission: { + // Enable or disable creation of new characters. + enable_char_creation: true + + // Display (New) in the server list. + display_new: false + + // Maximum users able to connect to the server. + // Set to 0 to disable users to log-in. (-1 means unlimited) + max_connect_user: -1 + + // Group ID that is allowed to bypass the server limit of users. + // Default: -1 = nobody (there are no groups with ID < 0) + // See: conf/groups.conf + gm_allow_group: -1 + + // Type of server. + // No functional side effects at the moment. + // Displayed next to the server name in the client. + // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P + server_type: 0 + + // Minimum Group ID to join char server when it is on char_server_type 1 (maintenance) + maintenance_min_group_id: 99 + } + + // Player-related configuration + player: { + new: { + // Start point (Renewal) + start_point_re: { + map: "000-0" + x: 22 + y: 24 + } + + // Starting items for new characters + //{ + // id: Item id + // amount: Item amount + // loc: Item position, same as in item_db if you want the item to be equipped, otherwise 0 (optional) + // stackable: Is stackable? (not stackable item types: weapon, armor, egg, pet armor) + //}, + start_items: ( +// { +// id: 1201 // Knife +// amount: 1 +// loc: 2 +// stackable: false +// }, +// { +// id: 2301 // Cotton_Shirt +// amount: 1 +// loc: 16 +// stackable: false +// }, + ) + + // Starting zeny + zeny: 0 + } + + // Character name configuration + name: { + // Name used for unknown characters + unknown_char_name: "Unknown" + + // Allow or not identical name for characters but with a different case (upper/lower): + // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed + name_ignoring_case: false + + // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are: + // NOTE: Applies to character, party and guild names. + // 0: no restriction (default) + // 1: only letters/symbols in 'name_letters' option. + // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles. + name_option: 1 + + // Set the letters/symbols that you want use with the 'char_name_option' option. + // Note: Don't add spaces unless you mean to add 'space' to the list. + name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" + + // Block renaming if character is in a guild or a party? (BOOL) + // Athena: false Aegis: true + // This check is imposed by Aegis to avoid dead entries in databases and is not needed on Hercules, as we clear data properly + use_aegis_rename: false + } + + deletion: { + // Restrict character deletion by BaseLevel + // 0: no restriction (players can delete characters of any level) + // -X: you can't delete chars with BaseLevel <= X + // Y: you can't delete chars with BaseLevel >= Y + // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel) + level: 0 + + // Amount of time in seconds by which the character deletion is delayed. + // Default: 86400 (24 hours) + // NOTE: Requires client 2010-08-03aragexeRE or newer. + delay: 86400 + + // Block deletion if character is inside a guild or a party? (BOOL) + // default: false official: true + // !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!! + use_aegis_delete: false + } + + // Size for the fame-lists + fame: { + alchemist: 10 + blacksmith: 10 + taekwon: 10 + } + } + + database: { + // How often should server save all guild related information? (character save interval is defined on the map config) + // (in seconds) + autosave_time: 60 + + // What folder the DB files are in (abra_db.txt, etc.) + db_path: "db" + + // To log the character server? + log_char: true + } + + //================================================================== + // Pincode system + //================================================================== + pincode: { + // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse + // NOTE: Requires client 2011-03-09aragexeRE or newer. + // Default: true + enabled: false + + // Request Pincode only on login or on everytime char select is accessed? + // 0: only on login (default) + // 1: everytime the char select window is accessed + request: 0 + + // How often does a user have to change his pincode? + // Default: 0 + // 0: never + // X: every X minutes + change_time: 0 + + // How often can a user enter the wrong password? + // Default: 3 + // Maximum allowed by clientside: 3 + max_tries: 3 + + // Whether or not to refuse pincodes that are blacklisted + // Default: true + check_blacklisted: true + + // Blacklisted pincodes + blacklist: [ + "0000", + "1111", + "2222", + "3333", + "4444", + "5555", + "6666", + "7777", + "8888", + "9999", + "0123", + "1234", + "2345", + "3456", + "4567", + "5678", + "6789", + "7890" + ] + } + +} + +import: "conf/import/char-server.conf" diff --git a/conf/clans.conf b/conf/clans.conf new file mode 100644 index 00000000..82211fce --- /dev/null +++ b/conf/clans.conf @@ -0,0 +1,48 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2017-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Clan System local configuration file. +//========================================================================= + +clan_configuration: { + + // Maximum players for each clan + MaxMembers: 500 + + // Maximum alliances/oppositions for each clan + MaxRelations: 6 + + // how many hours player must be inactive to be kicked? + // Disabled: 0 + // Official: 336 (2 weeks) + InactivityKickTime: 336 + + // Checks each clan member every 'InactivityCheckTime' hour(s) (default 24h, minimum value of 1h) + InactivityCheckTime: 24 + + // Clan Database + @include "db/clans.conf" +} diff --git a/conf/common/inter-server.conf b/conf/common/inter-server.conf new file mode 100644 index 00000000..6db189a7 --- /dev/null +++ b/conf/common/inter-server.conf @@ -0,0 +1,128 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Inter Server configuration file. +//========================================================================= +// Settings that are shared by more than one of the main servers +//========================================================================= + +inter_configuration: { + // Level range for sharing within a party + party_share_level: 15 // FIXME: Split RE and pre-RE + + // Log configuration + log: { + // Log Inter Connections, etc.? + log_inter: true + + // Inter Log Filename + inter_log_filename: "log/inter.log" + + // Log database SQL connection + @include "conf/import/sql_connection.conf" + } + + mysql_reconnect: { + // == MySQL Reconnect Settings + // =========================== + // - mysql_reconnect_type + // - 1: when mysql disconnects during runtime, the server tries to reconnect mysql_reconnect_count times and, + // -- if unsuccessful, the server is shut down + // - 2: when mysql disconnects during runtime it tries to reconnect indefinitely + type: 2 + + // - mysql_reconnect_count + // - number of reconnect attempts the server should do when the database disconnects during runtime + // - only used when mysql_reconnect_type is 1 + count: 1 + } + + // ALL MySQL Database Table names + // DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL + // this is meant for people who KNOW their stuff, and for some reason want to change their + // database layout. [CLOWNISIUS] + database_names: { + account_db: "login" + login_db: "loginlog" + ipban_table: "ipbanlist" + char_db: "char" + interlog_db: "interlog" + ragsrvinfo_db: "ragsrvinfo" + registry: { + acc_reg_num_db: "acc_reg_num_db" + acc_reg_str_db: "acc_reg_str_db" + char_reg_str_db: "char_reg_str_db" + char_reg_num_db: "char_reg_num_db" + global_acc_reg_num_db: "global_acc_reg_num_db" + global_acc_reg_str_db: "global_acc_reg_str_db" + map_reg_num_db: "map_reg_num_db" + map_reg_str_db: "map_reg_str_db" + } + pc: { + hotkey_db: "hotkey" + scdata_db: "sc_data" + cart_db: "cart_inventory" + achievement_db: "char_achievements" + inventory_db: "inventory" + charlog_db: "charlog" + storage_db: "storage" + skill_db: "skill" + memo_db: "memo" + party_db: "party" + pet_db: "pet" + friend_db: "friends" + mail_db: "mail" + auction_db: "auction" + quest_db: "quest" + homunculus_db: "homunculus" + skill_homunculus_db: "skill_homunculus" + mercenary_db: "mercenary" + mercenary_owner_db: "mercenary_owner" + elemental_db: "elemental" + account_data_db: "account_data" + } + guild: { + main_db: "guild" + alliance_db: "guild_alliance" + castle_db: "guild_castle" + expulsion_db: "guild_expulsion" + member_db: "guild_member" + skill_db: "guild_skill" + position_db: "guild_position" + storage_db: "guild_storage" + } + autotrade_merchants_db: "autotrade_merchants" + autotrade_data_db: "autotrade_data" + npc_market_data_db: "npc_market_data" + npc_barter_data_db: "npc_barter_data" + npc_expanded_barter_data_db: "npc_expanded_barter_data" + } + + // Show warning in console if some string translation missing for selected language +} +warn_missing_translation: false + +import: "conf/import/inter-server.conf" diff --git a/conf/common/map-index.conf b/conf/common/map-index.conf new file mode 100644 index 00000000..b3a1b4e8 --- /dev/null +++ b/conf/common/map-index.conf @@ -0,0 +1,34 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Map Index configuration file. +//========================================================================= + +mapindex_configuration: { + // Full path to the map_index.txt file + // Default: db/map_index.txt + file_path: "db/map_index.txt" +} diff --git a/conf/common/socket.conf b/conf/common/socket.conf new file mode 100644 index 00000000..eb7d494b --- /dev/null +++ b/conf/common/socket.conf @@ -0,0 +1,106 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Sockets configuration file +//========================================================================= + +socket_configuration: { + // How long can a socket stall before closing the connection (in seconds)? + stall_time: 60 + + // Display debug reports (When something goes wrong during the report, the report is saved.) + debug: false + + // Linux/Epoll: Maxmimum Events per cycle + // Default Value: + // (Maxmimum Supported Connections)/2 + // NOTE: this controls the maximum collected socket-events per-cycle (call to epoll_wait()) + // for example settings this to 32 will allow up to 32 events (incomming data/new connections + // per server-cycle. + // NOTE: Recommended Settings is at least half the maxmimum supported connections + // Settings this to a lower value, may cause lags/delays + // Depending on available CPU Time + // NOTE: This Setting is only available on Linux when build using EPoll as event dispatcher! + // + //epoll_maxevents: 1024 + + // Maximum allowed size for clients packets in bytes. + // Default Values: + // 24576 (Clients < 20131223) + // 65535 (Clients >= 20131223) + // NOTE: To reduce the size of reported packets, lower the values of defines, which + // have been customized, such as MAX_STORAGE, MAX_GUILD_STORAGE or MAX_CART. + // NOTE: Do not modify this setting, unless the client has been modified to support + // larger packets. The client will crash, when it receives larger packets. + //socket_max_client_packet: 65535 + + //----- IP Rules Settings ----- + ip_rules: { + // If IP's are checked when connecting. + // This also enables DDoS protection. + enable: true + + // Order of the checks + // deny,allow : Checks deny rules, then allow rules. Allows if no rules match. + // allow,deny : Checks allow rules, then deny rules. Allows if no rules match. + // mutual-failure : Allows only if an allow rule matches and no deny rules match. + // (default is deny,allow) + order: "deny,allow" + + // IP rules + // allow : Accepts connections from the ip range (even if flagged as DDoS) + // deny : Rejects connections from the ip range + // The rules are processed in order, the first matching rule of each list (allow and deny) is used + allow_list: ( + //"127.0.0.1", + //"192.168.0.0/16", + //"10.0.0.0/255.0.0.0", + //"all", + ) + deny_list: ( + //"127.0.0.1", + ) + } + + //---- DDoS Protection Settings ---- + // If ddos.count connection request are made within ddos.interval ms, it assumes it's a DDoS attack + ddos: { + // Consecutive attempts interval (msec) + // (default is 3000 msecs, 3 seconds) + interval: 3000 //ddos_interval + + // Consecutive attempts trigger + // (default is 5 attemps) + count: 5 //ddos_count + + // The time interval after which the threat of DDoS is assumed to be gone (ms) + // After this amount of time, the DDoS restrictions are lifted. + // (default is 600000ms, 10min) + autoreset: 600000 //ddos_autoreset + } +} + +import: "conf/import/socket.conf" diff --git a/conf/global/console.conf b/conf/global/console.conf new file mode 100644 index 00000000..57d58b2f --- /dev/null +++ b/conf/global/console.conf @@ -0,0 +1,67 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Server Console configuration file. +//========================================================================= +// This file affects how ALL server consoles work, unless explictly defined +// so in the server configuration file (See doc/global_configuration.txt +// for more information). +//========================================================================= + +console: { + // Time-stamp format which will be printed before all messages. + // Can at most be 20 characters long. + // Common formats: + // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format) + // %H:%M:%S (hour:minute:second, 24 hour format) + // %d/%b/%Y (day/Month/year) + // For full format information, consult the strftime() manual. + //timestamp_format: "[%d/%b %H:%M]" + + // If redirected output contains escape sequences (color codes) + stdout_with_ansisequence: false + + // Makes server output more silent by omitting certain types of messages: + // 1: Hide Information messages + // 2: Hide Status messages + // 4: Hide Notice Messages + // 8: Hide Warning Messages + // 16: Hide Error and SQL Error messages. + // 32: Hide Debug Messages + // Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) + console_silent: 0 + + // [CHAR] Display information on the console whenever characters/guilds/parties/pets are loaded/saved? + save_log: true + + // [MAP] Makes server log selected message types to a file in the /log/ folder + // 1: Log Warning Messages + // 2: Log Error and SQL Error messages. + // 4: Log Debug Messages + // Example: "console_msg_log: 7" logs all 3 kinds + // Messages logged by this overrides console_silent setting + console_msg_log: 7 +} diff --git a/conf/grf-files.txt b/conf/grf-files.txt new file mode 100644 index 00000000..6af05857 --- /dev/null +++ b/conf/grf-files.txt @@ -0,0 +1,12 @@ +//----------------------------------------- +// GRF Files +// Add as many as needed. +//----------------------------------------- +//grf: C:\Program Files\Gravity\RO\rdata.grf +//grf: C:\Program Files\Gravity\RO\data.grf + +//----------------------------------------- +// Data Directory +// Use the base folder, not the data\ path. +//----------------------------------------- +//data_dir: C:\Program Files\Gravity\RO\ diff --git a/conf/groups.conf b/conf/groups.conf new file mode 100644 index 00000000..4e57b899 --- /dev/null +++ b/conf/groups.conf @@ -0,0 +1,489 @@ +/* +Player groups configuration file +--------------------------------- + +This file defines "player groups" and their privileges. + +Each group has its id and name, lists of available commands and other +permissions, and a list of other groups it inherits from. + + +Group settings +-------------- + +Unique group number. The only required field. + + +Any string. If empty, defaults to "Group ". It is used in several @who +commands. + + +Equivalent of GM level, which was used in revisions before r15572. You can +set it to any number, but usually it's between 0 (default) and 99. Members of +groups with lower level can not perform some actions/commands (like @kick) on +members of groups with higher level. It is what script command getgmlevel() +returns. Group level can also be used to override trade restrictions +(db/item_trade.txt). + + +A group of settings + : +or + : [ , ] +First boolean value is for atcommand, second one for charcommand. If set to +true, group can use command. If only atcommand value is provided, false is +assumed for charcommand. If a command name is not included, false is assumed for +both atcommand and charcommand. +For a full list of available commands, see: doc/atcommands.txt. +Command names must not be aliases. + + +Boolean value. If true then all commands used by the group will be logged to +atcommandlog. If setting is omitted in a group definition, false is assumed. +Requires 'log_commands' to be enabled in 'conf/logs.conf'. + + +A group of settings + : +If a permission is not included, false is assumed. +For a full list of available permissions, see: doc/permissions.txt + + +A list of group names that given group will inherit commands and permissions +from. Group names are case-sensitive. + +Inheritance results +------------------- +Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and +recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed. + +Inheritance rules should not create cycles (eg Group 1 inherits from Group 2, +and Group inherits from Group 1 at the same time). Configuration with cycles is +considered faulty and can't be processed fully by server. + +Command or permission is inherited ONLY if it's not already defined for the +group. +If group inherits from multiple groups, and the same command or permission is +defined for more than one of these groups, it's undefined which one will be +inherited. + +Syntax +------ +This config file uses libconfig syntax: +http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files + +0: Player +1: Trusted Player + +20/21: Support (Trusted Player + Common) + +40/41: Developer (Support + DEV) + +50/51: Event Coordinator (Support + EVTC) + +60/61: Game Master (Support + GM) + +80/81: Community Coordinator (Support + DEV + EVTC + GM) + +99: Administrator (All Perms) + +NYI commands: +hairstyle and haircolor (use @debug-look) +snow, sakura, clouds, clouds2, fog, fireworks, leaves, clearweather +changesex (faulty) +misceffect (I don't understand) + +*/ + +groups: ( +{ + id: 0 /* group 0 is the default group for every new account */ + name: "Player" + level: 0 + inherit: ( /*empty list*/ ) + commands: { + help: true + commands: true + duel: true + accept: true + reject: true + invite: true + leave: true + noask: true // Autoreject duels + email: true + request: true + time: true + jailtime: true + rates: true + breakguild: true + changegm: true + // Bugfix-level commands + hominfo: true + refresh: true + } + permissions: { + /* without this basic permissions regular players could not + trade or party */ + can_trade: true + can_party: true + } +}, +// ===== Trusted Players and Bots +{ + id: 1 + name: "Trusted Player" + inherit: ( "Player" ) /* can do everything Players can and more */ + level: 1 + commands: { + // Information Commands + whogm: true + uptime: true + charcommands: true + exp: true + mobinfo: true + iteminfo: true + whodrops: true + homstats: true + whereis: true + tee: true + log: true + // Server Spam Limit commands + showexp: true + showzeny: true + showdelay: true + // Community Commands + channel: true + // Convenience Commands + autotrade: true + // KillSteal commands (???) + noks: true + } + log_commands: true + permissions: { + show_client_version: true + } +}, +// ===== Support +{ + id: 20 + name: "Support" + inherit: ( "Trusted Player" ) + level: 20 + commands: { + // Information Commands + version: true + where: [true, true] + who: true + who2: true + who3: true + whomap: true + whomap2: true + whomap3: true + users: true + mobsearch: true + idsearch: true + showmobs: true + skillid: true + // Movement Commands + tonpc: true + jumpto: true + warp: true + jump: true + slide: true + memo: true + save: true + load: true + hugo: true + linus: true + // Community Commands + broadcast: true + localbroadcast: true + hidenpc: true + shownpc: true + stats: [true, true] + refresh: [true, true] + // Moderation Commands + kick: true + mute: true + unmute: true + // Convenience Commands + monsterignore: true + autoloot: true + alootid: true + autoloottype: true + storage: true + mail: true + effect: true + } + log_commands: true + permissions: { + send_gm: true + receive_requests: true + view_equipment: true + } +}, +{ + id: 21 + name: "Support (Hidden)" + inherit: ( "Support" ) + level: 20 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Developer +{ + id: 40 + name: "Developer" + inherit: ( "Support" ) + level: 40 + commands: { + npcmove: true + day: true + night: true + gat: true + skilltree: true + heal: true + alive: true + loadnpc: true + unloadnpc: true + reloadnpc: true + delitem: true + refine: true + speed: true + itemreset: true + reset: true + mapinfo: true + } + log_commands: true + permissions: { + } +}, +{ + id: 41 + name: "Developer (Hidden)" + inherit: ( "Developer" ) + level: 40 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Event Coordinator +{ + id: 50 + name: "Event Coordinator" + inherit: ( "Support" ) + level: 50 + commands: { + fakename: true + hide: true + + // Community Commands + heal: [true, true] + alive: [true, true] + monster: [true, true] + monstersmall: [true, true] + monsterbig: [true, true] + summon: [true, true] + killmonster2: [true, true] + cleanarea: [true, true] + cleanmap: true + clone: [true, true] + slaveclone: [true, true] + evilclone: [true, true] + disguise: [true, true] + undisguise: [true, true] + pvpon: true + pvpoff: true + gvgon: true + gvgoff: true + npctalk: true + } + log_commands: true + permissions: { + } +}, +{ + id: 51 + name: "Event Coordinator (Hidden)" + inherit: ( "Event Coordinator" ) + level: 50 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Game Master +{ + id: 60 + name: "Game Master" + inherit: ( "Support" ) + level: 60 + commands: { + blvl: [true, true] + jlvl: [true, true] + str: [true, true] + agi: [true, true] + vit: [true, true] + int: [true, true] + dex: [true, true] + luk: [true, true] + allstats: true + hide: true + speed: [true, true] + guild: [true, true] + + // Moderation Commands + jailfor: true + jail: true + unjail: true + ban: true + block: true + unban: true + delitem: [true, true] + mutearea: true + reset: [true, true] + itemreset: [true, true] + dropall: [true, true] + storeall: [true, true] + accinfo: true + storagelist: [true, true] + cartlist: [true, true] + itemlist: [true, true] + + // Community Commands + heal: [true, true] + alive: [true, true] + slide: [true, true] + warp: [true, true] + killer: true + killable: true + pvpon: true + pvpoff: true + gvgon: true + gvgoff: true + cvcon: true + cvcoff: true + killmonster: [true, true] + killmonster2: [true, true] + recall: true + cleanmap: true + nuke: [true, true] + skillon: true + skilloff: true + raisemap: true + npctalk: true + + } + log_commands: true + permissions: { + who_display_aid: true + view_hpmeter: true + join_chat: true + kick_chat: true + hide_session: true + hack_info: true + } +}, +{ + id: 61 + name: "Game Master (Hidden)" + inherit: ( "Game Master" ) + level: 60 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Community Coordinator (GM/DEV) +{ + id: 80 + name: "Community Coordinator" + inherit: ( "Support", "Developer", "Event Coordinator", "Game Master" ) + level: 80 + commands: { + addwarp: true + refine: [true, true] + repairall: [true, true] + allowks: true + item: [true, true] + item2: [true, true] + itembound: [true, true] + itembound2: [true, true] + zeny: [true, true] + + // Community Commands + raise: true + partyrecall: true + guildrecall: true + doom: true + doommap: true + refreshall: true // Use with caution + effect: [true, true] + marry: [true, true] // Use with caution + divorce: true + + // Change status and options + displaystatus: [true, true] + option: [true, true] + partyoption: [true, true] + + // Moderation Commands + clearstorage: true + cleargstorage: true + recallall: true + breakguild: [true, true] + changeleader: [true, true] + + } + log_commands: true + permissions: { + any_warp: true + } +}, +{ + id: 81 + name: "Community Coordinator (Hidden)" + inherit: ( "Community Coordinator" ) + level: 80 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Administrator +// (There isn't a hidden admin yet) +{ + id: 99 + name: "Administrator" + level: 99 + inherit: ( "Community Coordinator" ) + commands: { + /* not necessary due to all_commands: true */ + } + log_commands: true + permissions: { + can_trade_bound: false + can_party: true + all_skill: false + all_equipment: true + skill_unconditional: false + use_check: true + use_changemaptype: true + all_commands: true + hchsys_admin: true + } +} +) diff --git a/conf/import-tmpl/battle.conf b/conf/import-tmpl/battle.conf new file mode 100644 index 00000000..ff05022c --- /dev/null +++ b/conf/import-tmpl/battle.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +battle_configuration: { + // See conf/map/battle.conf for details +} diff --git a/conf/import-tmpl/char-server.conf b/conf/import-tmpl/char-server.conf new file mode 100644 index 00000000..3162a31a --- /dev/null +++ b/conf/import-tmpl/char-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Character Server local configuration file. +//========================================================================= + +char_configuration: { + // See conf/char/char-server.conf for details +} diff --git a/conf/import-tmpl/inter-server.conf b/conf/import-tmpl/inter-server.conf new file mode 100644 index 00000000..9cd3932f --- /dev/null +++ b/conf/import-tmpl/inter-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Inter Server local configuration file. +//========================================================================= + +inter_configuration: { + // See conf/common/inter-server.conf +} diff --git a/conf/import-tmpl/login-server.conf b/conf/import-tmpl/login-server.conf new file mode 100644 index 00000000..c8f1f854 --- /dev/null +++ b/conf/import-tmpl/login-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Login Server local configuration file. +//========================================================================= + +login_configuration: { + // See conf/login/login-server.conf for details +} diff --git a/conf/import-tmpl/logs.conf b/conf/import-tmpl/logs.conf new file mode 100644 index 00000000..47e5a665 --- /dev/null +++ b/conf/import-tmpl/logs.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Log local configuration file. +//========================================================================= + +map_log: { + // See conf/map/logs.conf for details +} diff --git a/conf/import-tmpl/map-server.conf b/conf/import-tmpl/map-server.conf new file mode 100644 index 00000000..11e4356b --- /dev/null +++ b/conf/import-tmpl/map-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Map Server local configuration file. +//========================================================================= + +map_configuration: { + // See conf/map/map-server.conf for details +} diff --git a/conf/import-tmpl/msg_conf.txt b/conf/import-tmpl/msg_conf.txt new file mode 100644 index 00000000..e69de29b diff --git a/conf/import-tmpl/script.conf b/conf/import-tmpl/script.conf new file mode 100644 index 00000000..042644ff --- /dev/null +++ b/conf/import-tmpl/script.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Script local configuration file. +//========================================================================= + +script_configuration: { + // See conf/map/script.conf for details +} diff --git a/conf/import-tmpl/socket.conf b/conf/import-tmpl/socket.conf new file mode 100644 index 00000000..57806f21 --- /dev/null +++ b/conf/import-tmpl/socket.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Hercules Sockets local configuration file +//========================================================================= + +socket_configuration: { + // See conf/common/socket.conf for details. +} diff --git a/conf/login/login-server.conf b/conf/login/login-server.conf new file mode 100644 index 00000000..da759180 --- /dev/null +++ b/conf/login/login-server.conf @@ -0,0 +1,205 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Login Server configuration file. +//========================================================================= + +login_configuration: { + // Login-server's console configuration + @include "conf/global/console.conf" + + inter: { + // The login server listens on the interface with this IP address. + // NOTE: This allows you to run multiple servers on multiple interfaces + // while using the same ports for each server. + //bind_ip: "127.0.0.1" + + // Interval (in minutes) to execute a DNS/IP update. Disabled by default. + // Enable it if your server uses a dynamic IP which changes with time. + //ip_sync_interval: 10 + + @include "conf/import/ports.conf" + } + + log: { + // To log the login server? + // NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans. + log_login: true + + // Indicate how to display date in logs, to players, etc. + date_format: "%Y-%m-%d %H:%M:%S" + } + + // for packet version >= 20170726 + users_count: { + // if false, dont show any colored strings. + // if true, show special users count numbers for coloring char servers. + send_user_count_description: true + + // users counts for use different colors. + // below 'low' show green text + // below 'medium' show oragne text + // below 'high' show red text + // higher 'high' show purple text + low: 200 + medium: 500 + high: 1000 + } + + // Account engine configuration + account: { + // Can you use _M/_F to make new accounts on the server? + new_account: true + + // If new_account is enabled, minimum length to userid and passwords should be 4? + // Must be 'true' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs + new_acc_length_limit: true + + // Account registration flood protection system + // allowed_regs is the number of registrations allowed in time_allowed (in seconds) + allowed_regs: 1 + time_allowed: 10 + + // Starting additional sec from now for the limited time at creation of account + // -1: new account are created with UNlimited time (default value) + // 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time) + start_limited_time: -1 + + // Store passwords as MD5 hashes instead of plaintext ? + // NOTE: Will not work with clients that use + use_MD5_passwords: false + + // Account data engine storage configuration + @include "conf/import/sql_connection.conf" + + //================================================================== + // IP banning system + //================================================================== + ipban: { + enabled: true + + // Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60. + // NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop. + // Players will still be able to login if an ipban entry exists but the expiration time has already passed. + cleanup_interval: 60 + + // SQL connection settings + @include "conf/import/sql_connection.conf" + + // Dynamic password failure ipban system + dynamic_pass_failure: { + enabled: true + + // Interval in minutes between failed tries + // Only failed tries between this interval will be accounted when banning + ban_interval: 5 + + // How many failures before adding a temporary ban entry? + ban_limit: 7 + + // Duration of the ban in minutes + ban_duration: 5 + } + } // login_configuration.account.ipban + } // login_configuration.account + + permission: { + // Required account group id to connect to server. + // -1: disabled + // 0 or more: group id + group_id_to_connect: -1 + + // Minimum account group id required to connect to server. + // Will not function if group_id_to_connect config is enabled. + // -1: disabled + // 0 or more: group id + min_group_id_to_connect: -1 + + // Check The clientversion set in the clientinfo ? + check_client_version: false + + // What version we would allow to connect? (if check_client_version is enabled) + client_version_to_connect: 20 + + //================================================================== + // Client hash checking system + //================================================================== + // Note: see doc/md5_hashcheck.txt for more details. + hash: { + // Client MD5 hash check + // If turned on, the login server will check if the client's hash matches + // the value below, and will not connect tampered clients. + enabled: false + + // Client MD5 hashes + // The client with the specified hash can be used to log in by players with + // a group_id equal to or greater than the given value. + // If you specify 'disabled' as hash, players with a group_id greater than or + // equal to the given value will be able to log in regardless of hash (and even + // if their client does not send a hash at all.) + MD5_hashes: ( + //{ + // group_id: group id + // hash: client hash + //}, + //{ + // group_id: 0 + // hash: "113e195e6c051bb1cfb12a644bb084c5" + //}, + //{ + // group_id: 10 + // hash: "cb1ea78023d337c38e8ba5124e2338ae" + //}, + //{ + // group_id: 99 + // hash: "disabled" + //}, + ) + } // login_configuration.permission.hash + + DNS_blacklist: { + // DNS Blacklist Blocking + // If enabled, each incoming connection will be tested against the blacklists + // on the specified dnsbl_servers + enabled: false + + dnsbl_servers: ( + // Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists + "bl.blocklist.de", // IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc. + //"ircbl.ahbl.org", // AHBL (open proxies, compromised machines, comment spammers) + //"safe.dnsbl.sorbs.net", // All zones in dnsbl.sorbs.net except "recent" and "escalations" + //"sbl-xbl.spamhaus.org", // Spamhaus blacklist (spammers, open proxies) + "socks.dnsbl.sorbs.net", // Open SOCKS proxy servers + //"tor.ahbl.org", // Current tor relay and exit nodes + ) + } // login_configuration.DNS_blacklist + } // login_configuration.permission + +} + +update_server: "http://evol.gitlab.io/clientdata/" + +import: "conf/import/login-server.conf" diff --git a/conf/map/battle.conf b/conf/map/battle.conf new file mode 100644 index 00000000..f8c6b9a1 --- /dev/null +++ b/conf/map/battle.conf @@ -0,0 +1,88 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +//= Battle Configuration File +//========================================================================= + +battle_configuration: { + // General battle-related settings. + @include "conf/map/battle/battle.conf" + + // Settings specific to the client. + @include "conf/map/battle/client.conf" + + // General drop-related configs. + @include "conf/map/battle/drops.conf" + + // Experience rates, exp penalties, stats and max level settings. + @include "conf/map/battle/exp.conf" + + // GM levels, atcommands and hack-related configs. + @include "conf/map/battle/gm.conf" + + // Guild and WoE settings + @include "conf/map/battle/guild.conf" + + // Battleground settings + @include "conf/map/battle/battleground.conf" + + // Item/card-specific and crafting related options. + @include "conf/map/battle/items.conf" + + // Mob related configuration + @include "conf/map/battle/monster.conf" + + // Party related configuration + @include "conf/map/battle/party.conf" + + // Pet related configuration + @include "conf/map/battle/pet.conf" + + // Homunc related configuration + @include "conf/map/battle/homunc.conf" + + // Player specific settings + @include "conf/map/battle/player.conf" + + // Skill related settings + @include "conf/map/battle/skill.conf" + + // Status change related settings + @include "conf/map/battle/status.conf" + + // Feature control (on/off) settings + @include "conf/map/battle/feature.conf" + + // Different calculation limits + @include "conf/map/battle/limits.conf" + + // Anything else that didn't fit anywhere else. + // Includes duel, day/night, mute/manner, log settings. + @include "conf/map/battle/misc.conf" +} + + // Your custom config goes here. +import: "conf/import/battle.conf" diff --git a/conf/map/battle/battle.conf b/conf/map/battle/battle.conf new file mode 100644 index 00000000..290e1ee7 --- /dev/null +++ b/conf/map/battle/battle.conf @@ -0,0 +1,180 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Battle) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Who should have a baseatk value (makes str affect damage)? (Note 3) +enable_baseatk: 9 + +// Who can have perfect flee? (Note 3) +enable_perfect_flee: 1 + +// Who can have critical attacks? (Note 3) +// (Note that there are some skills that always do critical hit regardless of this) +enable_critical: 17 + +// Critical adjustment rate for non-players (Note 2) +mob_critical_rate: 100 +critical_rate: 100 + +// Should normal attacks give you a walk delay? (Note 3) +// If false, characters can move as soon as they start an attack (attack animation +// or walk animation may be omitted client-side, causing cropped attacks or +// monsters that teleport to you) +// Otherwise, the delay is equal to the 'attack animation' (amotion) +attack_walk_delay: 14 + +// Move-delay adjustment after being hit. (Note 2) +// The 'can't walk' delay after being hit is calculated as a percentage of the damage animation duration. +// NOTE: Only affects the normal delay from a single attack, not the delay added by the multihit_delay option below. +pc_damage_walk_delay_rate: 0 +damage_walk_delay_rate: 100 + +// Move-delay adjustment for multi-hitting attacks. +// When hit by a multi-hitting skill like Lord of Vermillion or Jupitel Thunder, characters will be +// unable to move for an additional "(number of hits -1) * multihit_delay" milliseconds. +// 80 is the setting that feels like Aegis (vs Sonic Blows) +// 230 is the setting that makes walkdelay last until the last hit (vs Jupitel thunder) +multihit_delay: 80 + +// Damaged delay rate for players (Note 2) +// (Setting to false/0 will be like always endure) +player_damage_delay_rate: 100 + +// Should race or element be used to consider someone undead? +// 0 = element undead +// 1 = race undead +// 2 = both (either one works) +undead_detect_type: 0 + +// Does HP recover if hit by an attribute that's same as your own? (Note 1) +// (Will not work in Renewal) +attribute_recover: false + +// What is the minimum and maximum hitrate of normal attacks? +min_hitrate: 5 +max_hitrate: 100 + +// Type of penalty that is applied to FLEE when more than agi_penalty_count monsters are targetting player +// 0 = no penalty is applied +// 1 = agi_penalty_num is reduced from FLEE as a % +// 2 = agi_penalty_num is reduced from FLEE as an exact amount +agi_penalty_type: 1 + +// When agi penalty is enabled, to whom it should apply to? (Note 3) +// By default, only players get the penalty. +agi_penalty_target: 1 + +// Amount of enemies required to be targetting player before FLEE begins to be penalized +agi_penalty_count: 3 + +// Amount of FLEE penalized per each attacking monster more than agi_penalty_count +agi_penalty_num: 10 + +// Type of penalty that is applied to both equipment and vit DEF when more than vit_penalty_count monsters are targetting player +// 0 = no penalty is applied +// 1 = vit_penalty_num is reduced from DEF as a % +// 2 = vit_penalty_num is reduced from DEF as an exact amount +vit_penalty_type: 1 + +// When vit penalty is enabled, to whom it should apply to? (Note 3) +// By default, only players get the penalty. +vit_penalty_target: 1 + +// Amount of enemies required to be targetting player before defense begins to be penalized +vit_penalty_count: 3 + +// Amount of VIT defense penalized per each attacking monster more than vit_penalty_count +vit_penalty_num: 5 + +// Use alternate method of DEF calculation for physical attacks. +// With 0, disabled (use normal def% reduction with further def2 reduction) +// At 1 or more defense is subtraction of (DEF* value). +// eg: 10 + 50 def becomes 0 + (10*type + 50) +weapon_defense_type: 0 + +// MDEF, same as above....(MDEF*value) +magic_defense_type: 0 + +// Change attacker's direction to face opponent on every attack? (Note 3) +// NOTE: On official servers knockback of some skills like Firewall is always based on the +// last direction walked. Even when attacking in a completely different direction, the +// knockback direction won't change, so e.g. if you walk north and then attack an enemy to +// the south you will still be knocked back to the south by Firewall. Immobile monsters +// will always be knocked back to the south as their default direction is north. +attack_direction_change: 0 + +// For those who is set, their innate attack element is "not elemental" +// (100% versus on all defense-elements) (Note 3) +// NOTE: This is the setting that makes it so non-players can hit for full +// damage against Ghost-type targets with normal attacks (eg: vs. Ghostring). +attack_attr_none: 14 + +// Rate at which equipment can break (base rate before it's modified by any skills) +// 1 = 0.01% chance. Default for official servers: 0 +equip_natural_break_rate: 0 + +// Overall rate of which your own equipment can break. (Note 2) +// This rate affects penalty breaking rate of skills such as power-thrust and your natural breaking rate +// (from equip_natural_break_rate). If a Sage's endow skill fails and this is above 0, the selected char's +// weapon will be broken. +equip_self_break_rate: 100 + +// Overall rate at which you can break target's equipment. (Note 2) +// This affects the behaviour of skills like acid terror and meltdown +equip_skill_break_rate: 100 + +// Do weapon attacks have a attack speed delay before actual damage is applied? (Note 1) +// NOTE: The official setting is true, even thought it degrades performance a bit. +delay_battle_damage: false + +// Are arrows/ammo consumed when used on a bow/gun? +// 0 = No +// 1 = Yes +// 2 = Yes even for skills that do not specify arrow consumption when said +// skill is weapon-based and used with ranged weapons (auto-guesses which +// skills should consume ammo when it's acquired via a card or plagiarize) +arrow_decrement: 1 + +// Should the item script bonus 'Autospell' check for range/obstacles before casting? +// Official behavior is false, setting this to true will make skills use their defined +// range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed. +// This setting also affects autospellwhenhit. +autospell_check_range: false + +// If both the attacker and the target are on the same tile, should the target be knocked back to the left? +// Official behavior is true, setting this to false will knock the target back behind the attacker. +knockback_left: true + +// Should the target be able of dodging damage by snapping away to the edge of the screen? +// Official behavior is false +snap_dodge: false diff --git a/conf/map/battle/battleground.conf b/conf/map/battle/battleground.conf new file mode 100644 index 00000000..08c7fcd8 --- /dev/null +++ b/conf/map/battle/battleground.conf @@ -0,0 +1,40 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Battlegrounds) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Flee penalty on BG grounds. +// NOTE: It's %, not absolute, so 20 is -20% of your total flee +bg_flee_penalty: 20 + +// Interval before updating the bg-member map mini-dots (milliseconds) +bg_update_interval: 1000 diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf new file mode 100644 index 00000000..2f281201 --- /dev/null +++ b/conf/map/battle/client.conf @@ -0,0 +1,240 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Client) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Whether to enable the official packet obfuscation support (good vs WPE) +// 0: disabled +// 1: optional (not recommended) -- identifies whether it is required +// 2: enabled (recommended) +packet_obfuscation: 0 + +// Minimum delay between whisper/global/party/guild messages (in ms) +// Messages that break this threshold are silently omitted. +min_chat_delay: 20 + +// Valid range of dyes and styles on the client. +min_hair_style: 0 +max_hair_style: 29 +min_hair_color: 0 +max_hair_color: 20 +min_cloth_color: 0 +max_cloth_color: 4 +min_body_style: 0 +max_body_style: 4 + +// When set to true, the damage field in packets sent from woe maps will be set +// to -1, making it impossible for GMs, Bots and Hexed clients to know the +// actual damage caused by attacks. (Note 1) +hide_woe_damage: true + +// "hair style" number that identifies pet. +// NOTE: The client uses the "hair style" field in the mob packet to tell them apart from mobs. +// This value is always higher than the max hair-style available in said client. +// Known values to work (all 2005 clients): +// older sakexes: 20 +// sakexe 0614: 24 +// sakexe 0628 (and later): 100 +pet_hair_style: 100 + +// Visible area size (how many squares away from a player can they see) +area_size: 14 + +// Chat area size (how many squares away from a player can they chat) +chat_area_size: 14 + +// Area which monster death packets should be sent to. +// This should be set to the farthest distance a player can reach in 250ms +// after a monster dies. +// Setting it to (area_size + 18) (18 being the range of Monk's Snap skill) +// should be a great value +dead_area_size: 32 + +// Maximum walk path (how many cells a player can walk going to cursor) +// default: 17(official) +max_walk_path: 17 + +// Maximum allowed 'level' value that can be sent in unit packets. +// Use together with the aura_lv setting to tell when exactly to show the aura. +// NOTE: You also need to adjust the client if you want this to work. +// NOTE: Default is 99. Values above 127 will probably behave incorrectly. +// NOTE: If you don't know what this does, don't change it!!! +max_lv: 99 + +// Level required to display an aura. +// NOTE: This assumes that sending max_lv to the client will display the aura. +// NOTE: aura_lv must not be less than max_lv. +// Example: If max_lv is 99 and aura_lv is 150, characters with level 99~149 +// will be sent as being all level 98, and only characters with level +// 150 or more will be reported as having level 99 and show an aura. +aura_lv: 99 + +// Units types affected by max_lv and aura_lv settings. (Note 3) +// Note: If an unit type, which normally does not show an aura, is +// set it will obtain an aura when it meets the level requirement. +// Default: 0 (none) +client_limit_unit_lv: 0 + +// Will tuxedo and wedding dresses be shown when worn? (Note 1) +wedding_modifydisplay: false + +// Save Clothes color. (This will degrade performance) (Note 1) +save_clothcolor: true + +// Save body styles? (Note 1) +save_body_style: true + +// Do not display cloth colors for the wedding costume? +// Note: Both save_clothcolor and wedding_modifydisplay have to be enabled +// for this option to take effect. Set this to true if your cloth palettes +// pack doesn't has wedding palettes (or has less than the other jobs) +wedding_ignorepalette: false + +// Do not display cloth colors for the Xmas costume? +// Set this to true if your cloth palettes pack doesn't has Xmas palettes (or has less than the other jobs) +xmas_ignorepalette: false + +// Do not display cloth colors for the Summer costume? +// Set this to true if your cloth palettes pack doesn't has Summer palettes (or has less than the other jobs) +summer_ignorepalette: false + +// Do not display cloth colors for the Hanbok costume? +// Set this to true if your cloth palettes pack doesn't has Hanbok palettes (or has less than the other jobs) +hanbok_ignorepalette: false + +// Do not display cloth colors for the Oktoberfest costume? +// Set this to true if your cloth palettes pack doesn't has Oktoberfest palettes (or has less than the other jobs) +oktoberfest_ignorepalette: false + +// Do not display cloth colors for the Summer 2 costume? +// Set this to true if your cloth palettes pack doesn't has Summer 2 palettes (or has less than the other jobs) +summer2_ignorepalette: false + +// Show Hercules version to users when the login? +display_version: false + +// When affected with the "Hallucination" status effect, send the effect to client? (Note 1) +// Note: Set to false if the client lags due to the "Wavy" screen effect. +display_hallucination: true + +// Set this to 1 if your client supports status change timers and you want to use them +// Clients from 2009 onward support this +display_status_timers: true + +// Randomizes the dice emoticon server-side, to prevent clients from forging +// packets for the desired number. (Note 1) +client_reshuffle_dice: true + +// Sorts the character and guild storage before it is sent to the client. +// Official servers do not sort storage. (Note 1) +// NOTE: Enabling this option degrades performance. +client_sort_storage: false + +// Duration of client's self mute in minutes. +// Note: Do not enable this, if you enabled commands for players, +// because the client sees multiple commands in succession as spam. +// Default: 0 (means disabled) +client_accept_chatdori: 0 + +// Limits use of blank (transparent) pixels in guild emblems to a set +// percentage of the total. +// Official servers do not enforce this technically to date, but some disallow +// use of blank emblems in their rules. (Note 2) +// A value of 100 (allowing 100% blank pixels) disables this check. +// NOTE: Enabling this option slightly degrades performance. +client_emblem_max_blank_percent: 100 + +// Show the MVP EXP reward message for clients 2013-12-23cRagexe and newer? (Note 1) +// kRO removed the packet and this re-enables the message. +// Official: false. +mvp_exp_reward_message: false + +// Displays the same HP value as official servers do when a character is dead. +// (Note 1) +// On official servers, HP are never displayed as 0, but when dead, they +// display the value that will be shown after resurrection (50% HP for novice +// classes, 1 HP for other classes). Athena servers, instead, show the real +// value (0 when dead), to avoid confusion. +// Note: this is only a visual setting, and the server will internally handle +// it as 0 regardless of this. This means that scripts will know that the +// character has 0 HP when dead. +// Default: true (Official behavior) +display_fake_hp_when_dead: false + +// Send ping timer +// For clients 20190320 Re+ +// Interval in seconds for each timer invoke. +ping_timer_inverval: 30 + +// Send packets timeout in seconds before ping packet can be sent. +// For clients 20190320 Re+ +ping_time: 20 + +// Drop or not connection after client send disconnect request packet +// Official is false +drop_connection_on_quit: true + +// When to display the rate modifier messages? +// 0x0 - Never display rate modifier messages. +// 0x1 - Display rate modifier messages upon login. +// 0x2 - Display rate modifier messages upon map change. +// 0x4 - Display rate modifier messages upon teleporting (regardless of changing maps). +// Default: 0x1 (Official behavior.) +display_rate_messages: 0x1 + +// When to display the configuration messages and which? (Note 3) +// +// Flags for when to display the configuration messages: +// 0x000 - Never display configuration messages. +// 0x001 - Display configuration messages upon login. (Default. Should always be set.) +// 0x002 - Display configuration messages upon map change. +// 0x004 - Display configuration messages upon teleporting (regardless of changing maps). +// +// Flags for which configuration messages are displayed: +// 0x010 - Character's party invitation state. (Default.) +// 0x020 - Character's view equipment state. (Default.) +// 0x040 - Character's Urgent Call state. (Default.) +// 0x080 - Character's pet auto-feed state. (Default.) +// 0x100 - Character's homunculus auto-feed state. (Default.) +// +// Default: 0x1F1 (Official behavior.) +display_config_messages: 0x1F1 + +// When to display the overweight messages? +// 0x0 - Never display overweight messages. +// 0x1 - Display overweight messages upon login. (Default.) +// 0x2 - Display overweight messages upon map change. (Default.) +// Default: 0x3 (Official behavior.) +display_overweight_messages: 0x3 + +// Show tip of the day window upon login? +show_tip_window: true diff --git a/conf/map/battle/drops.conf b/conf/map/battle/drops.conf new file mode 100644 index 00000000..d37aba45 --- /dev/null +++ b/conf/map/battle/drops.conf @@ -0,0 +1,157 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Drops) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// If an item is dropped, does it go straight into the users inventory? (Note 1) +item_auto_get: false + +// How long does it take for an item to disappear from the floor after it is dropped? (in milliseconds) +flooritem_lifetime: 60000 + +// Grace time during which only the person who did the most damage to a monster can get the item? (in milliseconds) +item_first_get_time: 3000 + +// Grace time during which only the first and second person who did the most damage to a monster can get the item? (in milliseconds) +// (Takes effect after item_first_get_time elapses) +item_second_get_time: 1000 + +// Grace time during which only the first, second and third person who did the most damage to a monster can get the item? (in milliseconds) +// (Takes effect after the item_second_get_time elapses) +item_third_get_time: 1000 + +// Grace time to apply to MvP reward items when the Most Valuable Player can't get the prize item and it drops on the ground? (in milliseconds) +mvp_item_first_get_time: 10000 + +// Grace time for the first and second MvP so they can get the item? (in milliseconds) +// (Takes effect after mvp_item_first_get_time elapses) +mvp_item_second_get_time: 10000 + +// Grace time for the first, second and third MvP so they can get the item? (in milliseconds) +// (Takes effect after mvp_item_second_get_time elapses) +mvp_item_third_get_time: 2000 + +// Item drop rates (Note 2) + +// The rate the common items are dropped (Items that are in the ETC tab, besides card) +item_rate_common: 100 +item_rate_common_boss: 100 +item_drop_common_min: 1 +item_drop_common_max: 10000 + +// The rate healing items are dropped (items that restore HP or SP) +item_rate_heal: 100 +item_rate_heal_boss: 100 +item_drop_heal_min: 1 +item_drop_heal_max: 10000 + +// The rate at which usable items (in the item tab) other then healing items are dropped. +item_rate_use: 100 +item_rate_use_boss: 100 +item_drop_use_min: 1 +item_drop_use_max: 10000 + +// The rate at which equipment is dropped. +item_rate_equip: 100 +item_rate_equip_boss: 100 +item_drop_equip_min: 1 +item_drop_equip_max: 10000 + +// The rate at which cards are dropped +item_rate_card: 100 +item_rate_card_boss: 100 +item_drop_card_min: 1 +item_drop_card_max: 10000 + +// The rate adjustment for the MVP items that the MVP gets directly in their inventory +item_rate_mvp: 100 +item_drop_mvp_min: 1 +item_drop_mvp_max: 10000 + +// The rate adjustment for card-granted item drops. +item_rate_adddrop: 100 +item_drop_add_min: 1 +item_drop_add_max: 10000 + +// Rate adjustment for Treasure Box drops (these override all other modifiers) +item_rate_treasure: 100 +item_drop_treasure_min: 1 +item_drop_treasure_max: 10000 + +// Use logarithmic drops? (Note 1) +// Logarithmic drops scale drop rates in a non-linear fashion using the equation +// Droprate(x,y) = x * (5 - log(x)) ^ (ln(y) / ln(5)) +// Where x is the original drop rate and y is the drop_rate modifier (the previously mentioned item_rate* variables) +// Use the following table for an idea of how the rate will affect drop rates when logarithmic drops are used: +// Y: Original Drop Rate +// X: Rate drop modifier (eg: item_rate_equip) +// X\Y | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 +// -----+--------------------------------------------------------------- +// 50 | 0.01 0.01 0.03 0.06 0.11 0.30 0.62 1.30 3.49 7.42 15.92 +// 100 | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 +// 200 | 0.02 0.04 0.09 0.18 0.35 0.84 1.61 3.07 7.16 13.48 25.13 +// 500 | 0.05 0.09 0.22 0.40 0.74 1.65 3.00 5.40 11.51 20.00 33.98 +// 1000 | 0.10 0.18 0.40 0.73 1.30 2.76 4.82 8.28 16.47 26.96 42.69 +// 2000 | 0.20 0.36 0.76 1.32 2.28 4.62 7.73 12.70 23.58 36.33 53.64 +// 5000 | 0.50 0.86 1.73 2.91 4.81 9.11 14.45 22.34 37.90 53.91 72.53 +//10000 | 1.00 1.67 3.25 5.28 8.44 15.24 23.19 34.26 54.57 72.67 91.13 +//20000 | 2.00 3.26 6.09 9.59 14.83 25.49 37.21 52.55 77.70 97.95 100% +//50000 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48 100% 100% 100% +item_logarithmic_drops: false + +// Can the monster's drop rate become 0? (Note 1) +// Default: false (as in official servers). +drop_rate0item: false + +// Makes your LUK value affect drop rates on an absolute basis. +// Setting to 100 means each luk adds 0.01% chance to find items +// (regardless of item's base drop rate). +drops_by_luk: 0 + +// Makes your LUK value affect drop rates on a relative basis. +// Setting to 100 means each luk adds 1% chance to find items +// (So at 100 luk, everything will have double chance of dropping). +drops_by_luk2: 0 + +// Whether or not Marine Spheres and Floras summoned by Alchemist drop items? +// This setting has three available values: +// 0: Nothing drops. +// 1: Only marine spheres drop items. +// 2: All alchemist summons drop items. +alchemist_summon_reward: 1 + +// The maximum number of full iterations that server can do when dropping an item with options. +// When picking random options for a dropped item, it does lots of iterations to choose the option to be set, +// this value limits the number of iterations to avoid making the server hang in a long loop. +option_drop_max_loop: 10 + +// Does autoloot take into account player bonuses and penalties? (Note 1) +// If RENEWAL_DROP, Bubble Gum, or any other modifiers are active autoloot will take them into account. +autoloot_adjust: false diff --git a/conf/map/battle/exp.conf b/conf/map/battle/exp.conf new file mode 100644 index 00000000..0db88b71 --- /dev/null +++ b/conf/map/battle/exp.conf @@ -0,0 +1,114 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Experience) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: The max level of classes is stored in the exp table. +// See files db/exp.txt and db/exp2.txt to change them. +//========================================================================= + +// Rate at which exp. is given. (Note 2) +base_exp_rate: 100 + +// Rate at which job exp. is given. (Note 2) +job_exp_rate: 100 + +// Turn this on to allow a player to level up more than once from a kill. (Note 1) +multi_level_up: false + +// Setting this can cap the max experience one can get per kill specified as a +// % of the current exp bar. (Every 10 = 1.0%) +// For example, set it to 500 and no matter how much exp the mob gives, +// it can never give you above half of your current exp bar. +max_exp_gain_rate: 0 + +// Method of calculating earned experience when defeating a monster: +// 0 = uses damage given / total damage as damage ratio +// 1 = uses damage given / max_hp as damage ratio +// NOTE: Using type 1 disables the bonus where the first attacker gets +// his share of the exp doubled when multiple people attack the mob. +exp_calc_type: 0 + +// Experience increase per attacker. That is, every additional attacker to the +// monster makes it give this much more experience +// (eg: 5 people attack with 25 here, +(25*4)% -> +100% exp) +exp_bonus_attacker: 30 + +// Max number of attackers at which exp bonus is capped +// (eg: if set at 5, the max bonus is 4*bonus-per-char regardless of attackers) +exp_bonus_max_attacker: 10 + +// MVP bonus exp rate. (Note 2) +mvp_exp_rate: 100 + +// Rate of base/job exp given by NPCs. (Note 2) +quest_exp_rate: 100 + +// The rate of job exp. from using Heal skill (100 is the same as the heal amount, 200 is double. +// The balance of the exp. rate is best used with 5 to 10) +heal_exp: 0 + +// The rate of exp. that is gained by the process of resurrection, a unit is 0.01%. +// Experience calculations for the experience value * level difference of the person revived / 100 * resurrection_exp/10000 which the revived player has can be got. +resurrection_exp: 0 + +// The rate of job exp. when using discount and overcharge on an NPC +// (in 0.01% increments - 100 is 1%, 10000 is normal, 20000 is double.) +// The way it is calculated is (money received * skill lv) * shop_exp / 10000. +shop_exp: 0 + +// PVP exp. Do players get exp in PvP maps +// (Note: NOT exp from players, but from normal leveling) +pvp_exp: true + +// When a player dies, how should we penalize them? +// 0 = No penalty. +// 1 = Lose % of current level when killed. +// 2 = Lose % of total experience when killed. +death_penalty_type: 1 + +// Base exp. penalty rate (Each 100 is 1% of their exp) +death_penalty_base: 100 + +// Job exp. penalty rate (Each 100 is 1% of their exp) +death_penalty_job: 100 + +// When a player dies (to another player), how much zeny should we penalize them with? +// NOTE: It is a percentage of their zeny, so 100 = 1% +zeny_penalty: 0 + +// Will display experience gained from killing a monster. (Note 1) +disp_experience: false + +// Will display zeny earned (from mobs, trades, etc) (Note 1) +disp_zeny: false + +// Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1) +// If false, an equation will be used which preserves statpoints earned/lost +// through external means (ie: stat point buyers/sellers) +use_statpoint_table: true diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf new file mode 100644 index 00000000..b6d8e161 --- /dev/null +++ b/conf/map/battle/feature.conf @@ -0,0 +1,101 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Feature) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +//========================================================================= + +features: { + // Buying store (Note 1) + // Requires: 2010-04-27aRagexeRE or later + buying_store: true + + // Search stores (Note 1) + // Requires: 2010-08-03aRagexeRE or later + search_stores: true + + // Atcommand suggestions (Note 1) + // If one type incomplete atcommand, it will suggest the complete ones. + atcommand_suggestions: false + + // Banking (Note 1) + // Requires: 2013-07-24aRagexe or later + banking: true + + // 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. + auction: false + + // Roulette (Note 1) + // Requires: 2014-10-22bRagexe or later + // Disabled by default while test version is out; enable at your own risk -- the mean dev. + roulette: false + + // Enabled RoDEX (Note 1) + // Requires: 2015-05-13aRagexe or later + rodex: true + + // Allow usage of "Account Mail" box in RoDEX? + // Requires: 2016-03-16aRagexeRE or later + // This is disabled in client-side in some client versions + // Disabled by default + rodex_use_accountmail: false + + // Allow Homunculus autofeeding + // true: enable (Default) + // false: disable + enable_homun_autofeed: true + + // Allow Pet autofeeding + // true: enable (Default) + // false: disable + enable_pet_autofeed: true + + // Enable Attendance System for clients >= 2018-03-07bRagexeRE or 2018-04-04bRagexe or 2018-04-11aRagexe_zero + // true: enable (Default) + // false: disable + enable_attendance_system: true + + // Attendance End time in the format YearMonthDay + feature_attendance_endtime: 20180331 + + // Enable Achievement System + // true: enable (Default) + // false: disable + enable_achievement_system: false + + // Enable Refinery UI (requires 2016-10-05Ragexe/RE) + // true: enable (Default) + // false: disable + enable_refinery_ui: false + + // Replace Refine NPCs with Refinery UI + // true: enable + // false: disable (default) + replace_refine_npcs: false +} diff --git a/conf/map/battle/gm.conf b/conf/map/battle/gm.conf new file mode 100644 index 00000000..ea9548f7 --- /dev/null +++ b/conf/map/battle/gm.conf @@ -0,0 +1,66 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (GM) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity) +atcommand_spawn_quantity_limit: 100 + +// Maximum number of slave-clones that can be have by using the @slaveclone at command. (0 denotes unlimited quantity) +atcommand_slave_clone_limit: 25 + +// If false, commands require exact player name. If true, entering a partial +// name will work, as long as there's only one match from all players in the +// current map server. +partial_name_scan: false + +// (@) @allstats/@str/@agi/@vit/@int/@dex/@luk +// allow gms to bypass the maximum stat parameter? ( if true gm stats can go up to 32k ) +// default: false +atcommand_max_stat_bypass: false + +// Ban people that try trade dupe. +// Duration of the ban, in minutes (default: 5). To disable the ban, set 0. +ban_hack_trade: 0 + +// requires RENEWAL_DROP to be enabled (src/map/config/renewal.h) +// modifies @mobinfo to display the users' real drop rate as per renewal_drop formula +// modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level) +atcommand_mobinfo_type: 0 + +// Ignore warpable area configuration. +// Set the minimum group id to ignore invalid cells when warping. +// Default group is 2. Use 100 to disable this setting. +gm_ignore_warpable_area: 2 + +// Should atcommands trigger level up events for NPCs? (Note 1) +// This option is for @baselevelup and @joblevelup +// Default: false +atcommand_levelup_events: false diff --git a/conf/map/battle/guild.conf b/conf/map/battle/guild.conf new file mode 100644 index 00000000..204c295c --- /dev/null +++ b/conf/map/battle/guild.conf @@ -0,0 +1,73 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2020 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Guild) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// When making a guild, an Emperium is consumed? (Note 1) +guild_emperium_check: true + +// Maximum tax limit on a guild member. +guild_exp_limit: 50 + +// Maximum castles one guild can own (0 = unlimited) +guild_max_castles: 0 + +// How guild skills cooldown works? +// 0 - you relog with the same cooldown remaining as from when you logged out +// 1 - restarts the cooldown upon login to its full duration. +// 2 - like 1, but your logged off time is also decreased from the remaining cooldown (Aegis) +guild_skill_relog_delay: 2 + +// Flee penalty on gvg grounds. Official value is 20 (Note 2) +// NOTE: It's %, not absolute, so 20 is -20% of your total flee +gvg_flee_penalty: 20 + +// Can the 'Glory of Guild' skill be learnt in the Guild window, +// and does changing emblems require it? (Note 1) +// P.S: This skill is not implemented on official servers +require_glory_guild: false + +// Limit Guild alliances. Value is 0 to 3. +// If you want to change this value, clear the guild alliance table. +// Default is 3 +max_guild_alliance: 3 + +// When to display the guild notice? +// 0x0 - Never display guild notice. +// 0x1 - Display guild notice upon login. +// 0x2 - Display guild notice upon map change. +// 0x4 - Display guild notice upon teleporting (regardless of changing maps). +// Default: 0x7 (Official behavior.) +guild_notice_changemap: 0x7 + +// Can guild members invite/expel members inside guild castles in WoE/GvG? (Note 1) +// default: false +guild_castle_invite: false +guild_castle_expulsion: false diff --git a/conf/map/battle/homunc.conf b/conf/map/battle/homunc.conf new file mode 100644 index 00000000..f2ed4d8d --- /dev/null +++ b/conf/map/battle/homunc.conf @@ -0,0 +1,71 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Homunculus) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Homunculus setting (Note 3) +// Activates various 'quirks' that makes them behave unlike normal characters. +// 0x001: Can't be targetted by support skills (except for their master) +// 0x004: Mobs will always go after them instead of players until attacked +// 0x008: Copy their master's speed on spawn/map-change +// 0x010: They display luk/3+1 instead of their actual critical in the +// stat window (by default they don't crit) +// 0x020: Their Min-Matk is always the same as their max +// 0x040: Skill re-use delay is reset when they are vaporized. +hom_setting: 0x1D + +// The rate a homunculus will get friendly by feeding it. (Note 2) +homunculus_friendly_rate: 100 + +// Can you name a homunculus more then once? (Note 1) +hom_rename: false + +// Intimacy needed to use Evolved Vanilmirth's Bio Explosion +hvan_explosion_intimate: 45000 + +// Show stat growth to the owner when an Homunculus levels up +homunculus_show_growth: true + +// Does autoloot work, when a monster is killed by homunculus only? +homunculus_autoloot: true + +// Should homunculi Vaporize when Master dies? +homunculus_auto_vapor: true + +// Max level for regular Homunculus +homunculus_max_level: 99 + +// Max level for Homunculus S +homunculus_S_max_level: 150 + +// Bonus EXP homunculus received from master? (Note 2) +hom_bonus_exp_from_master: 10 diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf new file mode 100644 index 00000000..ef383e19 --- /dev/null +++ b/conf/map/battle/items.conf @@ -0,0 +1,137 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2020 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Items) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The highest value at which an item can be sold via the merchant vend skill. (in zeny) +vending_max_value: 1000000000 + +// Whether to allow buying from vending chars that are at their max. zeny limit. +// If set to true, the rest of the zeny above the char's capacity will disappear. +vending_over_max: true + +// Tax to apply to all vending transactions (eg: 10000 = 100%, 50 = 0.50%) +// When a tax is applied, the item's full price is charged to the buyer, but +// the vender will not get the whole price paid (they get 100% - this tax). +vending_tax: 200 + +// Show the buyer's name when successfully vended an item +buyer_name: true + +// Forging success rate. (Note 2) +weapon_produce_rate: 100 + +// Prepare Potion success rate. (Note 2) +potion_produce_rate: 100 + +// Do produced items have the maker's name on them? (Note 3) +// 0x01: Produced Weapons +// 0x02: Produced Potions +// 0x04: Produced Arrows +// 0x08: Produced Holy Water/Ancilla +// 0x10: Produced Deadly Potions +// 0x80: Other produced items. +produce_item_name_input: 0x03 + +// Is a monster summoned via dead branch aggressive? (Note 1) +dead_branch_active: true + +// Should summoned monsters check the player's base level? (dead branches) (Note 1) +// On officials this is false - monsters summoned from dead/bloody branches can be ANY level. +// Change to true to only summon monsters less than or equal to the player's base level. +random_monster_checklv: false + +// Can any player equip any item regardless of the gender restrictions +// NOTE: Wedding Rings and Whips/Musical Instruments will check gender regardless of setting. +ignore_items_gender: true + +// Item check? (Note 1) +// On map change it will check for items not tagged as "available" and +// auto-delete them from inventory/cart. +// NOTE: An item is not available if it was not loaded from the item_db or you +// specify it as unavailable in db/item_avail.txt +item_check: false + +// How much time must pass between item uses? +// Only affects the delay between using items, prevents healing item abuse. Recommended ~500 ms +// On officials this is 0, but it's set to 100ms as a measure against bots/macros. +item_use_interval: 100 + +// Required level of bNoMagicDamage before Status Changes are blocked (Golden Thief Bug card). +// For example, if left at 50. An item can give bNoMagicDamage,40; +// which reduces magic damage by 40%, but does not blocks status changes. +gtb_sc_immunity: 50 + +// Enable autospell card effects to stack? +// NOTE: Different cards that grant the same skill will both +// always work independently of each other regardless of setting. +autospell_stacking: false + +// Will disabled consumables (disabled by map_zone_db.conf) be consumed when trying to use them? +// Default: true (official) +item_restricted_consumption_type: true + +// Which item actions are allowed while interacting with NPC? (Note 3) +// Script commands 'enable_items/disable_items' will not be overridden. (See doc/script_commands.txt.) +// 0x0 (ITEMENABLEDNPC_NONE) - Don't allow any item actions. +// 0x1 (ITEMENABLEDNPC_EQUIP) - Allow changing equipment. +// 0x2 (ITEMENABLEDNPC_CONSUME) - Allow consuming usable items. +// Official RE: 0x1 (Default value.) +// Official Pre-RE: 0x3 +item_enabled_npc: 0x1 + +// Unequip the equipments that has disabled by map_zone_db.conf ? +// 0 : disabled equipments and cards are nullify (official) +// 1 : disabled equipments are unequip, disabled cards are nullify +// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip +// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2) +unequip_restricted_equipment: 0 + +// When unequip a bow with arrow equipped, it also unequip the arrow? +// Default: true (Official behavior, applies only in Renewal) +bow_unequip_arrow: true + +// How much should rental mounts increase a player's movement speed? (Note 2) +// Official: 25 (Default) +boarding_halter_speed: 25 + +// Allow to use items when the storage is open? +// Official: false (Default) +storage_use_item: false + +// Minimum item buy price at shop +// Default: 1 +min_item_buy_price: 1 + +// Minimum item sell price at shop +// Default: 0 +min_item_sell_price: 0 diff --git a/conf/map/battle/limits.conf b/conf/map/battle/limits.conf new file mode 100644 index 00000000..78498219 --- /dev/null +++ b/conf/map/battle/limits.conf @@ -0,0 +1,57 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Limits) Configuration File +//========================================================================= + +// basic attack limits +batk_min_limit: 0 +batk_max_limit: 65535 + +// magic attack limits + +matk_min_limit: 0 +matk_max_limit: 65535 + +// weapon attack limits +watk_min_limit: 0 +watk_max_limit: 65535 + +// flee limits +flee_min_limit: 1 +flee_max_limit: 32767 + +// flee2 limits +flee2_min_limit: 10 +flee2_max_limit: 32767 + +// critical attack limits +critical_min_limit: 10 +critical_max_limit: 32767 + +// hit limits +hit_min_limit: 1 +hit_max_limit: 32767 diff --git a/conf/map/battle/misc.conf b/conf/map/battle/misc.conf new file mode 100644 index 00000000..4aa273f8 --- /dev/null +++ b/conf/map/battle/misc.conf @@ -0,0 +1,173 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Misc) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// PK Server Mode. +// Turns entire server pvp(excluding towns). +// Experience loss is doubled if killed by another player. +// When players hunt monsters over 20 levels higher, they will receive 15% +// additional exp., and 25% chance of receiving more items. +// There is a nopvp.txt for setting up maps not to have pk on in this mode. +// Novices cannot be attacked and cannot attack. +// Normal pvp counter and rank display are disabled as well. +// Note: If pk_mode is set to 2 instead of 1, players will receive a +// manner penalty of 5 each time they kill another player (see manner_system +// config to adjust how this will affect players) +pk_mode: 0 + +// Manner/karma system configuration. Specifies how does negative manner +// (red no chat bubble) affects players (add as needed): +// 0: No penalties. +// 1: Disables chatting (includes whispers, party/guild msgs, etc) +// 2: Disables skill usage +// 4: Disables commands usage +// 8: Disables item usage/picking/dropping +// 16: Disables room creation (chatrooms and vending shops) +manner_system: 31 + +// For PK Server Mode. Change this to define the minimum level players can start PK-ing +pk_min_level: 55 + +// For PK Server Mode. It specifies the maximum level difference between +// players to let them attack each other. 0 disables said limit. +pk_level_range: 0 + +// Display skill usage in console? (for debug only) (default: false) (Note 3) +skill_log: false + +// Display battle log? (for debug only) (default: false) (Note 1) +battle_log: false + +// Display other stuff? (for debug only) (default: false) (Note 1) +etc_log: false + +// Do you want to debug warp points? If set to true, warp points will appear as flags.(Note 1) +// It will also run on start-up a warp-check to print out which warp points lead directly on +// top of on-touch npcs (which can lead to infinite loopback warping situations) +warp_point_debug: false + +// Choose if server begin with night (true) or day (false) +night_at_start: false + +// Define duration in msec of the day (default: 7200000 = 2 hours) +// Set to 0 to disable day cycle (but not @day GM command). +// Except 0, minimum is 60000 (1 minute) +day_duration: 0 + +// Define duration in msec of the night (default: 1800000 = 30 min) +// Set to 0 to disable night cycle (but not @night GM command). +// Except 0, minimum is 60000 (1 minute) +night_duration: 0 + +// Using duel on pvp-maps +duel_allow_pvp: false + +// Using duel on gvg-maps +duel_allow_gvg: false + +// Allow using teleport/warp when dueling +duel_allow_teleport: false + +// Autoleave duel when die +duel_autoleave_when_die: true + +// Delay between using @duel in seconds +duel_time_interval: 60 + +// Restrict duel usage to same map +duel_only_on_same_map: false + +// Determines max number of characters that can stack within a single cell. +// Official - Only affects the walking routines of characters, including monsters. +// If a unit stops walking and is on a cell with more than stack limit +// characters on it, it will walk to the closest free cell. +// Custom - This variation will make every full cell to be considered a wall. +// NOTE: For this setting to take effect you have to use a server compiled +// with Cell Stack Limit support (see src/map/map.h) +official_cell_stack_limit: 0 +custom_cell_stack_limit: 1 + +// If false while walking not check occupied cells +// If true while walking check occupied cells +check_occupied_cells: false + +// Allow autotrade only in map with autotrade flag? +// Set this to "false" will allow autotrade where no "autotrade" mapflag is set +// Set this to "true" to only allow autotrade on maps with "autotrade" mapflag +at_mapflag: false + +// Set this to the amount of minutes autotrade chars will be kicked from the server. +at_timeout: 0 + +// Auction system, fee per hour. Default is 12000 +auction_feeperhour: 12000 + +// Auction maximum sell price +auction_maximumprice: 500000000 + +// Minimum delay between each store search query in seconds. +searchstore_querydelay: 10 + +// Maximum amount of results a store search query may yield, before +// it is canceled. +searchstore_maxresults: 30 + +// Whether or not gaining and loosing of cash points is displayed (Note 1). +// Default: false +cashshop_show_points: false + +// Whether or not mail box status is displayed upon login. +// Default: 0 +// 0 = No +// 1 = Yes +// 2 = Yes, when there are unread mails +mail_show_status: 0 + +// Is monster transformation disabled during Guild Wars? +// If set to true, monster transforming is automatically removed/disabled when entering castles during WoE times +mon_trans_disable_in_gvg: false + +// Whether AegisName and SpriteName lookups are case sensitive +// Default: true (as in official servers) +// When this is set to true, item and monster lookups through atcommands and +// script commands will match AegisNames and SpriteNames only when the case +// matches. Display name lookups are not affected by this setting. +// Example: Given the two items: +// - { Id: 553, AegisName: "Bun", Name: "Bao" } +// - { Id: 6115, AegisName: "Bun_", Name: "Bun" } +// query when true when false +// @item bun # 6115 # 553 +// @item Bun # 553 # 553 +// @item Bao # 553 # 553 +// @item Bun_ # 6115 # 6115 +case_sensitive_aegisnames: true diff --git a/conf/map/battle/monster.conf b/conf/map/battle/monster.conf new file mode 100644 index 00000000..ac4ebba9 --- /dev/null +++ b/conf/map/battle/monster.conf @@ -0,0 +1,276 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Monster) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The HP rate of MVPs. (Note 2) +mvp_hp_rate: 100 + +// The HP rate of normal monsters (that is monsters that are not MVP's) (Note 2) +monster_hp_rate: 100 + +// The maximum attack speed of a monster +monster_max_aspd: 199 + +// Defines various mob AI related settings. (Note 3) +// 0x001: When enabled mobs will update their target cell every few iterations +// (normally they never update their target cell until they reach it while +// chasing) +// 0x002: Makes mob use their "rude attack" skill (usually warping away) if they +// are attacked and they can't attack back regardless of how they were +// attacked (eg: GrimTooth), otherwise, their rude attack" is only activated +// if they can't melee reach the target (eg: sniping) +// 0x004: If not set, mobs that can change target only do so when melee attacked +// (distance player/mob < 3), otherwise mobs may change target and chase +// ranged attackers. This flag also overrides the 'provoke' target. +// 0x008: When set, mobs scatter as soon as they lose their target. Use this mode +// to make it much harder to mob-train by hiding and collecting them on a +// single spot (ie: GrimTooth training) +// 0x010: If set, mob skills defined for friends will also trigger on themselves. +// 0x020: When set, the monster ai is executed for all monsters in maps that +// have players on them, instead of only for mobs who are in the vicinity +// of players. +// 0x040: When set, when the mob's target changes map, the mob will walk towards +// any npc-warps in it's sight of view (use with mob_warp below) +// 0x100: When set, a mob will pick a random skill from it's list and start from +// that instead of checking skills in orders (when unset, if a mob has too +// many skills, the ones near the end will rarely get selected) +// 0x200: When set, a mob's skill re-use delay will not be applied to all entries of +// the same skill, instead, only to that particular entry (eg: Mob has heal +// on six lines in the mob_skill_db, only the entry that is actually used +// will receive the delay). This will make monsters harder, especially MvPs. +// 0x400: Set this to make mobs have a range of 9 for all skills. Otherwise, they +// will obey the normal skill range rules. +// Example: 0x140 -> Chase players through warps + use skills in random order. +monster_ai: 0x001 + +// How often should a monster rethink its chase? +// 0: Every 100ms (MIN_MOBTHINKTIME) +// 1: Every cell moved +// 2: Every 2 cells moved +// 3: Every 3 cells moved (official) +// x: Every x cells moved +// Regardless of this setting, a monster will always rethink its chase if it has +// reached its target. Increase this value if you want to make monsters continue +// moving after they lost their target (hide, no line of sight, etc.). +monster_chase_refresh: 2 + +// Should mobs be able to be warped (add as needed)? +// 0: Disable. +// 1: Enable mob-warping when standing on NPC-warps +// 2: Enable mob-warping when standing on Priest Warp Portals +// 4: Disable warping when the target map is a 'nobranch' map. +mob_warp: 0 + +// If these are set above 0, they define the time (in ms) during which monsters +// will have their 'AI' active after all players have left their vicinity. +mob_active_time: 0 +boss_active_time: 0 + +// Mobs and Pets view-range adjustment (range2 column in the mob_db) (Note 2) +view_range_rate: 100 + +// Chase Range is the base minimum-chase that a mob gives before giving up +// (as long as the target is outside their field of view). This is the range3 +// column in the mob_db. (Note 2) +chase_range_rate: 100 + +// Allow monsters to be aggresive and attack first? (Note 1) +monster_active_enable: true + +// Should the mob_db names override the mob names specified in the spawn files? +// 0: No +// 1: always use the mob_db Name column (english mob name) +// 2: always use the mob_db JName column (original Kro mob name) +override_mob_names: 0 + +// Monster damage delay rate (Note 2) +// Setting to 0 is like they always have endure. +monster_damage_delay_rate: 100 + +// Looting monster actions. +// 0 = Monster will consume the item. +// 1 = Monster will not consume the item. +monster_loot_type: 0 + +// Chance of mob casting a skill (Note 2) +// Higher rates lead to 100% mob skill usage with no/few normal attacks. +// Set to 0 to disable mob skills. +mob_skill_rate: 100 + +// Mob skill delay adjust (Note 2) +// After a mob has casted a skill, there is a delay before being able to +// re-cast it. Note that skills with a delay of 0 can't be affected by this +// setting. +mob_skill_delay: 100 + +// Rate of monsters on a map, 200 would be twice as many as normal. (Note 2) +mob_count_rate: 100 + +// Respawn rate of monsters on a map. 50 would make mobs respawn twice as fast (half delay time) (Note 2) +// Note: This does not affects mobs with immediate respawn (most normal mobs) +mob_spawn_delay: 100 +plant_spawn_delay: 100 +boss_spawn_delay: 100 + +// Should mobs not spawn within the viewing range of players? +// 0 is disabled, otherwise it is the number of retries before giving up +// and spawning the mob within player-view anyway, unless the max (100) is used, +// in which case the mob will not be spawned, and it'll be retried again in +// 5 seconds. +// NOTE: This has no effect on mobs that always spawn on the very same cell +// (like ant eggs) except if you set it to the max. +no_spawn_on_player: 0 + +// Should spawn coordinates in the mob-spawn files be ignored? (Note 1) +// If set to true, all monsters will have a random respawn spot across the whole +// map regardless of what the mob-spawn file says. +force_random_spawn: false + +// Do summon slaves inherit the passive/aggressive traits of their master? +// 0: No, retain original mode. +// 1: Slaves are always aggressive. +// 2: Slaves are always passive. +// 3: Same as master's aggressive/passive state. +slaves_inherit_mode: 2 + +// Do summon slaves have the same walking speed as their master? +// NOTE: The default is 3 for official servers. +// 0: Never. +// 1: If the master can walk +// 2: If the master can't walk (even motionless mobs have a speed +// entry in their mob_db) +// 3: Always +slaves_inherit_speed: 3 + +// Will summoned monsters (alchemists, or @summon'ed monsters) attack cause a +// chance of triggering the master's autospell cards? (Note 1) +summons_trigger_autospells: true + +// When a mob is attacked by another monster, will the mob retaliate against the master of said mob instead of the mob itself? +// NOTE: Summoned mobs are both those acquired via @summon and summoned by Alchemists +retaliate_to_master: true + +// Whether mobs should change target temporarily when a skill triggers a counter mob skill (Note 1) +// eg: Mob attacks player B, and player A casts a skill C. If set to true and the +// mob has a skill that is triggered by skill C, then A will be the target of +// the skill, otherwise B will be targetted by the reaction skill. +mob_changetarget_byskill: false + +// If monster's class is changed will it fully recover HP? (Note 1) +monster_class_change_full_recover: true + +// Display some mob info next to their name? (add as needed) +// (does not works on guardian or Emperium) +// 1: Display mob HP (Hp/MaxHp format) +// 2: Display mob HP (Percent of full life format) +// 4: Display mob's level +show_mob_info: 0 + +// Zeny from mobs +zeny_from_mobs: false + +// Monsters level up (monster will level up each time a player is killed and they will grow stronger) +// Exp rate is calculated ((monster level-original monster level)*(exp*(mobs_level_up_exp rate/100))) +// NOTE: Does not apply to WoE Guardians. +mobs_level_up: false +mobs_level_up_exp_rate: 1 + +// Dynamic Mobs Options +// Use dynamic mobs? (recommended for small-medium sized servers) +dynamic_mobs: true + +// Remove Mobs even if they are hurt +mob_remove_damaged: true + +// Delay before removing mobs from empty maps (default 5 min = 300 secs) +mob_remove_delay: 300000 + +// Defines on who the mob npc_event gets executed when a mob is killed. +// Type 1: On the player that killed the mob (if killed by a non-player, resorts to type 0) +// Type 0: On the player that did the most damage to the mob. +// NOTE: This affects who gains the Castle when the Emperium is broken. +mob_npc_event_type: 1 + +// Time in milliseconds to activate protection against Kill Steal +// Set to 0 to disable it. +// If this is activated and a player is using @noks, damage from others players (KS) not in the party +// will be reduced to 0. +ksprotection: 0 + +// Should MVP slaves retain their target when summoned back to their master? +mob_slave_keep_target: true + +// Whether or not to spawn the mvp tomb. +// See http://irowiki.org/wiki/MVP#Gravestone +mvp_tomb_enabled: true + +// Delay before a tomb is spawned, in milliseconds. +// Default: 10000 (10 seconds) +mvp_tomb_spawn_delay: 10000 + +// Show hp bar on monsters? (Default: yes) +// NOTE: only works on client 2012-04-04aRagexeRE onwards +show_monster_hp_bar: true + +// Whether or not the size of specially summoned mobs influences experience, drop rates, +// and stats. The rates will be doubled for large mobs, and halved for small ones. +// This is only invoked under the 'monster' command, @monsterbig, and @monstersmall. (Note 1) +// Default: false +mob_size_influence: false + +// How should a monster be trapped by an icewall casted directly on it? +// On official servers, monsters can only leave an icewall to the west and south. If their target is north or east of +// them they will continously try to chase it but fail doing so. This brings them into a loop during which they will use +// idle and chase skills. Boss monsters on the other hand will behave like a trapped monster, do not move and will use +// idle and rudeattacked skills (when attacked). +// 0: Monster won't be stuck in icewall at all. +// 1: Monster will behave like a trapped monster. +// 2-255: Number of loops a monster will go through the behavior described above before it frees itself from icewall. +// NOTE: On some servers, normal monsters can free themselves after 15-35 second depending on their speed. On other +// servers, they will be stuck inside icewall until it expires. Also, many official servers (e.g. iRO) have casting +// icewall completely blocked on all maps that have boss monsters on them. +// Default (least exploitable): mob - 75, boss - 0 +// Default (most official): mob - 220, boss - 1 +mob_icewall_walk_block: 220 +boss_icewall_walk_block: 1 + +// Which level of of Vulture's Eye and Snake's Eye should monsters have learned? +// Officially monsters don't have these skills learned, so their ranged skills +// only have a range of 9. If you put a number higher than 0, their range will +// be increased by that number. +monster_eye_range_bonus: 0 + +// Should slaves chase after what their master is chasing? +// false: Don't chase after what master is chasing. (old behavior) +// true: Chase after what master is chasing. (official, default) +slave_chase_masters_chasetarget: true diff --git a/conf/map/battle/party.conf b/conf/map/battle/party.conf new file mode 100644 index 00000000..a34a0c4f --- /dev/null +++ b/conf/map/battle/party.conf @@ -0,0 +1,109 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Party) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// If someone steals (gank/steal skills), show name in party? (Note 1) +show_steal_in_same_party: false + +// Interval before updating the party-member map mini-dots (milliseconds) +party_update_interval: 1000 + +// Method used to update party-mate hp-bars: +// 0: Aegis - bar is updated every time HP changes (bandwidth intensive) +// 1: Athena - bar is updated with the party map dots (up to 1 second delay) +party_hp_mode: 0 + +// When changing party leader, should the new leader be in the same map +// as the current leader. (Note 1) +// true: Aegis - They must be in the same map +// false: Athena - They can be in different maps +party_change_leader_same_map: false + +// When 'Party Share' item sharing is enabled in a party, +// announce in the party which party-member received the item and what's he received? (Note 1) +show_party_share_picker: true + +// What types of items are going to be announced when 'show_party_share_picker' is active? +// 1: IT_HEALING, 2: IT_UNKNOWN, 4: IT_USABLE, 8: IT_ETC, +// 16: IT_WEAPON, 32: IT_ARMOR, 64: IT_CARD, 128: IT_PETEGG, +// 256: IT_PETARMOR, 512: IT_UNKNOWN2, 1024: IT_AMMO, 2048: IT_DELAYCONSUME +// 262144: IT_CASH +show_picker_item_type: 112 + +// Method of distribution when item party share is enabled in a party: +// 0: Normal (item goes to a random party member) +// 1: Item Share is disabled for non-mob drops (player/pet drops) +// 2: Round Robin (items are distributed evenly and in order among members) +// 3: 1+2 +party_item_share_type: 0 + +// Is exp/item sharing disabled for idle members in the party? +// Set to 0, or the amount of seconds (NOT milliseconds) that need to pass before considering +// a character idle. +// Characters in a chat/vending are always considered idle. +// A character's idle status is reset upon item use/skill use/attack (auto attack counts too)/movement. +idle_no_share: 0 + +// Give additional experience bonus per party-member involved on even-share parties (excluding yourself)? +// ex. If set to 10, an even-share party of 5 people will receive +40% exp (4 members * 10% exp): +// 140% party experience in total, so each member receives 140%/5 = 28% exp (instead of 20%). +party_even_share_bonus: 0 + +// Display party name regardless if player is in a guild. +// Official servers do not display party name unless the user is in a guild. (Note 1) +display_party_name: true + +// When and how to send the party options? (Note 3) +// +// Flags for when to display the party options: +// 0x00000 - Never send party options. +// 0x00001 - Send party options upon login. (Default. Should always be set.) +// 0x00002 - Send party options upon map change. +// 0x00004 - Send party options upon teleporting (regardless of changing maps). +// 0x00008 - Send party options upon successfully changing options manually. (Default. Should always be set.) +// 0x00010 - Send party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x00020 - Send party options upon changing options automatically. (Default. Should always be set.) +// 0x00040 - Send party options upon joining party. (Default. Should always be set.) +// 0x00080 - Send party options upon leaving party. (Default.) +// +// Flags for how to send the party options: +// 0x00100 - Send party options to all party members upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x00200 - Send all party options upon login. +// 0x00400 - Send all party options upon map change. +// 0x00800 - Send all party options upon teleporting (regardless of changing maps). +// 0x01000 - Send all party options upon successfully changing options manually. (Default.) +// 0x02000 - Send all party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x04000 - Send all party options upon changing options automatically. +// 0x08000 - Send all party options upon joining party. +// 0x10000 - Send all party options upon leaving party. +// +// Default: 0x31F9 (Official behavior.) +send_party_options: 0x31F9 diff --git a/conf/map/battle/pet.conf b/conf/map/battle/pet.conf new file mode 100644 index 00000000..e2bf9f66 --- /dev/null +++ b/conf/map/battle/pet.conf @@ -0,0 +1,107 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Pet) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Use the offical formula to calculate the pet catch rate? (Note 1) +// Official formula: +// CatchRate = CaptureRate * (100 - 100 * MonsterHP / MonsterMaxHP) / 100 + CaptureRate +// Custum *Athena formula: +// CatchRate = (CaptureRate + (CharacterBaseLevel - MonsterLevel) * 30 + CharacterLuk * 20) * (200 - 100 * MonsterHP / MonsterMaxHP) / 100 +// (CaptureRate is defined in db/(pre-)re/pet_db.conf.) +pet_catch_rate_official_formula: true + +// Rate for catching pets (Note 2) +pet_catch_rate: 100 + +// Can you name a pet more then once? (Note 1) +pet_rename: true + +// The rate a pet will get friendly by feeding it. (Note 2) +pet_friendly_rate: 100 + +// The rate at which a pet will become hungry. (Note 2) +pet_hungry_delay_rate: 100 + +// If your pet is hungry by how much will the friendlyness decrease by. (Default is 5) +// Note: The friendlyness is 0-1000 total, at 0 the pet runs away. +pet_hungry_friendly_decrease: 5 + +// Does the pet need its equipment before it does its skill? (Note 1) +pet_equip_required: true + +// When the master attacks a monster, whether or not the pet will also attack. (Note 1) +pet_attack_support: false + +// When the master receives damage from the monster, whether or not the pet attacks back. (Note 1) +pet_damage_support: false + +// Minimum intimacy necessary for a pet to support their master. Default is 900 +// (intimacy goes from 0 to 1000). At this minimum, support rate is 50% of pet's normal value. +// At max (1000) support rate is 150%. +pet_support_min_friendly: 900 + +// Same as above, but this is to use the pet_script field with official pet abilities. +pet_equip_min_friendly: 900 + +// Whether or not the pet's will use skills. (Note 1) +// Note: Offensive pet skills need at least pet_attack_support or +// pet_damage_support to work (they trigger while the pet is attacking). +pet_status_support: false + +// Rate at which a pet will support it's owner in battle. (Note 2) +// Affects pet_attack_support & pet_damage_support. +pet_support_rate: 100 + +// Does the pets owner receive exp from the pets damage? +pet_attack_exp_to_master: false + +// The rate exp. is gained from the pet attacking monsters +pet_attack_exp_rate: 100 + +// Pet leveling system. Use 0 to disable (default). +// When enabled, a pet's level is a fixed % of the master's. (Note 2) +// If 200%, pet has double level, if 50% pet has half your level, etc. +pet_lv_rate: 0 + +// When pet leveling is enabled, what is the max stats for pets? +pet_max_stats: 99 + +// When pet leveling is enabled, these are the imposed caps on +// min/max damage. Note that these only cap atk1 and atk2, if you +// enable pet_str, their max damage is then their base_atk + pet_max_atk2 +pet_max_atk1: 500 +pet_max_atk2: 1000 + +// Should the pet immediately be removed when its intimacy drops to 0? (Note 1) +// If set to false the pet will randomly walk around the map before being removed. +pet_remove_immediately: true diff --git a/conf/map/battle/player.conf b/conf/map/battle/player.conf new file mode 100644 index 00000000..aa9cf92f --- /dev/null +++ b/conf/map/battle/player.conf @@ -0,0 +1,235 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Player) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. +//========================================================================= + +// Players' maximum HP rate? (Default is 100) +hp_rate: 100 + +// Players' maximum SP rate? (Default is 100) +sp_rate: 100 + +// Whether or not cards and attributes of the left hand are applied to the right hand attack (Note 1) +// (It is true on official servers) +left_cardfix_to_right: true + +// The amount of HP a player will respawn with, 0 is default. +// (Unit is in percentage of total HP, 100 is full heal of HP, 0 is respawn with 1HP total.) +restart_hp_rate: 0 + +// The amount of SP a player will respawn with, 0 is default. +// (Unit is in percentage of total SP, 100 is full heal of SP, 0 is respawn with 1SP total.) +restart_sp_rate: 0 + +// Can a normal player by-pass the skill tree? (Note 1) +player_skillfree: false + +// When set to true, forces skill points gained from 1st class to be put into 1st class +// skills, and forces novice skill points to be put into the basic skill. (Note 1) +player_skillup_limit: true + +// Quest skills can be learned? (Note 1) +// Setting this to true can open an exploit on your server! +quest_skill_learn: false + +// When skills are reset, quest skills are reset as well? (Note 1) +// Setting this to true can open an exploit on your server! +// NOTE: If you have quest_skill_learn set to true, quest skills are always reset. +quest_skill_reset: false + +// You must have basic skills to be able to sit, trade, form a party or create a chatroom? (Note 1) +basic_skill_check: true + +// When teleporting, or spawning to a map, how long before a monster sees you if you don't move? (time is in milliseconds) +// That is, when you go to a map and don't move, how long before the monsters will notice you. +// When moving, attacking or doing similar actions, the effect ends instantly. +// Value is also affected by 'invincible_time_inc' mapflag +player_invincible_time: 5000 + +// When set to true, it prevent portal abuse for avoid hits. Official value is false. +fix_warp_hit_delay_abuse: true + +// The time interval for HP to restore naturally. (in milliseconds) +natural_healhp_interval: 6000 + +// The time interval for SP to restore naturally. (in milliseconds) +natural_healsp_interval: 8000 + +// Automatic healing skill's time interval. (in milliseconds) +natural_heal_skill_interval: 10000 + +// The maximum weight for a character to carry when the character stops healing naturally. (in %) +natural_heal_weight_rate: 50 + +// Maximum atk speed. (Default 190, Highest allowed 199) +max_aspd: 190 + +// Same as max_aspd, but for 3rd classes. (Default 193, Highest allowed 199) +max_third_aspd: 193 + +// Maximum walk speed rate (200 would be capped to twice the normal speed) +max_walk_speed: 300 + +// Maximum HP. (Default is 1000000) +max_hp: 1000000 + +// Maximum SP. (Default is 1000000) +max_sp: 1000000 + +// Max limit of char stats. (agi, str, etc.) +max_parameter: 99 + +// Same as max_parameter, but for 3rd classes. +max_third_parameter: 130 + +// Same as max_parameter, but for extended classes (Ex. Super Novice, Kagero/Oboro, Rebellion). +max_extended_parameter: 125 + +// Same as max_parameter, but for summoner class +max_summoner_parameter: 120 + +// Same as max_parameter, but for baby classes. +max_baby_parameter: 80 + +// Same as max_parameter, but for baby 3rd's. +max_baby_third_parameter: 117 + +// Max armor def/mdef +// NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL) +// NOTE: does not affects skills and status effects like Mental Strength +// If weapon_defense_type is non-zero, it won't apply to max def. +// If magic_defense_type is non-zero, it won't apply to max mdef. +max_def: 99 + +// Def to Def2 conversion bonus. If the armor def/mdef exceeds max_def, +// the remaining is converted to vit def/int mdef using this multiplier +// (eg: if set to 10, every armor point above the max becomes 10 vit defense points) +over_def_bonus: 0 + +// Max weight carts can hold. +max_cart_weight: 8000 + +// Prevent logout of players after being hit for how long (in ms, 0 disables)? +prevent_logout: 10000 + +// When should the server prevent a player from logging out? Have no effect if prevent_logout is disabled. (Note 3) +// Official servers prevent players from logging out after attacking, casting skills, and taking damage. +// 0 = Players can always logout +// 1 = Prevent logout on login +// 2 = Prevent logout after attacking +// 4 = Prevent logout after casting skill +// 8 = Prevent logout after being hit +prevent_logout_trigger: 14 + +// Display the drained hp/sp values from normal attacks? (Ie: Hunter Fly card) +show_hp_sp_drain: false + +// Display the gained hp/sp values from killing mobs? (Ie: Sky Deleter Card) +show_hp_sp_gain: true + +// Show the critical bonus for katar class weapon in player status window? On +// official server, the critical bonus from katar class weapon isn't display. +// (Default: false) +show_katar_crit_bonus: true + +// If set, when A accepts B as a friend, B will also be added to A's friend +// list, otherwise, only A appears in B's friend list. +// NOTE: this setting only enables friend auto-adding; auto-deletion does not work yet +friend_auto_add: true + +// Are simultaneous trade/party/guild invite requests automatically rejected? +invite_request_check: true + +// Players' will drop a 'Skull' when killed? +// 0 = Disabled +// 1 = Dropped only in PvP maps +// 2 = Dropped in all situations +bone_drop: 1 + +// Do mounted (on Peco) characters increase their size +// 0 = no +// 1 = only Normal Classes on Peco have Big Size +// 2 = only Baby Classes on Peco have Medium Size +// 3 = both Normal Classes on Peco have Big Size +// and Baby Classes on Peco have Medium Size +character_size: 0 + +// Idle characters can receive autoloot? +// Set to the time in seconds where an idle character will stop receiving +// items from Autoloot (0: disabled). +idle_no_autoloot: 0 + +// Minimum distance a vending/chat room must be from a NPC in order to be placed +// Default: 3 (0: disabled). +min_npc_vendchat_distance: 3 + +// If min_npc_vendchat_distance is enabled, +// can players vend/chat room nearby hidden npc? (Ie: FAKE_NPC/HIDDEN_WARP_NPC) +vendchat_near_hiddennpc: false + +// Super Novice's fury is enabled to increments of 10%, such as at 10.0%, 20.0% - 80.0%, 90.0% +// Changing snovice_call_type config to 1 enables its use at 0%, for maxed super novices. +// default: 0 +snovice_call_type: 0 + +// How the server should measure the character's idle time? (Note 3) +// 0x001 - Walk Request +// 0x002 - UseSkillToID Request ( targetted skill use attempt ) +// 0x004 - UseSkillToPos Request ( aoe skill use attempt ) +// 0x008 - UseItem Request ( including equip/unequip ) +// 0x010 - Attack Request +// 0x020 - Chat Request ( whisper, party, guild, bg, etca ) +// 0x040 - Sit/Standup Request +// 0x080 - Emotion Request +// 0x100 - DropItem Request +// 0x200 - @/#Command Request +// 0x400 - NPC Script Interaction +// Please note that at least 1 option has to be enabled. +// Be mindful that the more options used, the easier it becomes to cheat features that rely on idletime (e.g. checkidle()). +// Default: walk ( 0x1 ) + useskilltoid ( 0x2 ) + useskilltopos ( 0x4 ) + useitem ( 0x8 ) + attack ( 0x10 ) = 0x1F +idletime_criteria: 0x1F + +// Can players get ATK/DEF from refinements on costume/shadow equips? +// Default: yes (Official behavior not known) +costume_refine_def: true +shadow_refine_def: true +shadow_refine_atk: true + +// Keep player facing direction after warping? +// Default: false (on official servers players always faces north) +player_warp_keep_direction: true + +// Can dead players do actions like trading, open a chat room, etc.? +// 0x0 - Don't allow trading and open chat rooms. +// 0x1 - Allow trading when dead. +// 0x2 - Allow open chat room when dead. +// default: 0x3 (Official) +allowed_actions_when_dead: 0x3 diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf new file mode 100644 index 00000000..5a58a8a1 --- /dev/null +++ b/conf/map/battle/skill.conf @@ -0,0 +1,362 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Skill) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The rate of time it takes to cast a spell (Note 2, 0 = No casting time) +casting_rate: 100 + +// Delay time after casting (Note 2) +delay_rate: 100 + +// Does the delay time depend on the caster's DEX and/or AGI? (Note 1) +// Note: On Official servers, neither Dex nor Agi affect delay time +delay_dependon_dex: false +delay_dependon_agi: false + +// Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1) +// Note: Setting this to anything above 0 can stop speedhacks. +min_skill_delay_limit: 100 + +// This delay is the min 'can't walk delay' of all skills. +// NOTE: Do not set this too low, if a character starts moving too soon after +// doing a skill, the client will not update this, and the player/mob will +// appear to "teleport" afterwards. +default_walk_delay: 300 + +// Completely disable skill delay of the following types (Note 3) +// NOTE: By default mobs don't have the skill delay as specified in the skill +// database, but follow their own 'reuse' skill delay which is specified on +// the mob skill db. When set, the delay for all skills become +// min_skill_delay_limit. +no_skill_delay: 2 + +// At what dex does the cast time become zero (instant cast)? +castrate_dex_scale: 150 + +// How much (dex*2+int) does variable cast turns zero? +vcast_stat_scale: 530 + +// What level of leniency should the skill system give for skills when +// accounting attack motion (ASPD) for casting skills (Note 2, between 0 and 300) +// +// NOTE: Setting this to 100% may cause some issues with valid skills not being cast. +// The time difference between client and server varies so allowing 90% leniency +// should be enough to forgive very small margins of error. +skill_amotion_leniency: 90 + +// Will normal attacks be able to ignore the delay after skills? (Note 1) +skill_delay_attack_enable: true + +// Range added to skills after their cast time finishes. +// Decides how far away the target can walk away after the skill began casting before the skill fails. +// 0 disables this range checking (default) +skill_add_range: 0 + +// If the target moves out of range while casting, do we take the items and SP for the skill anyway? (Note 1) +skill_out_range_consume: false + +// Does the distance between caster and target define if the skill is a ranged skill? (Note 3) +// If set, when the distance between caster and target is greater than 3 the skill is considered long-range, otherwise it's a melee range. +// If not set, then the range is determined by the skill's range (if it is above 5, the skill is ranged). +// Default 14 (mobs + pets + homun) +skillrange_by_distance: 14 + +// Should the equipped weapon's range override the skill's range defined in the skill_db for most weapon-based skills? (Note 3) +// NOTE: Skills affected by this option are those whose range in the skill_db are negative. By default always the skill range is used. +// Note that if you want all monster skills to have a range of 9 you need to set monster_ai&0x400. +skillrange_from_weapon: 0 + +// Should a check on the caster's status be performed in all skill attacks? +// When set to true, meteors, storm gust and any other ground skills will have +// no effect while the caster is unable to fight (eg: stunned). +skill_caster_check: true + +// Should ground placed skills be removed as soon as the caster dies? (Note 3) +clear_skills_on_death: 0 + +// Should ground placed skills be removed when the caster changes maps? (Note 3) +clear_skills_on_warp: 15 + +// Setting this to true will override the target mode of ground-based skills with the flag 0x01 to "No Enemies" +// The two skills affected by default are Pneuma and Safety Wall (if set to true, those two skills will not protect everyone, but only allies) +// See db/skill_unit_db.txt for more info. +defunit_not_enemy: false + +// Do skills do at least 'hits' damage when they don't miss/are blocked? +// (for example, will firebolts always do "number of bolts" damage versus plants?) +// Values (add as appropriate): 1 for weapon-based attacks, 2 for magic attacks, 4 for misc attacks. +skill_min_damage: 6 + +// The delay rate of monk's combo (Note 2) +combo_delay_rate: 100 + +// Use alternate auto Counter Attack Skill Type? (Note 3) +// For those characters on which it is set, 100% Critical, +// Otherwise it disregard DEF and HIT+20, CRI*2 +auto_counter_type: 15 + +// Can ground skills be placed on top of each other? (Note 3) +// By default, skills with UF_NOREITERATION set cannot be stacked on top of +// other skills, this setting will override that. (skill_unit_db) +skill_reiteration: 0 + +// Can ground skills NOT be placed underneath/near players/monsters? (Note 3) +// If set, only skills with UF_NOFOOTSET set will be affected (skill_unit_db) +skill_nofootset: 1 + +// Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3) +// Default on official servers: true for player-traps +gvg_traps_target_all: 1 + +// Hunter's traps visibility setting (with HiddenTrap: true on skill_db.conf) +// Here we have 2 configs: +// visibility stands to how traps are displayed by default: +// 0: Traps are always visible to everyone (Hercules/Pre-renewal) +// 1: Traps with HiddenTrap: true are hidden in versus maps (PvP/GvG/BG) +// 2: Traps with HiddenTrap: true are always invisible (Renewal) (Default) +// Notes: - Invisibility applies to players that are not in caster's party. +// - Invisible traps can be made visible to everyone with Hunter's Detecting skill. +// +// display_on_trigger tells if HiddenTraps should become visible once triggered +// 0: Do not make traps visible once triggered (except for Ankle Snare) (Aegis) +// 1: Always make traps visible once triggered (Hercules) +trap_options: { + visibility: 2 + display_on_trigger: 1 +} + +// Restrictions applied to the Alchemist's Summon Flora skill (add as necessary) +// 1: Enable players to damage the floras outside of versus grounds. +// 2: Disable having different types out at the same time +// (eg: forbid summoning anything except hydras when there's already +// one hydra out) +summon_flora_setting: 3 + +// When songs are canceled, terminated or the character goes out of the +// area of effect, there's an additional effect that lasts for 20 seconds +// Should that time be reset for each song? +// 0: No, you must recast the song AFTER those 20 seconds to have the effect again (Aegis) +// 1: Yes, recasting songs reset the 20 seconds timer (eathena) +song_timer_reset: 0 + +// Whether placed down skills will check walls (Note 1) +// (Makes it so that Storm Gust/Lord of Vermillion/etc when cast next to a wall, won't hit on the other side) +skill_wall_check: true + +// When cloaking, Whether the wall is checked or not. (Note 1) +// Note: When the skill does not checks for walls, you will always be considered +// as if you had a wall-next to you (you always get the wall-based speed). +// Add the settings as required, being hit always uncloaks you. +// 0 = doesn't check for walls +// 1 = Check for walls +// 2 = Cloaking is not canceled when attacking. +// 4 = Cloaking is not canceled when using skills +player_cloak_check_type: 1 +monster_cloak_check_type: 4 + +// Can't place unlimited land skills at the same time (Note 3) +land_skill_limit: 9 + +// Determines which kind of skill-failed messages should be sent: +// 0 - Enable by default +// 1 - Disable all skill-failed messages. +// 2 - Disable skill-failed messages due to can-act delays. +// 4 - Disable failed message from Snatcher +// 8 - Disable failed message from Envenom +display_skill_fail: 0 + +// Can a player in chat room (in-game), be warped by a warp portal? (Note 1) +chat_warpportal: false + +// What should the wizard's "Sense" skill display on the defense fields? +// 0: Do not show defense +// 1: Base defense [RE default] +// 2: Vit/Int defense +// 3: Both (the addition of both) +sense_type: 1 + +// Which finger offensive style will be used? +// 0 = Aegis style (single multi-hit attack) +// 1 = Athena style (multiple consecutive attacks) +finger_offensive_type: 0 + +// Grandcross Settings (Don't mess with these) +// If set to false, hit interval is increased based on the amount of mobs standing on the same cell +// (means that when there's stacked mobs in the same cell, they won't receive all hits) +gx_allhit: false + +// Grandcross display type (Default 1) +// 0: Yellow character +// 1: White character +gx_disptype: 1 + +// Max Level Difference for Devotion +devotion_level_difference: 10 + +// If false than you can use the ensemble skills alone. (Note 1) +player_skill_partner_check: true + +// Remove trap type +// 0 = Aegis system : Returns 1 'Trap' item +// 1 = Athena system : Returns all items used to deploy the trap +skill_removetrap_type: 0 + +// Does using bow to do a backstab give a 50% damage penalty? (Note 1) +backstab_bow_penalty: true + +// How many times you could try to steal from a mob. +// Note: It helps to avoid stealing exploit on monsters with few rare items +// Use 0 to disable (max allowed value is 255) +skill_steal_max_tries: 0 + +// Can Rogues plagiarize advanced job skills +// 0 = no restriction +// 1 = only stalker may plagiarize advanced skills +// 2 = advanced skills cannot be plagiarized by anyone +// Official servers setting: 2 +copyskill_restrict: 2 + +// Does Berserk/Frenzy cancel other self-buffs when used? +berserk_cancels_buffs: false + +// Level and Strength of "MVP heal". When someone casts a heal of this level or +// above, the heal formula is bypassed and this value is used instead. +max_heal: 9999 +max_heal_lv: 11 + +// Emergency Recall Guild Skill setting (add as appropriate). +// Note that for the skill to be usable at all, +// you need at least one of 1/2 and 4/8 +// 1: Skill is usable outside of woe. +// 2: Skill is usable during woe. +// 4: Skill is usable outside of GvG grounds +// 8: Skill is usable on GvG grounds +//16: Disable skill from "nowarpto" maps +// (it will work on GVG castles even if they are set to nowarpto, though) +emergency_call: 11 + +// Guild Aura Skills setting (add as appropriate). +// (This affects GD_LEADERSHIP, GD_GLORYWOUNDS, GD_SOULCOLD and GD_HAWKEYES) +// Note that for the skill to be usable at all, +// you need at least one of 1/2 and 4/8 +// 1: Skill works outside of woe. +// 2: Skill works during woe. +// 4: Skill works outside of GvG grounds +// 8: Skill works on GvG grounds +//16: Disable skill from affecting Guild Master +guild_aura: 31 + +// Allows players to skip menu when casting Teleport level 1 +// Menu contains two options. "Random" and "Cancel" +skip_teleport_lv1_menu: false + +// Allow use of SG skills without proper day (Sun/Moon/Star) ? +allow_skill_without_day: false + +// Allow use of ES-type magic on players? +allow_es_magic_player: false + +// Miracle of the Sun, Moon and Stars skill ratio (100% = 10000) +sg_miracle_skill_ratio: 2 + +// Miracle of the Sun, Moon and Stars skill duration in milliseconds +sg_miracle_skill_duration: 3600000 + +// Angel of the Sun, Moon and Stars skill ratio (100% = 10000) +sg_angel_skill_ratio: 10 + +// Skills that bHealPower has effect on +// 1: Heal, 2: Sanctuary, 4: Potion Pitcher, 8: Slim Pitcher, 16: Apple of Idun, 32: Highness Heal +skill_add_heal_rate: 7 + +// Whether the damage of EarthQuake with a single target on screen is able to be reflected. +// Note: On official server, EQ is reflectable when there is only one target on the screen, +// which might be an exploit to hunt the MVPs. +eq_single_target_reflectable: true + +// On official server, you will receive damage from Reflection and some Tarot Card even in invincible status. +// When this setting is enabled, it allows you to immune to all kinds of damage, including those stated previous. +// (The number will show but no actual damage will be done) +invincible_nodamage: false + +// Dancing Weapon Switch +// On official server, a fix is in place that prevents the switching of weapons to cancel songs. +// Default: true +dancing_weaponswitch_fix: true + +// Skill Trap Type (GvG) +// 0: (official) Traps in GvG only make player stop moving after its walk path is complete, and it activates other traps on the way. +// 1: Traps in GvG make player stop moving right when stepping over it. +skill_trap_type: 0 + +// Trap Reflect +// Whether the damage from traps must be reflected (for example by Reflect Shield or High Orc Card)? +// true: Aegis - traps are reflected +// false: Athena - traps are not reflected +trap_reflect: true + +// Max Possible Level of Monster skills +// Note: If your MVPs are too tough, reduce it to 10. +mob_max_skilllvl: 100 + +// Area of Bowling Bash chain reaction +// 0: Use official gutter line system +// 1: Gutter line system without demi gutter bug +// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41) +// Note: If you knock the target out of the area it will only be hit once and won't do splash damage +bowling_bash_area: 0 + +// On official servers, Storm Gust consists of 81 units that all deal 3x3 splash damage "away from center". Due to +// south-western cells being processed first, this usually leads to a knockback to the northeast. Knockback at the +// edges will be away from SG. Knockback direction can also be influenced by Ganbantein and Land Protector. If you +// punch a hole into SG it will for example create a "suck in" effect. +// If you disable this setting, the knockback direction will be completely random (eAthena style). +stormgust_knockback: true + +// Magic Rod's animation behavior (Note 1) +// 0 : (official) Magic Rod's animation occurs every time it is used. +// 1 : Magic Rod's animation would not occur unless a spell was absorbed. (old behavior) +magicrod_type: 0 + +// Which skills are allowed to use while interacting with NPC? +// 0 (SKILLENABLEDNPC_NONE) - Don't allow using skills. +// 1 (SKILLENABLEDNPC_SELF) - Allow using non-damaging self skills. +// 2 (SKILLENABLEDNPC_ALL) - Allow using all skills. +// Official RE: 0 (Default value.) +// Official Pre-RE: 1 +skill_enabled_npc: 0 + +// Close the storage/gstorage when teleported? (Note 1) +// true : (Official) +// false : (Athena) +teleport_close_storage: true diff --git a/conf/map/battle/status.conf b/conf/map/battle/status.conf new file mode 100644 index 00000000..5f6fe68d --- /dev/null +++ b/conf/map/battle/status.conf @@ -0,0 +1,47 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see . +//========================================================================= +// Battle (Status) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Should skill casting be canceled when inflicted by curse/stun/sleep/etc (includes silence) (Note 3)? +status_cast_cancel: 0 + +// Adjustment for the natural rate of resistance from status changes. +// If 50, status defense is halved, and you need twice as much stats to block +// them (eg: 200 vit to completely block stun) +pc_status_def_rate: 50 +mob_status_def_rate: 50 + +// Maximum resistance to status changes. (100 = 100%) +// NOTE: Cards and equipment can go over this limit, so it only applies to natural resist. +pc_max_status_def: 75 +mob_max_status_def: 75 diff --git a/conf/map/charhelp.txt b/conf/map/charhelp.txt new file mode 100644 index 00000000..e3acddbb --- /dev/null +++ b/conf/map/charhelp.txt @@ -0,0 +1,28 @@ + 40:--- CHARACTER CMD --- + 40:#statsall - Set all stats of a player to maximum. + 40:#itemlist - Displays all items of a player. + 40:#storagelist - Displays all items of a player's storage. + 40:#stats - Displays a characters stats. + 60:#option - Like @option command but only to target character. + 50:#mountpeco - Give/remove to a player a peco (Class is required, but not skill). + 50:#petrename - Re-enable pet rename to a player. + 60:#save - Changes the target players respawn point. + 60:#baselvl/#blvl <#> - Change a characters base level. + 60:#joblvl/#jlvl <#> - Change a characters job level. + 60:#job/#jobchange - Changes target characters job. + 60:#zeny - Give/take a players Zeny + 60:#cash - Give/take a player cash points + 60:#points - Give/take a player Kafra points + 60:#stpoint - Give/take a players stat points + 60:#skpoint - give/take a players skill points + 60:#skreset - Reset skills of a character. + 60:#streset - Reset stats of a character. + 60:#reset - Reset stats AND skills of a character. + 60:#questskill <#> - Gives to a player the specified quest skill. + 60:#lostskill <#> - Takes away the specified quest skill from the player. + 60:#delitem - Remove items from a character + 50:#model - Changes a player's model + 60:#disguise - Changes disguise of a player + 60:#undisguise - Cancels disguise of a player + 60:#changesex - Changes sex of a player (all characters of the account) + 60:#warp/#rura+ - Warps character to location of choice diff --git a/conf/map/help.txt b/conf/map/help.txt new file mode 100644 index 00000000..17dd829f --- /dev/null +++ b/conf/map/help.txt @@ -0,0 +1,309 @@ +// This is help file that contains help messages for atcommands/charcommands. + +// Format: +// : "" + +// This file uses libconfig syntax. + +help: "Params: \n" "Shows help for specified command." +noask: "Auto rejects deals/invites." +me: "Params: \n" "Displays normal text as a message in this format: *name message* (like /me in mIRC)." +fakename: "Params: \n" "Changes your name to your choice temporarily." +npctalk: "Params: \n" "Forces a NPC to display a message in normal chat." +broadcast: "Params: \n" "Broadcasts a message with your name (in yellow)." +kami: "Params: \n" "Broadcasts a message without your name (in yellow)." +kamib: "Params: \n" "Broadcasts a message without your name (in blue)." +localbroadcast: "Params: \n" "Broadcasts a message with your name (in yellow) only on your map." +commands: "Displays a list of commands that you can use." +rates: "Displays the server's current rates." +uptime: "Displays how long the server has been online." +showdelay: "Shows/hides the \"There is a delay after this skill\" message." +exp: "Displays current levels and % progress." +mobinfo: "Params: \n" "Shows monster info (stats, exp, drops etc)." +iteminfo: "Params: \n" "Shows item info (type, price etc)." +whodrops: "Params: \n" "Shows who drops an item (monster with highest drop rates)." +version: "Displays SVN version of the server." +email: "Params: \n" "Changes your account e-mail address." +where: "Params: \n" "Tells you the location of a character." +time: "Shows the date and time of the server." +showexp: "Displays/hides experience gained." +showzeny: "Displays/hides Zeny gained." +mobsearch: "Params: \n" "Shows the location of a certain mob on the current map." +who: "Params: []\n" "Shows a list of online players and their party and guild." +who2: "Params: []\n" "Shows a list of online players and their job." +who3: "Params: []\n" "Shows a list of online players and their location." +whomap: "@whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specified map." +whogm: "Params: [match_text] - Like @who+@who2+who3, but only for GM." +guildspy: "Params: - You will receive all messages of the guild channel (Chat logging must be enabled)" +partyspy: "@partyspy - You will receive all messages of the party channel (Chat logging must be enabled)" +mapinfo: "Params: [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat)." +go: "Params: \n" "Warps you to a city.\n" + " -3: (Memo point 2) 14: louyang 31: mora\n" + " -2: (Memo point 1) 15: start point 32: dewata\n" + " -1: (Memo point 0) 16: prison/jail 33: malangdo island\n" + " 0: prontera 17: jawaii 34: malaya port\n" + " 1: morocc 18: ayothaya 35: eclage\n" + " 2: geffen 19: einbroch\n" + " 3: payon 20: lighthalzen\n" + " 4: alberta 21: einbech\n" + " 5: izlude 22: hugel\n" + " 6: aldebaran 23: rachel\n" + " 7: xmas (lutie) 24: veins\n" + " 8: comodo 25: moscovia\n" + " 9: yuno 26: midgard camp\n" + " 10: amatsu 27: manuk\n" + " 11: gonryun 28: splendide\n" + " 12: umbala 29: brasilis\n" + " 13: niflheim 30: el dicastes\n" +jumpto: "Params: \n" "Warps you to selected character." +follow: "Params: \n" "Follow a player." +mount: "Give/remove you a peco (Class is required, but not skill)" +disguise: "Params: \n" "Change your appearence to other players to a mob." +undisguise: "Restore your normal appearance." +disguiseguild: "Disguises all online characters of a guild." +undisguiseguild: "Restore the normal appearance of all characters of a guild." +model: "Params: - Changes your characters appearence." +size: "Params: <1-3> Changes your size (1-Smallest 2-Biggest 3-Normal)" +sizeall: "Changes the size of all players." +sizeguild: "Changes the size of all online characters of a guild." +hide: "Makes you character invisible (GM invisibility). Type again to become visible." +save: "Sets respawn point to current spot." +load: "Warps you to your save point." +warp: "Params: [ ]\n" "Warps you to the selected map and position." +jump: "Params: [ []]\n" "Randomly warps you like a flywing." +jobchange: "Params: \n" "Changes your job.\n" + "----- Novice / 1st Class -----\n" + " 0 Novice 1 Swordman 2 Magician 3 Archer\n" + " 4 Acolyte 5 Merchant 6 Thief\n" + "----- 2nd Class -----\n" + " 7 Knight 8 Priest 9 Wizard 10 Blacksmith\n" + " 11 Hunter 12 Assassin 14 Crusader 15 Monk\n" + " 16 Sage 17 Rogue 18 Alchemist 19 Bard\n" + " 20 Dancer\n" + "----- High Novice / High 1st Class -----\n" + "4001 Novice High 4002 Swordman High 4003 Magician High 4004 Archer High\n" + "4005 Acolyte High 4006 Merchant High 4007 Thief High\n" + "----- Transcendent 2nd Class -----\n" + "4008 Lord Knight 4009 High Priest 4010 High Wizard 4011 Whitesmith\n" + "4012 Sniper 4013 Assassin Cross 4015 Paladin 4016 Champion\n" + "4017 Professor 4018 Stalker 4019 Creator 4020 Clown\n" + "4021 Gypsy\n" + "----- 3rd Class (Regular) -----\n" + "4054 Rune Knight 4055 Warlock 4056 Ranger 4057 Arch Bishop\n" + "4058 Mechanic 4059 Guillotine Cross 4066 Royal Guard 4067 Sorcerer\n" + "4068 Minstrel 4069 Wanderer 4070 Sura 4071 Genetic\n" + "4072 Shadow Chaser\n" + "----- 3rd Class (Transcendent) -----\n" + "4060 Rune Knight 4061 Warlock 4062 Ranger 4063 Arch Bishop\n" + "4064 Mechanic 4065 Guillotine Cross 4073 Royal Guard 4074 Sorcerer\n" + "4075 Minstrel 4076 Wanderer 4077 Sura 4078 Genetic\n" + "4079 Shadow Chaser\n" + "----- Expanded Class -----\n" + " 23 Super Novice 24 Gunslinger 25 Ninja 4045 Super Baby\n" + "4046 Taekwon 4047 Star Gladiator 4049 Soul Linker 4050 Gangsi\n" + "4051 Death Knight 4052 Dark Collector 4190 Ex. Super Novice 4191 Ex. Super Baby\n" + "4211 Kagerou 4212 Oboro 4215 Rebellion 4218 Summoner\n" + "----- Baby Novice And Baby 1st Class -----\n" + "4023 Baby Novice 4024 Baby Swordman 4025 Baby Magician 4026 Baby Archer\n" + "4027 Baby Acolyte 4028 Baby Merchant 4029 Baby Thief\n" + "---- Baby 2nd Class ----\n" + "4030 Baby Knight 4031 Baby Priest 4032 Baby Wizard 4033 Baby Blacksmith\n" + "4034 Baby Hunter 4035 Baby Assassin 4037 Baby Crusader 4038 Baby Monk\n" + "4039 Baby Sage 4040 Baby Rogue 4041 Baby Alchemist 4042 Baby Bard\n" + "4043 Baby Dancer\n" + "---- Baby 3rd Class ----\n" + "4096 Baby Rune Knight 4097 Baby Warlock 4098 Baby Ranger 4099 Baby Arch Bishop\n" + "4100 Baby Mechanic 4101 Baby Glt. Cross 4102 Baby Royal Guard 4103 Baby Sorcerer\n" + "4104 Baby Minstrel 4105 Baby Wanderer 4106 Baby Sura 4107 Baby Genetic\n" + "4108 Baby Shadow Chaser\n" + "---- Modes And Others ----\n" + " 22 Wedding 26 Christmas 27 Summer 4048 Star Gladiator (Union)\n" +option: "Params: (stackable) (stackable)\n" "Adds different visual effects on or around your character.\n" +" \n" +"01: Stone 01: Sight 01: Sight 512: Cart Lv. 4\n" +"02: Frozen 02: Curse 02: Hiding 1024: Cart Lv. 5\n" +"03: Stun 04: Silence 04: Cloaking 2048: Orc Head\n" +"04: Sleep 08: Signum 08: Cart Lv. 1 4096: Wedding\n" +"06: Petrify 16: Blind 16: Falcon 8192: Ruwach\n" +"07: Burning 32: Angelus 32: Riding 16384: Chasewalk\n" +"08: Imprison 64: Bleeding 64: Invisible\n" +"16: (Nothing) 128: D. Poison 128: Cart Lv. 2\n" +"32: (Nothing) 256: Fear 256: Cart Lv. 3" +heal: "Params: [ ]\n" "Heals the desired amount of HP and SP. No value specified will do a full heal." +dye: "Params: \n" "Changes your characters clothes color." +hairstyle: "Params: \n" "Changes your hair style." +haircolor: "Params \n" "Changes your hair color." +speed: "Params: <1-1000>\n" "Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150." +effect: "Params: []\n" "Give an effect to your character." +dropall: "Throws all your possession on the ground." +storeall: "Puts all your possessions in storage." +killable: "Make your character killable." +memo: "Params: [memo position]\n" "Set/change a memo location (no position: display memo points)." +spiritball: "Params: <1-100>\n" "Gives you \"spirit spheres\" like from the skill \"Call Spirits\".\n" +questskill: "Params: <#>\n" "Gives you the specified quest skill\n" +"Novice = 142: First Aid, 143: Act Dead\n" +"Archer = 147: Create Arrow, 148: Charge Arrow\n" +"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n" +"Acolyte = 156: Holy Light\n" +"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n" +"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n" +"Magician = 157: Energy Coat\n" +"Hunter = 1009: Phantasmic Arrow\n" +"Bard = 1010: Pang Voice\n" +"Dancer = 1011: Wink of Charm\n" +"Knight = 1001: Charge Attack\n" +"Crusader = 1002: Shrink\n" +"Priest = 1014: Redemptio\n" +"Monk = 1015: Ki Translation, 1016: Ki Explosio\n" +"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n" +"Rogue = 1005: Close Confine\n" +"Blacksmith = 1012: Unfair Trick, 1013: Greed\n" +"Alchemist = 238: Basis of Life\n" +"Wizard = 1006: Sight Blaster\n" +"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)" +lostskill: "Params: <#>\n" "Takes away the specified quest skill from you\n" +"Novice = 142: First Aid, 143: Act Dead\n" +"Archer = 147: Create Arrow, 148: Charge Arrow\n" +"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n" +"Acolyte = 156: Holy Light\n" +"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n" +"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n" +"Magician = 157: Energy Coat\n" +"Hunter = 1009: Phantasmic Arrow\n" +"Bard = 1010: Pang Voice\n" +"Dancer = 1011: Wink of Charm\n" +"Knight = 1001: Charge Attack\n" +"Crusader = 1002: Shrink\n" +"Priest = 1014: Redemptio\n" +"Monk = 1015: Ki Translation, 1016: Ki Explosio\n" +"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n" +"Rogue = 1005: Close Confine\n" +"Blacksmith = 1012: Unfair Trick, 1013: Greed\n" +"Alchemist = 238: Basis of Life\n" +"Wizard = 1006: Sight Blaster\n" +"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)" +skillid: "Params: \n" "Look up a skill by name" +useskill: "Params: \n" "Use a skill on target" +skilltree: "Params: \n" "Prints the skill tree needed to get a skill for the target player." +marry: "Params: \n" "Marry another player." +divorce: "Divorce player." +alive: "Revives yourself from death." +blvl: "Params: \n" "Raises your base level the desired number of levels." +jlvl: "Params: \n" "Raises your job level the desired number of levels." +allskill: "Give you all skills." +stpoint: "Params: - Gives you the desired number of stat points." +skpoint: "Params: - Gives you the desired number of skill points." +zeny: "Params: - Gives you desired amount of Zeny." +cash: "Params: - Gives you the specified amount of cash points." +points: "Params: - Gives you the specified amount of Kafra Points." +str: "Params: \n" "Raises STR by given amount." +agi: "Params: \n" "Raises AGI by given amount." +dex: "Params: \n" "Raises DEX by given amount." +vit: "Params: \n" "Raises VIT by given amount." +int: "Params: \n" "Raises INT by given amount." +luk: "Params: \n" "Raises LUK by given amount." +allstats: "Params: \n" "Adds value in all stats (maximum if no value)." +addwarp: "Params: \n" +killmonster2: "Kills all monsters of your map (without drops)." +monster: "Params: [ [ [ []]]]\n" + "@monster2 [ [ []]]\n" +"@spawn/@monster/@summon/@monster2 \"desired monster name\" [ [ []]]\n" +"@spawn/@monster/@summon/@monster2 \"desired monster name\" [ [ []]]\n" +" Spawns the desired monster with any desired name." +monstersmall: "Params: \n" "Spawns a smaller version of a monster." +monsterbig: "Params: \n" "Spawns a larger version of a monster." +killmonster: "Params: \n" "Kill all monsters of the map (they drop)" +autoloot: "Params: \n" "Makes items go straight into your inventory." +autotrade: "Allows you to vend while you are offline." +changegm: "Params: \n" "Changes the leader of your guild (You must be guild leader)" +changeleader: "Params: \n" "Changes the leader of your party (You must be party leader)" +request: "Params: \n" "Sends a message to all connected GMs (via the gm whisper system)" +sound: "Params: \n" "Plays a sound from the data folder or GRF file located on the client." +clone: "Params: \n" "Spawns a supportive clone of the given player." +slaveclone: "Params: \n" "Spawns a supportive clone of the given player that follows the creator around." +evilclone: "Params: \n" "Spawns an aggressive clone of the given player." +changesex: "Changes your gender." +duel: "Starts a duel." +invite: "Invites a player to a duel." +accept: "Accepts an invitation to a duel." +reject: "Rejects an invitation to a duel." +leave: "Leaves a duel." +mail: "Open mail box." +storage: "Opens storage." +itemreset: "Remove all your items." +guildstorage: "Opens guild storage." +idsearch: "Params: \n" "Search all items that name have part_of_item_name" +refine: "Params: <+/- amount>" +produce: "Params: <# of very's>\n" +" Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind\n" +" You can add up to 3 Star Crumbs and 1 element\n" +repairall: "Repair all items of your inventory" +item: "Params: \n" "Gives you the desired item." +item2: "Params: \n" "Gives you the desired item." +pvpon: "Turns pvp on on the current map" +pvpoff: "Turns pvp off on the current map" +gvgon: "Turns gvg on on the current map" +gvgoff: "Turns gvg off on the current map" +agitstart: "Starts War of Emperium" +agitend: "End War of Emperium" +party: "Params: \n" "Create a party." +guild: "Params: \n" "Create a guild." +glvl: "Params: <# of levels>\n" "Raise Guild by desired number of levels" +guildrecall: "Params: \n" "Warps all online characters of a guild to you." +partyrecall: "Params: \n" "Warps all online characters of a party to you." +petrename: "Re-enable pet rename" +pettalk: "Params: \n" "Makes your pet say a message." +petfriendly: "Params: <#>\n" "Set pet friendly amount (0-1000) 1000 = Max" +pethungry: "Params: <#>\n" "Set pet hungry amount (0-100) 100 = Max" +hatch: "Create a pet from your inventory eggs list." +makeegg: "Params: \n" "Gives pet egg for monster number in pet DB" +kick: "Params: \n" "Kicks specified character off the server" +unjail: "Params: \n" "Discharges specified character/prisoner" +kill: "Params: \n" "Kills player." +recall: "Params: \n" "Warps target character to you." +raise: "Params: \n" "Revives target character." +block: "Params: \n" "Permanently blocks an account." +unblock: "Params: \n" "Unblocks an account." +ban: "Params: