1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144 |
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Kafra Express Script Package Documentation %
- % - by Skotlex %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- This file's purpose is to give an indepth explanation about setting up, and
- configuring the Kafra Express Script Package (KESP). It is intended to be
- viewed by a text editor using fixed-width font and 80-character long lines.
- Document Version v2.0 (27/September/2006)
- ////////////////////////////////////////////////////////////////////////////////
- Table of Contents
- ////////////////////////////////////////////////////////////////////////////////
- [00] Including the NPC files and menu editing
- [01] Intro to module configuring and general options (config.txt)
- [02] Module: Main Core (ke_main.txt)
- [03] Module: Bank (ke_bank.txt)
- [04] Module: Broadcast (ke_broadcast.txt)
- [05] Module: Stylist (ke_dye.txt)
- [06] Module: Job Changer (ke_jobchange.txt)
- [07] Module: Job Swapper (ke_jobswap.txt)
- [08] Module: Smithery (ke_refine.txt)
- [09] Module: Renting (ke_refine.txt)
- [10] Module: Kafra Shop (ke_shop.txt)
- [11] Module: Stat/Skill Market (ke_statmarket.txt)
- [12] Module: Stat/Skill Resets/Raising (ke_stats.txt)
- [13] Module: Uncarding (ke_uncard.txt)
- [14] Module: Town Warping (ke_warp_town.txt)
- [15] Module: Dungeon Warping (ke_warp_dungeon.txt)
- [16] Module: PvP Warping (ke_warp_pvp.txt)
- [17] Module: WoE Warping (ke_warp_woe.txt)
- [18] The kafras.txt file: About Kafra Definitions
- ////////////////////////////////////////////////////////////////////////////////
- [00] Including the NPC files and menu editing
- ////////////////////////////////////////////////////////////////////////////////
- Because of the script's complexity, placing everything in a single file
- is out of the question, therefore the KESP comes bundled in different
- files. Because of the dynamic nature of the script, there are two things
- you need to do in order to enable/disable a particular service:
- 1. Include the txt file with the corresponding module.
- To include the txt files, you need to know two things: where are the script
- files located, and which is the configuration file where you place the npc
- includes. We'll assume on this guide that you unpacked the KESP in
- npc/custom/kafraExpress. The configuration file for scripts is
- conf/map_athena.conf for eA1.0rc5, and npcs/scripts_custom.txt for current eA
- SVN versions. Add the files you want in the following manner:
- npc: npc/custom/kafraExpress/ke_main.txt
- //npc: npc/custom/kafraExpress/ke_rent.txt
- The first line is including the file ke_main.,txt, while the following
- excludes ke_rent from being used. Placing the "//" at the beginning of the
- line is known as commenting, and it's a useful way of quickly toggling a
- certain script on/off. The following is the list of all files that come
- bundled in the package:
- npc: npc/custom/kafraExpress/kafras.txt
- npc: npc/custom/kafraExpress/config.txt
- npc: npc/custom/kafraExpress/ke_main.txt
- npc: npc/custom/kafraExpress/ke_bank.txt
- npc: npc/custom/kafraExpress/ke_broadcast.txt
- npc: npc/custom/kafraExpress/ke_dye.txt
- npc: npc/custom/kafraExpress/ke_jobchange.txt
- npc: npc/custom/kafraExpress/ke_jobswap.txt
- npc: npc/custom/kafraExpress/ke_rent.txt
- npc: npc/custom/kafraExpress/ke_shop.txt
- npc: npc/custom/kafraExpress/ke_statmarket.txt
- npc: npc/custom/kafraExpress/ke_stats.txt
- npc: npc/custom/kafraExpress/ke_refine.txt
- npc: npc/custom/kafraExpress/ke_uncard.txt
- npc: npc/custom/kafraExpress/ke_warp_dungeon.txt
- npc: npc/custom/kafraExpress/ke_warp_pvp.txt
- npc: npc/custom/kafraExpress/ke_warp_town.txt
- npc: npc/custom/kafraExpress/ke_warp_woe.txt
- What files can be commented, which files you want to include? On the minimum,
- you need ke_main.txt, kafras.txt and config.txt to have the bare-bones functionality.
- Refer to the table of context to see the relation between files and the
- services they offer.
- 2. Configure the Menus
- The second part of the configuration is adding/removing the menu entries that
- lead to the specific services. Failure to do this can either A. leave you with
- menu entries that lead to "Function Not found!" errors on the map server, or
- B. Services that were included, but you can't pick because they don't show up
- in the menu. The main file where you should configure the menus is ke_main.txt.
- From the main module, ke_main.txt, you must pick which services are available.
- The file contains eight menu sections, which is made up of two pairs of
- identitical menus. The only difference is that the first menu is displayed on
- Kafras placed on towns, while the second menu is for Kafras placed on fields and
- dungeons. The menu roughly looks like this:
- menu
- "- Leave",L_END,
- "- Heal Service ("<some code here>"z/10SP)",L_HEAL,
- "- Warp Service",L_WARP,
- // "- Use Storage ("<some code here>"z)",L_STORAGE,
- // "- Use Guild Storage ("<some code here>"z)",L_GUILD_STORAGE,
- "- Job Services",M_JOB,
- "- Other Services",M_OTHER,
- "- Save Respawn point",L_SAVE;
- This is the main menu, as you can see the only service unavailable is to use
- the storage. Like in the npc/config file, you can comment the lines of the
- services you do not want.
- WARNING: If you need to comment the last option of a menu, remember to replace
- the comma for a semi-colon on the next-to-last option or script parsing errors
- will occur.
- The "Warp Service" leads to the second pair of menus you can configure:
- menu
- "- Return",-,
- "- Dungeons",L_DUNGEON,
- // "- PvP Arena",L_PVP,
- // "- Guild Wars",L_GUILD_DUNGEON,
- "- Towns",L_TOWN;
- goto M_INIT;
- As before, you can comment/uncomment the features you want or not. Likewise,
- the third menu under "Job Services" contains features related to job changing,
- stats/skills and renting. The fourth pair is the "Other Services" menu which
- contains the rest of modules which are probably not going to be used
- frequently.
- For your convenience, the following is the list of all the menu options and the file(s) required for it to work:
- //Main Menu (under labels M_INIT/MD_INIT)
- "- Heal Service" -> ke_main.txt
- "- Warp Service"
- "- Use Storage" -> ke_main.txt
- "- Use Guild Storage" -> ke_main.txt
- "- Job Services"
- "- Other Services"
- "- Save Respawn point" -> ke_main.txt
- //Warp Menu (under labels M_WARP/MD_WARP)
- "- Dungeons" -> ke_warp_dungeon.txt
- "- PvP Arena" -> ke_warp_pvp.txt
- "- Guild Wars" -> ke_warp_gvg.txt
- "- Towns" -> ke_warp_town.txt
- //Job Services Menu (under labels M_JOB/MD_JOB)
-
- "- Change Job" -> ke_jobchange.txt
- "- Swap Job" -> ke_jobswap.txt
- "- Stat/Skill Services" -> ke_stats.txt
- "- Stat/Skill Market" -> ke_statmarket.txt
- "- Rental Service" -> ke_rent.txt
- //Other Services Menu (under labels M_OTHER/MD_OTHER)
- "- Bank Services" -> ke_bank.txt
- "- Use Kafra Shop" -> ke_shop.txt
- "- Broadcast a message" -> ke_broadcast.txt
- "- Refine Services" -> ke_refine.txt
- "- Uncard Services" -> ke_uncard.txt
- "- Stylist Service" -> ke_dye.txt
- "- Use a Kafra Pass" -> ke_main.txt
- ////////////////////////////////////////////////////////////////////////////////
- [01] Intro to individual module configuration.
- ////////////////////////////////////////////////////////////////////////////////
- For portability reasons, the configure options for every module is in the file
- config.txt, which lets you upgrade to future versions without having to
- readjust your settings every time.
- The config file has the options separated per module to make it easier to
- read. There may be bits of code in each section to avoid parsing configure
- options for unneeded variables which should be left alone. In some rare
- occassions variables from one module will be used in a different module (ie:
- Broadcasting PvP messages uses the variables from the pvp module). all variables
- follow the standard "ke<module initials>_variablename", so a variable called
- "kewd_discount" refers to the discount variable in the deep warps module (wd).
- For example, the renting module's configuration segment is:
- //-------------------------------------------------------------------------------
- //Config for the Renting Module
- //-------------------------------------------------------------------------------
- OnLoadRent:
- set $@kert_cartOnly, 0; //Set to 1 to enable only cart rental, 0 enables all add-ons.
- set $@kert_cartCost, 2000; //Cost to rent a Cart.
- set $@kert_falconCost, 2000; //Cost to rent a Falcon.
- set $@kert_pecoCost, 2000; //Cost to rent a PecoPeco.
- end;
- Variables are usually of two types: Exact value based or Percentage based.
- Exact value variables are often price for different services, while the
- percentage based are things like 30% discount when using Kafra Passes.
- Percentage values are expressed per-hundredth (that is, 10 = 10%, 100 = 100%)
- unless otherwise specified.
- Each variable has a small description next to it, hence the need of this
- document. In this document the variable type is identified next to it by: (1)
- when it's boolean, (%) when it's a percentage, ($) when it's a price, (#) for
- numbers and (") for strings.
- ////////////////////////////////////////////////////////////////////////////////
- [02] Module: Main Core (ke_main.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- This module offers the core functionality of the Kafra Express. Contains the
- main menu and handles the Kafra Pass Reserve Points system.
- Variables
- ================================================================================
- (1) ke_saveOnSpot
- -----------------
- When 1, a character's respawn point is saved exactly where they are standing.
- otherwise, the respawn point is specified by the kafra definition (see Section
- 18).
- ($) keh_hpCost
- ($) keh_spCost
- --------------
- The cost of healing sp per every 10 sp. For example, if the cost is 1, it
- costs 100z to heal 1000.
- ($) kes_cost
- ($) kegs_cost
- -------------
- The cost of using the storage, guild storage (respectively)
- (#) kekp_reset
- --------------
- For Kafra Passes. When set, the Pass expires after starting a chat with the
- Kafra the amount of times specified. Otherwise the variable remains active a
- pretty long time (probably all session). For example, if set to 2, after
- activating the pass and opening the storage, the Pass will still be active
- the next time you speak to a kafra, it will expire on the "third" time you
- speak to her.
- ($) kekp_reserveCost
- --------------------
- The cost in zeny of reserve points. When using a Kafra Pass many services will
- be cheaper, the amount of zeny saved is "used" to grant the player reserve
- points. For example, if the reserve cost is 100, for every 100z the player
- saves, he'll earn 1 reserve points. Reserve points can be used in scripts, and
- by default is used in the Al De Baran Kafra Headquarters to gain items. Use a
- value of 0 to disable Reserve Point gaining.
- (#) kekp_minReserve
- (#) kekp_maxReserve
- ---------------
- What is the minimum/maximum reserve points the player can gain when using a
- Kafra Pass per transaction? This only applies when the player has saved at
- least 1z.
- (") ked_users
- -------------
- Certain modules (in particular, the warping ones) have the ability to display
- the number of players related to the function (ie: number of users in a
- dungeon), in such cases this variable is used to display the 'unit' of said
- count. For example, if ked_users is "kids" then the related modules might
- display things like "- Glast Heim (6 kids)".
- ////////////////////////////////////////////////////////////////////////////////
- [03] Module: Bank (ke_bank.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- This modules enables characters to "store" zeny on a virtual bank account
- which is shared among characters of the same account. There can be deposits,
- withdrawals, which can have transactions fees associated.
- It is also possible to establish a monthly maintenance fee that has to be
- payed, when the player does not has enough money in the account to pay this
- fee, they stop gaining interests until they deposit enough to pay it up.
- Finally, all fees charged by the bank can be stored in a server-wide variable
- which may be used by other custom scripts.
- Variables
- ================================================================================
- (%) kebk_depositCost
- (%) kebk_withdrawCost
- ---------------------
- The Fee in % charged whenever a player does a deposit/withdrawal. For example,
- when a player deposits 100z and the fee is 3%, only 97z are deposited, and 3z
- are charged. Likewise, if a player withdraws 100z when the fee is of 5%,
- they'll withdraw 100z and an additional 5z will be removed from their accounts
- as fee cost.
- ($) kebk_minTransact
- ($) kebk_maxTransact
- --------------------
- The minimum/maximum values of a single transaction (deposit or withdrawal)
- ($) kebk_capacity
- -----------------
- Indicates what is the bank account capacity for players. That is, what is the
- maximum zeny their account can hold. You can't deposit anymore once the max
- has been reached, and daily interests are lost while maxed.
- (%) kebk_dayInterest
- --------------------
- The daily interests that the account makes. The value is in 0.01% units, so a
- value of 100 equals 1% daily interests.
- ($) kebk_monMaintenance
- -----------------------
- Monthly flat fee charged for maintenance.
- (1) kebk_useGlobalBank
- ----------------------
- When 1, every fee charged from the player goes into a server variable
- ($ke_globalbank), which can then be used by other scripts. is 0 by default
- because none of the Kafra Express modules uses it.
- ////////////////////////////////////////////////////////////////////////////////
- [04] Module: Broadcast (ke_broadcast.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Provides broadcasting services for players. Broadcasts can be local (current
- map only) or global (server announce), there are also four types of broadcast:
- Requests for a party, PvP Challenge invitations, General Broadcasts (player
- input the string they want to say) and General Anonymous Broadcasts (player
- name is not displayed when doing the broadcast).
- Note that the variables from ke_warp_pvp.txt will be used for auto-configuring
- the pvp broadcasts.
- Variables:
- ================================================================================
- (1) kebc_showOnline
- -------------------
- When 1, the total count of players will be displayed in the menu (map users
- next to the local broadcast entry, server users next to the global broadcast
- entry).
- ($) kebc_partyCost
- ($) kebc_pvpCost
- ($) kebc_cost
- ($) kebc_anonCost
- ------------------
- Respective base costs for doing Party-Requests/Pvp Challenge/General/Anonymous
- broadcasts.
- (%) kebc_globalFactor
- ---------------------
- When the broadcast is global, the base cost is multipled by this factor. If
- the factor is 500, then global broadcasts cost 5x times the cost of the map's
- broadcast.
- (%) kebc_discount
- -----------------
- Discount on broadcast prices when the Kafra Pass is active.
- ////////////////////////////////////////////////////////////////////////////////
- [05] Module: Stylist (ke_dye.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Offers cloth dye, hair dye and hair style changes, both by input and by wheel
- browsing. Does not consumes dyestuffs because it is designed for custom dye
- packages.
- Variables
- ================================================================================
- (1) kedy_enableHairstyle
- ------------------------
- If one, the menu will include hair-style changing options, otherwise only
- dye-changes are offered
- (#) kedy_styles
- ---------------
- Specifies the number of available hair styles
- (#) kedy_hair
- -------------
- Specificies the number of hair dyes
- (#) kedy_clothJN
- (#) kedy_clothJ1ST
- (#) kedy_clothJ2ND
- (#) kedy_clothJSN
- ------------------
- Specifies the number of cloth dyes based on job-type: Novices, First Classes,
- Second Classes, Super Novices.
- Note that special classes like Xmas or Wedding tend to not have palettes, and
- it should be handled server-side so that switching palettes with this module
- will not cause you client crashes.
- ////////////////////////////////////////////////////////////////////////////////
- [06] Module: Job Changer (ke_jobchange.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Offers job changing, including rebirth and baby classes. The rebirth system
- can allow people free changing through a different path, or forcing the
- correct path. Zeny can be charged/granted as well as weapons on job-change.
- Remaining Skill Points can be wiped, ignored or prevent the change from
- happening. Before changing players can review the consequences of doing so,
- including weapons to gain.
- Finally, there's an option that makes it possible to skip the novice class
- altogether and change directly to first jobs.
- Variables
- ================================================================================
- (#) kejc_skillsPolicy
- ---------------------
- Determines what to do with remaining skill points upon change:
- 0: No job changing until points are used.
- 1: Extra Skill Points are wiped.
- 2: Extra skill points are conserved.
- (#) kejc_upperPolicy
- --------------------
- What to do about the advanced classes?
- 0: Free for all, players can pick any advanced job regardless of the previous.
- 1: Force mode, classes are auto-selected from the previous path. In the
- case the path could not be determined (players changed jobs previously
- using other npcs), players will be able to select their next job.
- (#) kejc_disable
- ----------------
- Permits disabling some job trees from the changer (add as required):
- 1: You can't change to a S. Novice
- 2: You can't change to Taekwon (but if you are a Taekwon already, you can
- still change to Soul Linker/Star Gladiator)
- 4: Can't change to GunSlinger
- 8: Can't change to Ninja
- (1) kejc_announce
- -----------------
- When 1, a global announce will be done upon change.
- (1) kejc_resetDye
- -----------------
- If one, the cloth dye is reset upon changing.
- (1) kejc_skipNovice
- -------------------
- If one, players can skip the novice class and directly into their first job.
- Exploit proof, skills are wiped when changing to a 1st class this way, and
- their basic skill level is set to 9.
- (#) kejc_baseSN
- ---------------
- Base Level required before changing into a Super Novice.
- (#) kejc_base2ND
- (#) kejc_job2ND
- (#) kejc_cost2ND
- ----------------
- Base level, Job level and zeny required to change into a second job. If the
- cost is below zero, zeny will be given to the player instead of charged.
- (#) kejc_baseRebirth
- (#) kejc_jobRebirth
- (#) kejc_costRebirth
- --------------------
- Base level, Job level and zeny required before doing a rebirth (change to High
- Novice).
- (1) kejc_rebirthReset
- ---------------------
- If 1, when changing into a HighNovice characters will have their level reset
- to 1 (with the additional 100 stat points)
- (1) kejc_weaponPolicy
- ---------------------
- If 1, characters will get a weapon upon job change. For each first&second
- class there are two weapons to specify, the standard weapon and the "premium"
- one.
- (#) kejc_wBonusLv
- -----------------
- When characters reach this job level, they will receive the premium weapon instead of the normal one. If 0, premium weapons are disabled.
- (#) kejc_weapon1[]
- (#) kejc_weapon_21[]
- (#) kejc_weapon_22[]
- -----------------------
- These arrays contain the IDs of the normal weapons received upon job change
- for first, 2-1 and 2-2 classes (if weapon policy is in effect). Refer to the
- comments in the config file for identifying which position is for which job.
- (#) kejc_weapon2_21[]
- (#) kejc_weapon2_22[]
- --------------------
- These arrays contain the ID of the premium weapons received upon job change
- (if bonus weapon policy is in effect). Note that first classes can't get a
- bonus weapon, and that Bard/Dancers both receive the same weapon. Refer to the
- comments in the config file for identifying which position is for which job.
- ////////////////////////////////////////////////////////////////////////////////
- [07] Module: Job Swapper (ke_jobswap.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Permits characters to change jobs among other jobs of their same "level".
- This is, between first classes or between second classes. It is also possible
- to store the last job used and revert to it at a later date. Dye, Job Level
- and Skill Point count is saved, however the skill-tree is not saved and skills
- need be reallocated. When reverting to the previous class, characters might be
- able to return from an adv class to a normal one, but if they are baby
- classes, they can't change back to a normal one.
- Variables
- ================================================================================
- (#) kejs_disable
- -----------------
- You can disable some classes from swapping using this setting (add numbers as
- appropiate):
- 1: Super Novices may not swap/swap to.
- 2: Disable swapping for Taekwon/Star Gladiator/Soul Linker classes.
- 4: Disable swapping to/from GunSlinger.
- 8: Disable swapping to/from Ninja.
- For example, if you set it to 12 (8+4), the swap menu will not include
- Gunslinger nor Ninja, and they will find that they can't swap to other classes
- neither.
- (#) kejs_revertPolicy
- ---------------------
- Determines if Reverting classes is possible and when:
- 0: Cannot go back to the previous job.
- 1: Can only go back if the previous job belongs to the same type as the
- first (is also a 1st/2nd job and is the same normal/adv/baby category).
- 2: Can return to the previous job regardless (exception: when one of the
- two jobs is a baby job and the other is not).
- (1) kejs_announce
- -----------------
- If 1 does a server announce when swapping jobs.
- ($) kejs_revertCost
- -------------------
- Cost of changing to the previous job.
- (1) kejs_saveDye
- ----------------
- If one, the dye is saved when swapping and restored upon revert.
- (1) kejs_resetDye
- -----------------
- If 1 the clothe dye is reset upon swap.
- (%) kejs_swapDiscount
- (%) kejs_revertDiscount
- -----------------------
- Discount % to apply when the kafra pass is active for swapping/reverting.
- (#) kejs_job1ST
- (#) kejs_job2ND
- ---------------
- Minimum job level before being able to swap among 1st/2nd classes.
- ($) kejs_cost1ST
- ($) kejs_cost2ND
- ----------------
- Base cost of swaping jobs.
- (%) kejs_discount1ST
- (%) kejs_discount2ND
- --------------------
- Discount % to apply to the base cost for every job level above the minimum
- required. For example, if the discount is 1% per level and you change when you
- have +10 level more than the min necessary, you get a 10% discount.
- (%) kejs_preserve1ST
- (%) kejs_preserve2ND
- --------------------
- Indicates how much of the previous job level to preserve when changing. For
- example, if the preserve value is 50 (50%) and you change from a level 40
- Knight into Priest, you'll become a lv 20 Priest. Skill points are adjusted
- accordingly so it's exploit-free.
- ////////////////////////////////////////////////////////////////////////////////
- [08] Module: Smithery (ke_refine.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Offers the services usually found in the town smithery and then some more:
- Item refining, Item Repairing, Ore Purification (rough oris -> pure ones).
- Also sells Phracon and Emveretarcon.
- Item refining can follow all the rules of normal refining, but it can also
- override them to refine everything, or safe refines up to max level.
- Ore Purification can be extended to include all the rough materials that
- blacksmiths can purify (star dust -> star crumbs, for example).
- Variables
- ================================================================================
- (#) kerf_maxLv
- --------------
- Maximum refinement level of equipment.
- (1) kerf_safe
- -------------
- If 1 success chances are ignoring and refining never fails.
- (1) kerf_showChance
- -------------------
- If 1 the chance of success/failure is actually shown before confirming.
- (1) kerf_refineAll
- ------------------
- If 1 then unrefinable items will be refined too (like accesories)
- (%) kerf_discount
- -----------------
- Discount rate to be applied during forging when the Kafra Pass is active.
- ($) kerf_armorCost
- ($) kerf_weaponLv1Cost
- ($) kerf_weaponLv2Cost
- ($) kerf_weaponLv3Cost
- ($) kerf_weaponLv4Cost
- ----------------------
- Cost per level to refine armors, and level 1/2/3/4 weapons.
- (1) kerf_purifyAll
- ------------------
- If 1, the extended purify menu will be used, which shows how to purify steels,
- star crumbs, etc; otherwise, just elus and oris are available.
- ($) kerf_repairCost
- -------------------
- Cost of repairing a broken weapon.
- (%) kerf_repairDiscount
- -----------------------
- Repair Discount% when the kafra pass is active.
- (1) kerf_repairSteel
- --------------------
- If 1, a steel will be required to repair items.
- ////////////////////////////////////////////////////////////////////////////////
- [09] Module: Renting (ke_refine.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Allows renting of Cart/Falcon/PecoPeco. Note that the only restriction applied
- is whether the character has "PushCart", "Falcon Taming" or "PecoPeco Riding",
- it does not checks for the character's class.
- It must also be noted that renting is free while the Kafra Pass is active.
- Variables
- ================================================================================
- (1) kert_cartOnly
- -----------------
- If 1, this module only offers cart rentals. Otherwise you can rent any of the three.
- ($) kert_cartCost
- ($) kert_falconCost
- ($) kert_pecoCost
- -------------------
- Cost for renting carts/falcons/pecos.
- ////////////////////////////////////////////////////////////////////////////////
- [10] Module: Kafra Shop (ke_shop.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Allows invoking of a shop from the Kafra. Note that the shops must be of
- invisible type (ke_shop.txt has an example of two such shops). The config
- enables you to select whether the shop will allow buying, selling or
- both, as well as the name of the shops to use in towns or dungeons (if you
- want to use a custom shop defined elsewhere or want to use the same shop for
- both).
- Variables
- ================================================================================
- (#) $@kesh_towntype
- (#) $@kesh_duntype
- -------------------
- Specifies the type of transaction allowed at the shop. Use 1 to enable only
- buying of items, 2 for only selling, or any other value for both.
- (#) $@kesh_townshop$
- (#) $@kesh_dunshop$
- --------------------
- Specifies the name of the shop to use for buying/selling of items. By default
- the file includes two such shops which you can use, or you can disable them
- and specify your own in the config changing these variables.
- ////////////////////////////////////////////////////////////////////////////////
- [11] Module: Stat/Skill Market (ke_statmarket.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Not really a "market", this module lets players sell and buy stat/skill
- points. Also allows for direct trading between stats/skills.
- NOTE: Selling stat points can lead to zeny exploits if your server uses the
- stat_db.txt file, because players can then sell all their stat points, do a
- reset and get them back! To prevent this, set the following battle config
- option:
- use_statpoint_table: no
- Alternatively, you can set the selling point of statpoints to be 0z.
- Variables
- ================================================================================
- ($) kesm_stBuyPrice
- ($) kesm_stSellPrice
- --------------------
- Price for every stat point to be bought/sold.
- ($) kesm_skBuyPrice
- ($) kesm_skSellPrice
- --------------------
- Price for every skill point to be bought/sold.
- (%) kesm_discount
- -----------------
- Discount price when kafra pass is active. Only applies to buying stats/skills.
- (#) kesm_skTradePrice
- (#) kesm_stTradePrice
- ---------------------
- These two define how many stat points are traded per each skill point when
- doing a direct conversion between stats/skills. The idea is that trading
- directly one for the other should be cheaper than selling them and then buying
- from the other. You can set both to the same value and the trading will have
- no loss.
- Notice that skTradePrice is the cost for converting stats to skills and
- stTradePrice is the cost for converting skills to stats. So... NEVER set
- stTradePrice higher than skTradePrice or you allow an easy exploit of infinite
- stats/skills!
- ////////////////////////////////////////////////////////////////////////////////
- [11] Module: Stat/Skill Resets/Raising (ke_stats.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Does stat/skills resets, and additionally helps characters raise their basic
- stats faster. Optionally, skill resets will not touch the basic-skill level.
- Price have two components: base fee and per level fee, so characters with
- higher levels will have to pay more for a reset than low level ones.
- For stat resetting, base level is taken into account. For skill resets, job
- levels. For a dual reset, the addition of both is considered. Also, when taken
- into consideration job level for second classes, the job-level at which one
- changed jobs is also considered. So a Job level 1 Knight actually has job
- level of 41~51.
- NOTE: Be careful with quest skills. If your server is configured to reset
- quest skills and players can get their quest skills for free, you are letting
- them exploit the system and get unlimited skill points! (even worse if they
- can sell'em in the Stat/Skills market module). Be sure to either remove free
- quest skills npcs or make quest skills not resetable.
- Variables:
- ================================================================================
- ($) kest_stResetCost
- --------------------
- Base cost of doing a stat reset.
- ($) kest_skResetCost
- --------------------
- Base cost of doing a skill reset.
- ($) kest_resetCost
- ------------------
- Base cost of a dual reset.
- ($) kest_BaseLvCost
- -------------------
- Cost per Base level for doing a stat reset.
- ($) kest_JobLvCost
- ------------------
- Cost per Job level for doing a skill reset.
- ($) kest_BothLvCost
- -------------------
- Cost per Base+Job level for doing a dual reset.
- (%) kest_discount
- -----------------
- Discount % applied when Kafra Pass is active.
- (1) kest_resetBasic
- -------------------
- If 1, the skill "basic skill" is also reset.
- ////////////////////////////////////////////////////////////////////////////////
- [12] Module: Uncarding (ke_uncard.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- This module allows people to remove cards from their equipped items. Prices
- are modified by the item type, the amount of cards and the refine level of the
- item. There's also a chance the removal will fail and: Nothing is lost, the
- card or item is lost, both are lost. The procedure may also require up to two
- different items (and each one with their own specified qty).
- Variables:
- ================================================================================
- ($) keuc_BaseCost
- -----------------
- Base cost of uncarding, modified by the following conditions:
- ($) keuc_CardCost
- -----------------
- Each card to be removed increases the total by this value.
- ($) keuc_UpgradeCostA
- ($) keuc_UpgradeCostW1
- ($) keuc_UpgradeCostW2
- ($) keuc_UpgradeCostW3
- ($) keuc_UpgradeCostW4
- ----------------------
- These indicate the price increase per refine level for armors and weapons
- levels 1/2/3/4. A +10 armor gets a price increases of ten times
- keuc_UpgradeCostA.
- (%) keuc_discount
- -----------------
- Discount % to apply when kafra pass is active.
- (#) keuc_Mat1
- (#) keuc_Qty1
- -------------
- Id and Qty of the first material that is needed to uncard. If the qty is zero,
- then it's disabled.
- (#) keuc_Mat2
- (#) keuc_Qty2
- -------------
- id & Qty of the second material to use. Only valid if the first material was
- also defined, use qty=0 to disable.
- (%) keuc_Fail0Chance
- --------------------
- This is the safe failure chance (0-1000, where 1000 = 100.0%). A Safe failure
- means the original item remains intact, but you are still charged the money
- and the materials. Use 0 to disable this type of failure.
- (%) keuc_Fail1Chance
- --------------------
- This is the partial failure chance (0-1000). Partial failures are when either
- the cards or the item is lost. The player gets to choose which one is more
- important before proceeding. Use 0 to disable.
- (%) keuc_Fail2Chance
- --------------------
- Total failure chance (0-1000). When this triggers, both item and cards are
- lost. Use 0 to disable.
- ////////////////////////////////////////////////////////////////////////////////
- [14] Module: Town Warping (ke_warp_town.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- This module enables warping to towns. Currently all towns have the same
- warping cost, independent of how far away they are placed. The only exception
- is Niflheim, which is more of a dungeon than a town.
- Variables
- ================================================================================
- (1) kewt_showOnline
- -------------------
- If set to 1, the menus will display the online count of players in
- towns.
- ($) kewt_cost
- -------------
- Cost of warping to a town.
- ($) kewt_niflCost
- -----------------
- Cost of warping to Niflheim. Different cost since Niflheim is more of a
- dungeon than a city. Also, players can't warp to Niflheim until they do the
- Niflheim Piano Key Quest.
- (#) kewt_travel
- ---------------
- Allows enabling the traveller system. The traveller system makes it so you can't
- warp to a town until you have been there first by some other means (usually
- walking) and saved with the Kafra Express in that town.
- There are three valid values for this variable: 0, 1, 2.
- 0 - Disables this mode.
- 1 - Uses the mode on a per character basis; that is, each character needs to
- travel to that town and save and that unlocks warping only for that
- character.
- 2 - Uses the mode on a per account basis; that is, once a character has saved
- on a town, all other (and future) characters from the same account have the
- warp unlocked.
- (1) kewt_free
- -------------
- If 1, players will be able to warp to towns even if they run out of money.
- Niflheim excepted.
- (%) kewt_discount
- -----------------
- Discount % to apply when warping while the Kafra Pass is active.
- ////////////////////////////////////////////////////////////////////////////////
- [15] Module: Dungeon Warping (ke_warp_dungeon.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- Offers warps to all dungeons. Dungeon warping has two main operation modes:
- Deep Dungeon Warping and Short Dungeon Warping. Deep Dungeon warping enables
- players to warp to any level of any dungeon, while Short Dungeon Warping is
- restricted to warping only to the entrance of the dungeon. Traveller's mode is
- also available for dungeons.
- Variables
- ================================================================================
- (1) kewd_showOnline
- -------------------
- If set to 1, the menus will display the online online count of characters in
- the dungeons.
- (%) kewd_discount
- -----------------
- Discount % to apply when warping while the Kafra Pass is active.
- (#) kewd_travel
- ---------------
- Enables the traveller system. Just like the traveller's system for towns,
- you can't warp to any dungeon to which you have not visited first on foot and
- saved with the corresponding Kafra Express first.
- If 1, traveller's mode is enabled on a per character basis (so once a
- character saves, only that character has unlocked the warp).
- If 2, traveller's mode is enabled on a per account basis (so once a character
- saves, all charaters of the corresponding account have the warp unlocked).
- (1) kewd_deep
- -------------
- This variable decides whether deep or short warps will be used. As explained
- on the description, enabling deep warps allows warping to any dungeon level.
- (%) kewd_levelCost
- ------------------
- This variable only applies to deep warps. It indicates in percentage the cost
- increase per level. For example, if the dungeon costs 1000z to warp to, and
- the levelCost increase is of 50 (50%) then warping to level 2 costs 1500, lv3
- costs 2000, and so on.
- (%) kewd_entryDiscount
- ----------------------
- The discount for using the Kafra in the dungeon entrance to warp within the
- dungeon. For example, if you use the Kafra next to Payon dungeon to warp to
- Payon Dungeon lv5, this discount is then applied. This variable only makes
- sense on deep warp mode.
- (1) kewd_turtleCave
- -------------------
- Only used on short warps. If 1, then warping to Turtle Dungeon should lead
- directly to the cave's entrance, otherwise it warps you to the Island's
- entrance.
- ($) kewd_<dungeon name>
- ---------------------
- There is a config variable for every dungeon, it specifies the base cost of
- warping to that dungeon (which is, the entrance level cost).
- ////////////////////////////////////////////////////////////////////////////////
- [16] Module: PvP Warping (ke_pvp.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- The PvP warping module leads to the pvp maps named pvp_n_*-*. It has two
- modes: simple and advanced. On simple mode, every player of every level gets
- thrown into the pvp_n_1-* maps to nuke it out, on advanced mode each of
- the map groups gets their own range of permissible levels to enter. Since
- there is no sure way how characters should escape from a pvp map, they are
- currently given a butterfly wing when they warp.
- Variables
- ================================================================================
- (1) kewp_showOnline
- -------------------
- If 1, the menu entries will display the online count of players of each entry.
- (1) kewp_advanced
- -----------------
- Use the advanced pvp system if 1 (see module description)
- ($) kewp_cost
- -------------
- Cost of warping to the pvp rooms used in non-advanced rooms and "free for all"
- in advanced mode.
- ($) kewp_cost1
- ($) kewp_cost2
- ($) kewp_cost3
- ($) kewp_cost4
- ($) kewp_cost5
- ($) kewp_cost6
- ($) kewp_cost7
- --------------
- The costs for each of the pvp room groups in advanced mode.
- (#) kewp_baseLv1
- (#) kewp_baseLv2
- (#) kewp_baseLv3
- (#) kewp_baseLv4
- (#) kewp_baseLv5
- (#) kewp_baseLv6
- (#) kewp_baseLv7
- ----------------
- These indicate the nominal base level for each room (which base level should
- characters be around to join it). Applicable only to advanced mode.
- (#) kewp_range
- --------------
- Specifies how far away the character's level can be from the nominal value to
- still be allowed within the room. If the nominal level is 50 and the range is
- 3, only characters with levels 47-53 may join.
- ////////////////////////////////////////////////////////////////////////////////
- [17] Module: WoE Warps (warp_woe.txt)
- ////////////////////////////////////////////////////////////////////////////////
- Description
- ================================================================================
- This module allows characters to warp into the WoE grounds during (or out of)
- War of Emperium times. Players may warp directly into the Guild Dungeons if
- the proper lines are uncommented on the warp menu (See warp_woe.txt's header
- for the location of the menu entries):
- menu "- Cancel",-,
- // "- Guild Dungeons",M_DUNGEON,
- "- Al De Baran Guild ("<some code>"z)",L_ALDEBARAN,
- "- Geffen Guild ("<some code>"z)",L_GEFFEN,
- "- Payon Guild ("<some code>"z)",L_PAYON,
- "- Prontera Guild ("<some code>"z)",L_PRONTERA;
- return;
- Variables
- ================================================================================
- (1) kewg_check
- --------------
- Does a guild check. If 1, only characters who belong to a guild can use these
- warps.
- (1) kewg_checkAgit
- ------------------
- Does the WoE times check. If 1, only during War of Emperium the warps will be
- active.
- (1) kewg_showOnline
- -------------------
- Set to 1 to display in the menus the online count of players in each of the
- guild areas. It also adds a menu entry that displays the summary of players
- within each castle and guild grounds.
- (%) kewg_discount
- -----------------
- Discount % to be applied for warps while the Kafra Pass is active.
- ($) kewg_baldur
- ($) kewg_luina
- ($) kewg_valkyrie
- ($) kewg_britoniah
- ------------------
- Costs to the respective guild dungeons when enabled.
- ($) kewg_alDeBaran
- ($) kewg_geffen
- ($) kewg_payon
- ($) kewg_prontera
- ------------------
- Costs to each of the guild grounds.
- ////////////////////////////////////////////////////////////////////////////////
- [18] The kafras.txt file: About Kafra Definitions
- ////////////////////////////////////////////////////////////////////////////////
- The file kafras.txt contains the definition of the Kafras, which is the actual
- sprite on-screen that characters speak with. An enabled kafra may look like
- this:
- //Alberta
- alberta,113,53,7 script Kafra Express 116,{
- callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta",116,57;
- }
- And a disabled/commented Kafra would look like this:
- //Prontera Guild Grounds
- //prt_gld,127,163,5 script Kafra Express 115,{
- // callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld",129,170;
- //}
- For scripters, the way to define an NPC is not new, and beyond the scope of
- this document, so I'll only document the function "F_KafraExpress":
- F_KafraExpress (String "Kafra's name", String "kafra image file", int location, String map, int x, int save y)
- The first parameter, the Kafra's name, is the name that will be displayed all
- over the dialogue windows. The Kafra Image file is the image that is to be
- displayed on the screen during the npc chat (without the extension). You can
- use "" to disable the image.
- Location refers to the type of Kafra. Type=0 refers to Kafras in towns while
- Type=1 refers to Kafras placed in the wild, ie: in dungeons. Type=2 is for
- Kafras that should count as both town & dungeon. Under these situations, the
- menus displayed are those of the town, the type is used for the traveller's
- warping mode. Finally, Type=3 is a special type used only for the Niflheim
- Kafra.
- The last three Parameters are used to define the save location when you save
- your respawn. They are not needed if you use the "Save-on-spot" feature, but
- it's recommended to pass them nevertheless. Note that the map name will still
- be used when using traveller's mode.
|