diff options
36 files changed, 0 insertions, 5642 deletions
diff --git a/doc/atcommands.txt b/doc/atcommands.txt deleted file mode 100644 index 1e2bc786c..000000000 --- a/doc/atcommands.txt +++ /dev/null @@ -1,1457 +0,0 @@ -//===== Hercules Documentation =============================== -//= Atcommand List -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20130115 -//===== Description: ========================================= -//= List of available atcommands and their functions. -//============================================================ - -This file describes the usage of in-game commands and assumes that -'conf/atcommand.conf' has the following: - atcommand_symbol : "@" - charcommand_symbol: "#" - -To search for a command, write "@" before the command name (ex. @commands). -The format of this file is as follows: - 1. System Commands - 2. Database Commands - 3. Player Information Commands - 4. Action Commands - 5. Administrative Commands - 6. Party Commands - 7. Guild Commands - 8. Pet Commands - 9. Homunculus Commands - -====================== -| 1. System Commands | -====================== - -@version - -Displays SVN version of the server. - ---------------------------------------- - -@rates - -Displays the server rates. - -Output Example: -Experience rates: Base 1.00x / Job 1.00x -Normal Drop Rates: Common 1.00x / Healing 1.00x / Usable 1.00x Equipment 1.00x / Card 1.00x -Boss Drop Rates: Common 1.00x / Healing 1.00x / Usable 1.00x Equipment 1.00x / Card 1.00x -Other Drop Rates: MvP 1.00x / Card-Based 1.00x / Treasure 1.00x - ---------------------------------------- - -@time - -Displays the local server time, along with day/night information. - ---------------------------------------- - -@uptime - -Show server uptime since last map server restart. - -Output Example: -Server Uptime: 3 days, 8 hours, 6 minutes, 4 seconds. - ---------------------------------------- - -@refresh -@refreshall - -Synchronizes the player's position on the client with the one stored on the server. -Additionally, @refreshall will refresh all online players. - ---------------------------------------- - -@showexp - -Toggles the display of experience gain messages. - ---------------------------------------- - -@showzeny - -Toggles the display of Zeny gain messages. -Configuration for zeny being dropped by mobs is in '/conf/battle/monster.conf': -zeny_from_mobs: yes - ---------------------------------------- - -@showdelay - -Shows or hides the red "Cannot use the skills" message. - -Output Example: -[Storm Gust] Cannot use the skills. - ---------------------------------------- - -@noask - -Toggles automatic rejection of deals and invites. - ---------------------------------------- - -@noks - -Toggles Kill Steal Protection. - ---------------------------------------- - -@font <0-9> - -Sets client font (0 is the default). - ---------------------------------------- - -@agitstart -@agitend - -Starts or ends War of Emperium [FE] by invoking scripts with the -OnAgitStart/OnAgitEnd labels. - ---------------------------------------- - -@agitstart2 -@agitend2 - -Starts or ends War of Emperium [SE] by invoking scripts with the -OnAgitStart2/OnAgitEnd2 labels. - ---------------------------------------- - -@pvpon -@pvpoff - -Enables or disables PvP (Player vs. Player) mode on a map. - ---------------------------------------- - -@gvgon -@gvgoff - -Enables or disables GvG (Guild vs. Guild) mode on a map. - ---------------------------------------- - -@skillon -@skilloff - -Enables or disables skill usage on a map. - ---------------------------------------- - -@allowks - -Toggles Kill Steal Protection on a map. - ---------------------------------------- - -@day -@night - -Sets the server to day or night mode. - ---------------------------------------- - -@sound <filename> - -Plays the specified sound. - ---------------------------------------- - -@snow -@clouds -@clouds2 -@fog -@fireworks -@sakura -@leaves - -Toggles weather effects on your map. - ---------------------------------------- - -@clearweather - -Stops all weather effects. May require a map change or @refresh -for the effect to stop client-side. - ---------------------------------------- - -@mapflag <flag> <value 0-1> - -Sets a mapflag for the current map (1 = On, 0 = Off). - ---------------------------------------- - -@addwarp <map> <x> <y> <npc name> - -Creates a warp portal on the character's current coordinates that lasts until the next reboot. -The name parameter is mandatory and if it already exists, the server will automagically assign a name, -and it will be displayed only once in the chat window. - -Example: -@addwarp prontera 50 50 my_warp_sample - -Output: -New warp NPC 'my_warp_sample' created. - ---------------------------------------- - -@effect <effect ID> - -Creates a visual effect on or around the character. -A list of IDs can be found in '/db/const.txt'. -Descriptions of the effects can be found in '/doc/effect_list.txt'. - ---------------------------------------- - -@misceffect - -Does some visual effect on the character (more info needed). - ---------------------------------------- - -@displayskill <skill ID> {<skill level>} - -Displays the animation of a skill without really using it (debug function). - ---------------------------------------- - -@option {<param 1> {<param 2> {<param 3>}}} - -Adds visual effects to the attached character. -If no parameter is specified, a list of available options will be returned. - ---------------------------------------- - -@displaystatus <status type> <flag> <tick> {<val1> {<val2> {<val3>}}} - -Displays a status change without really applying it (debug function). - ---------------------------------------- - -@send <Hex Number> {<value>} - -Used for testing packet sends from the client (debug function). -Value: <type=B(default),W,L><number> or S<length>"<string>" - ---------------------------------------- - -@mapinfo - -Displays information about the current map. - -Output Example: ------- Map Info ------ -Map Name: prontera | Players In Map: 1 | NPCs In Map: 127 | Chats In Map: 0 ------- Map Flags ------ -Town Map -Autotrade Enabled -PvP Flags: -GvG Flags: -Teleport Flags: -No Exp Penalty: On | No Zeny Penalty: On -Weather Flags: Displays Night | -Other Flags: NoBranch | Reset | -Other Flags: - ---------------------------------------- - -@gat - -Gives information about terrain/area (debug function). - -Output Example: -prontera (x= 165, y= 202) 00 00 00 00 00 -prontera (x= 165, y= 201) 01 00 00 00 00 -prontera (x= 165, y= 200) 01 00 00 00 00 -prontera (x= 165, y= 199) 01 00 00 00 00 -prontera (x= 165, y= 198) 01 00 00 00 00 - ---------------------------------------- - -======================== -| 2. Database Commands | -======================== - -@mobinfo <mob name/ID> - -Displays monster information (rates, stats, drops, MVP data). - -Example: -@monsterinfo Poring - -Output: -Monster: 'Poring'/'Poring'/'PORING' (1002) -Lv: 1 HP:60 Base EXP:27 Job EXP:20 HIT:103 FLEE:183 -DEF:2 MDEF:5 STR:6 AGI:1 VIT:1 INT:1 DEX:6 LUK:5 -ATK:8~9 Range:1~10~12 Size:Medium Race:Plant Element:Water (Lv:1) -Drops: - - Jellopy 70.00% - Knife[4] 1.00% etc... - ---------------------------------------- - -@iteminfo <item name/ID> - -Displays item information (type, price, weight, drops). - -Example: -@iteminfo Jellopy - -Output: -Item: 'Jellopy'/'Jellopy'[0] (909) Type: Etc. | Extra Effect: None -NPC Buy:6z, Sell:3z | Weight: 1.0 -- Maximal monsters drop change: 75.00% - ---------------------------------------- - -@whodrops <item name/ID> - -Displays a list of mobs which drop the specified item. -Only the highest drop rates are shown. - ---------------------------------------- - -@autoloot {<%>} - -Enables or disables autolooting items from killed mobs. -If a percentage is given, only items dropped at that rate and below will be autolooted. - ---------------------------------------- - -@alootid <+/- item name/ID> -@alootid reset - -Starts or stops autolooting a specified item. -Typing "reset" will clear the autoloot item list. -By default, 10 items can be autolooted at one time. - ---------------------------------------- - -@autoloottype <+/-><type name> -@autoloottype reset - -Starts or stops autolooting a specified item type. -Type List: healing, usable, etc, weapon, armor, card, petegg, petarmor, ammo. -Typing "reset" will clear the autoloot item list. - ---------------------------------------- - - -@mobsearch <monster name> - -Locates and displays the position of a certain mob on the current map. - -Output Example: -1[155:184] Poring -2[154:188] Poring -3[127:146] Poring - ---------------------------------------- - -@idsearch <item name> - -Looks up an item by name (or part of a name). - ---------------------------------------- - -@showmobs <monster name/ID> - -Locates and displays the position of a certain mob on your mini-map. -This shows up as a small white cross (+). - ---------------------------------------- - -@whereis - -Displays the maps in which monster normally spawns. -This does not include mobs summoned by scripts. - ---------------------------------------- - -@skillid <skill name> - -Looks up a skill by name (or part of a name). - ---------------------------------------- - -@skilltree <skill ID> <target> - -Lists requirements to obtain the specified skill on the target character. - ---------------------------------------- - -@questskill {<skill ID>} -@lostskill {<skill ID>} - -Permanently adds or removes the specified quest skill. -If no skill ID is specified, a list of available skills will be returned. - ---------------------------------------- - -@useskill <skill ID> <skill level> <target> - -Casts the specified skill. - -Example: -@useskill 28 5 Char2 --> casts Level 5 Heal on player Char2 - ---------------------------------------- - -================================== -| 3. Player Information Commands | -================================== - -@commands - -Displays a list of @ commands available to the player. - ---------------------------------------- - -@charcommands - -Displays a list of # commands available to the player. - ---------------------------------------- - -@help <command> - -Displays the help message for the specified command. - ---------------------------------------- - -@exp - -Displays current levels and % progress. - -Output Example: -Base Level: 13 (3.323%) | Job Level: 10 (0.000%) - ---------------------------------------- - -@stats - -Displays the stats of the attached player in your chat bar. - ---------------------------------------- - -@storagelist <player name> - -Displays Kafra storage contents of the specified player. - ---------------------------------------- - -@cartlist <player name> - -Displays cart contents of the specified player. - ---------------------------------------- - -@itemlist - -Displays inventory contents of the attached player. - ---------------------------------------- - -@who -@who2 -@who3 - -Returns a list of online characters. -@who will also return character positions. -@who2 will also return job classes. -@who3 will also return parties/guilds. - ---------------------------------------- - -@whomap -@whomap2 -@whomap3 - -Returns a list of online characters in a specific map. -@whomap will also return character positions. -@whomap2 will also return job classes. -@whomap3 will also return parties/guilds. - ---------------------------------------- - -@whogm - -Returns a list of GMs online. -For those who are higher GM level than yourself, only name is shown. -For the rest, the command acts as a combination of @who+@who2+@who3. - ---------------------------------------- - -@users - -Displays distribution of players on the server per map (% on each map which has players.) - -Output Example: -prontera: 1 (50%) -prt_fild01: 1 (50%) -all: 2 - ---------------------------------------- - -@where <player_name> - -Locates a player on a map. The player must be online. - ---------------------------------------- - -@jailtime - -Displays remaining jail time. -If @jail was used, the chat window will display "You have been jailed indefinitely". - ---------------------------------------- - -@accinfo <player name/account id> - -Searches for an account by ID or a character name, and outputs detailed information. -Password will only be displayed for group levels lower than yours. -To search partial names, "%" can be used as a wildcard. - -Example: -@accinfo Test% - -Output: --- Account 2000001 -- -User: user123 | GM Group: 0 | State: 0 -Password: password123 -Account e-mail: a@a.com -Last IP: 127.0.0.1 (Unknown) -This user has logged 27 times, the last time were at 2012-11-24 17:29:07 --- Character Details -- -[Slot/CID: 0/150001] Test1 | High Swordsman | Level: 99/50 | Off -[Slot/CID: 1/150002] Test2 | Rune Knight | Level: 150/50 | On - -====================== -| 4. Action Commands | -====================== - -@me <message> - -Displays the text as a normal message with the format "*name <message>*" instead of "name: <message>". - ---------------------------------------- - -@main {<message>} - -Broadcasts a message to all players with @main enabled. -Using the command without a message will enable or disable main chat. - ---------------------------------------- - -@storage - -Opens your Kafra storage. - ---------------------------------------- - -@mail - -Opens your mailbox. - ---------------------------------------- - -@auction - -Opens the auction window. - ---------------------------------------- - -@identify - -Opens the Identification window if any unappraised items are in your inventory. - ---------------------------------------- - -@trade <player name> - -Opens the trade window with the specified player. - ---------------------------------------- - -@autotrade - -Allows you continue vending offline, then logs off. -The character will continue vending until you log in to that account again, -all items are sold, or the mapserver closes. - ---------------------------------------- - -@monster <monster name/ID> {<amount>} -@monstersmall <monster name/ID> {<amount>} -@monsterbig <monster name/ID> {<amount>} - -Spawns the specified monster. -If an amount is given, that number will be spawned. -Additionally, monster size can be adjusted. - ---------------------------------------- - -@summon <monster name/ID> {<duration>} - -Spawns mobs that treat you as their master. -If a duration is specified, they will stay with you until the duration has ended. - ---------------------------------------- - -@clone <player name/ID> -@slaveclone <player name/ID> -@evilclone <player name/ID> - -Spawns a clone of the specified player. -@clone will spawn a supportive clone. -@slaveclone will spawn a supportive clone that follows the creator around. -@evilclone will spawn an aggressive clone. - ---------------------------------------- - -@item <item name/ID> {<amount>} -/item <item name/ID> -@delitem <item name/ID> <amount> - -Creates or removes the specified item. -If an amount is given for @item, that number will be created. - ---------------------------------------- - -@item2 <item name/ID> <quantity> <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4> - -Creates an item with the given parameters (the 'cards' can be any item). -identify_flag: 0 = unidentified, 1 = identified -attribute: 0 = not broken, 1 = broken - ---------------------------------------- - -@itembound <item name/ID> <amount> <bound_type> - -Creates the specified item and bounds it to the account. -bound_type: 1 = Account, 2 = Guild, 3 = Party, 4 = Character - ---------------------------------------- - -@itembound2 <item name/ID> <quantity> <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4> <bound_type> - -Creates an item with the given parameters (the 'cards' can be any item) and bounds it to the account. -identify_flag: 0 = unidentified, 1 = identified -attribute: 0 = not broken, 1 = broken -bound_type: 1 = Account, 2 = Guild, 3 = Party, 4 = Character - ---------------------------------------- - -@produce <equip name/ID> <element> <# of Very's> - -Creates a weapon with the given parameters. - -Example: -@produce 1602 1 2 --> crafts an item called "Very Very Strong Char's Ice Rod". - ---------------------------------------- - -@refine <equip position> <+/- amount> - -Refines an equipped item by the specified amount. -0: All Equipment -1: Lower Headgear -2: Right Hand -4: Garment -8: Left Accessory -16: Body Armor -32: Left Hand -64: Shoes -128: Right Accessory -256: Top Headgear -512: Mid Headgear - ---------------------------------------- - -@repairall - -Repairs all broken items in your inventory. - ---------------------------------------- - -@dropall - -Drops all inventory and equipped items onto the floor. - ---------------------------------------- - -@storeall - -Places all inventory and equipped items directly into your Kafra Storage. - ---------------------------------------- - -@itemreset - -Deletes all inventory items (not equipped items). - ---------------------------------------- - -@clearstorage -@cleargstorage - -Deletes all items in storage (or guild storage). - ---------------------------------------- - -@clearcart - -Deletes all items in cart, but does not remove the cart. - ---------------------------------------- - -@cleanarea -@cleanmap - -Deletes floor items in sight range or across the entire map. - ---------------------------------------- - -@save - -Sets your save point as your current map coordinates. - ---------------------------------------- - -@memo {<0-2>} - -Saves a warp point for the "Warp Portal" skill. -If a number is not specified, the command will output all currently saved locations. -Location "void" indicates an empty warp point. - ---------------------------------------- - -@load - -Warps to your save point. - ---------------------------------------- - -@jump - -Warps to a random coordinate on the current map. - ---------------------------------------- - -@go {<location name/ID>} - -Warps to predefined locations in major cities. -If no ID is given, all available maps will be displayed in the chat window. -Locations and coordinates are stored in '/src/map/atcommand.c'. - ---------------------------------------- - -@warp <map> {<x> <y>} -/mm <map> {<x> <y>} -/mapmove <map> {<x> <y>} - -Warps to the specified map. -If no coordinates are entered, a random location will be chosen. - ---------------------------------------- - -@jumpto <player name/ID> -@follow <player name> - -Warps to the specified player. -Additionally, @follow will track the player's movements until turned off. - ---------------------------------------- - -@recall <player name> -/recall <player name> -@recallall - -Warps a character to your position. -Additionally, @recallall will recall the entire server. - ---------------------------------------- - -@tonpc <npc name> - -Warps to the specified npc. - ---------------------------------------- - -@killer - -Allows you to attack other players outside of PvP. - ---------------------------------------- - -@killable - -Allows other players to attack you outside of PvP. - ---------------------------------------- - -@blvl <+/- amount> -@jlvl <+/- amount> - -Changes base or job level by the specified amount. - ---------------------------------------- - -@str <+/- amount> -@agi <+/- amount> -@vit <+/- amount> -@int <+/- amount> -@dex <+/- amount> -@luk <+/- amount> - -Changes the specified stat of your character. - ---------------------------------------- - -@allstats - -Sets all stats to the maximum (default is 99). - ---------------------------------------- - -@allskill - -Gives your character all skills in their current skill tree. - ---------------------------------------- - -@stpoint <+/- amount> -@skpoint <+/- amount> - -Changes unused status or skill points by the specified amount. - ---------------------------------------- - -@streset -@skreset -@reset - -Resets stats (@streset), skills (@skreset), or both (@reset). - ---------------------------------------- - -@feelreset - -Resets a Star Gladiator's marked maps. - ---------------------------------------- - -@jobchange <job name/ID> - -Changes your job. -If no job is given, a list of all available jobs will be returned. -Note that jobs 22 (Wedding), 26 (Summer), and 27 (Christmas) are not available via @job. - ---------------------------------------- - -@speed <0-1000> - -Sets the speed at which the character walks and attacks. -Default is 150 (0 is fastest, 1000 is slowest). - ---------------------------------------- - -@spiritball <0-100> - -Summons the specified amount of spirit spheres around you. - ---------------------------------------- - -@mount -@mount2 - -Toggles mounting/unmounting a peco (@mount) or cash mount (@mount2). - ---------------------------------------- - -@zeny <+/- amount> - -Changes Zeny by the specified amount. - ---------------------------------------- - -@cash <+/- amount> - -Changes Cash Points by the specified amount. - ---------------------------------------- - -@points <+/- amount> - -Changes Kafra Points by the specified amount. - ---------------------------------------- - -@model <hair style> <hair color> <cloth color> -@hairstyle <default: 0-27> -@haircolor <default: 0-8> -@dye <default: 0-4> - -Changes appearance based on the given parameters. -The min/max values are set in '/conf/battle/client.conf'. - ---------------------------------------- - -@changelook {position} <view ID> - -Changes the player's appearance to the specified view ID. -If no position is given, the command defaults to headgear. -1: Top -2: Middle -3: Bottom -4: Weapon -5: Shield -6: Shoes -7: Robe - ---------------------------------------- - -@fakename {<text string>} - -Temporarily changes name to the specified string. -If no string is given, the character's real name will be re-applied. - ---------------------------------------- - -@size <0-2> -@sizeall <0-2> - -Changes your size (0 = Normal, 1 = Small, 2 = Large). -Additionally, @sizeall will change the size of all online players. - ---------------------------------------- - -@duel {<player name>} -@invite <player name> -@accept -@reject -@leave - -Duel-organizing commands. -Some options can be found in '/conf/battle/misc.conf'. - ---------------------------------------- - -@heal - -Fully heals HP and SP. - ---------------------------------------- - -@alive -@raisemap -@raise - -Resurrection commands. -@alive will revive the attached player. -@raisemap will revive all players on the map. -@raise will revive all players on the server. - ---------------------------------------- - -@disguise <monster/npc name/ID> -@undisguise -@disguiseall <monster/npc name/ID> -@undisguiseall - -Disguises or undisguises player as a monster/NPC sprite. -Additionally, @disguiseall/@undisguiseall will disguise all online players. - ---------------------------------------- - -@monsterignore - -Makes you immune to attacks (monsters/players/skills cannot target/hit you). - ---------------------------------------- - -@hide -/hide - -Toggles GM Hide (total invisibility to characters and monsters). - ---------------------------------------- - -@npctalk <npc name> <message> - -Command what other npcs say. -Displays the message above the NPC's head (like the 'npctalk' script command). - ---------------------------------------- - -============================== -| 5. Administrative Commands | -============================== - -@email <current@email.tld> <new@email.tld> - -Changes the email address attached the player's account. -Note: This command doesn't validate the email address itself, but checks the structure of the email (xxx@xxx). - -Example: -@email a@b.com b@b.com - -Output: -Fail message: Invalid email. If you have default e-mail, type a@a.com. -Success message: Information sent to login-server via char-server. - ---------------------------------------- - -@changesex - -Changes the gender attached to the player's account. - ---------------------------------------- - -@marry <player 1> <player 2> -@divorce <player> - -Marries or divorces two players. - ---------------------------------------- - -@request <message> - -Sends a message to all connected GMs (via the GM whisper system). - ---------------------------------------- - -@gmotd - -Displays the motd file to all players. - ---------------------------------------- - -@broadcast <message> -/b <message> -/nb <message> -@localbroadcast <message> -/lb <message> -/nlb <message> - -Announces a message in yellow text. -Except for /nb and /nlb, the message will be prefixed with the name of the attached character. -@broadcast will be shown to the entire server. -@localbroadcast will be shown on the player's map only. - ---------------------------------------- - -@kami <message> -@kamib <message> -@kamic <color> <message> -@lkami <message> - -Announces a message without a name prefix. -@kami will broadcast in yellow text. -@kamib will broadcast in blue text. -@kamic will broadcast in the specified color (a hexadecimal value). -@lkami will broadcast on the attached character's current map. - -Example: -@kamic FF0000 This message is in red. - ---------------------------------------- - -@killmonster -@killmonster2 - -Kills all monsters on the map. -Additionally, @killmonster2 will prevent the monsters from dropping items (except looted items). - ---------------------------------------- - -@kill -@nuke <player name> -@doommap -@doom - -Kill commands. -@kill will kill the attached player. -@nuke will kill the specified player and deal area splash damage. -@doommap will kill all players on the map. -@doom will kill all players on the server. - ---------------------------------------- - -@mute <time> <player name> -@mutearea <time> -@unmute <player name> - -Mutes or unmutes a player (prevents talking, usage of skills, and commands). -@mutearea will mute every player on screen for the specified time. - ---------------------------------------- - -@jail <player name> -@jailfor <time> <player name> -@unjail <player name> - -Sends the specified character to jail. -If a time is not specified (jailfor), the player will be jailed indefinitely. - ---------------------------------------- - -@kick <player name/ID> -@kickall - -Disconnects a user or all users from the server. - ---------------------------------------- - -@ban <+/- time> <player name> -@unban <player name> - -Bans or unbans a player for a limited time. -Time elements: y/a, m, d/j, h, mn, s - -Example: -@ban +2d Char2 --> bans Char2's account for 2 days. - ---------------------------------------- - -@block <player name> -@unblock <player name> - -Blocks or unblocks a player from logging in indefinitely. - ---------------------------------------- - -@mapexit - -Sends quit signal to mapserver, saving all data and causing a graceful shutdown. -This will also send a packet to clients causing them to close. - ---------------------------------------- - -@reloaditemdb -@reloadmobdb -@reloadskilldb -@reloadquestdb -@reloadscript - -Reloads the specified database. --itemdb: Item Database --mobdb: Monster Database --skilldb: Skill Database --questdb: Quest Database --script: NPC Scripts - ---------------------------------------- - -@reloadatcommand -@reloadbattleconf -@reloadstatusdb -@reloadpcdb -@reloadmotd - -Reloads the specified configuration file. --atcommand: Atcommand Settings --battleconf: Battle Settings (may require relog) --statusdb: Status Settings --pcdb: Player Settings --motd: Message of the Day - ---------------------------------------- - -@set <variable> {<value>} - -Changes a player or account variable to the specified value. -If no value is given, the variable's current value will be displayed. -Note that the value of a string variable may be typed with or without double quotes. - ---------------------------------------- - -@setbattleflag <flag> <value> - -Changes a battle_config flag without rebooting the server. - ---------------------------------------- - -@adjgroup <group ID> - -Changes the group of a character (lasts until relog). -The groups are specified in '/conf/groups.conf'. - ---------------------------------------- - -@addperm {<permission name>} -@rmvperm {<permission name>} - -Changes the permissions of a character (lasts until relog). -If no permission is given, a list of available permissions will be returned. - ---------------------------------------- - -@npcmove <x> <y> <npc name> - -Moves an NPC to a specified coordinate on its map. - ---------------------------------------- - -@hidenpc <npc name> -@shownpc <npc name> - -Toggles the visibility of an NPC's sprite. - ---------------------------------------- - -@loadnpc <path> - -Loads an NPC script by path. - -Example: -@loadnpc npc/custom/jobmaster.txt - ---------------------------------------- - -@unloadnpc <npc name> - -Unloads an NPC. - -Example: -@unloadnpc Job Master - ---------------------------------------- - -@unloadnpcfile <path> - -Unloads all NPCs in a file. - -Example: -@unloadnpcfile npc/custom/jobmaster.txt - ---------------------------------------- - -===================== -| 6. Party Commands | -===================== - -@party <party_name> - -Organizes a new party, with the attached character as leader. - ---------------------------------------- - -@partyoption <pickup share: yes/no> <item distribution: yes/no> - -Changes party options for experience sharing and item sharing. - ---------------------------------------- - -@changeleader <party_member_name> - -Changes the leader of your party to another member. -You must be the party leader to use this command. - ---------------------------------------- - -@partyrecall <party name> - -Warps all online characters of a party to your location. - ---------------------------------------- - -@partyspy <party name> - -Allows you to spy on any party's Party Chat. -At least one member of that party must be online. -NOTE: map server needs to be configured to enable spying to use this command (enable_spy: yes) - ---------------------------------------- - -===================== -| 7. Guild Commands | -===================== - -@guild <guild name> - -Creates a new guild, with the attached character as guildmaster. - ---------------------------------------- - -@breakguild - -Breaks the guild of the attached character. -You must be the guildmaster to use this command. - ---------------------------------------- - -@changegm <guild_member_name> - -Changes the guildmaster of your guild to another member. -You must be the guildmaster to use this command. - ---------------------------------------- - -@guildstorage - -Opens your guild storage. - ---------------------------------------- - -@glvl <+/- amount> - -Changes guild level by the specified amount. - ---------------------------------------- - -@disguiseguild <monster/npc name/ID> <guild name/ID> -@undisguiseguild - -Disguises or undisguises all online characters of a guild. - ---------------------------------------- - -@sizeguild <size> <guild name> - -Changes the size of all online characters of a guild. - ---------------------------------------- - -@guildrecall <guild name> - -Warps all online characters of a guild to your location. - ---------------------------------------- - -@guildspy <guild name> - -Allows you to spy on any guild's Guild Chat. -At least one member of that guild must be online. -NOTE: map server needs to be configured to enable spying to use this command (enable_spy: yes) - ---------------------------------------- - -=================== -| 8. Pet Commands | -=================== - -@makeegg <egg ID> - -Creates a Pet Egg based on the given ID. - ---------------------------------------- - -@hatch - -Opens the Hatch window (like using a Pet Incubator). - ---------------------------------------- - -@pettalk <message> - -Command what the player's pet will say. - ---------------------------------------- - -@petrename - -If you have not already renamed your pet, you can do this on the Pet window. -If you have renamed your pet, this command will allow you to use the -the rename option on the window again. - ---------------------------------------- - -@petfriendly <0-1000> - -Sets the intimacy level of your pet, with 1000 being "Loyal". - ---------------------------------------- - -@pethungry <0-100> - -Sets the hunger level of your pet, with 100 being "Stuffed". - ---------------------------------------- - -========================== -| 9. Homunculus Commands | -========================== - -@makehomun <Homunculus ID> - -Creates the specified homunculus. - ---------------------------------------- - -@homevolution -@hommutate {<Homunculus ID>} - -Evolves or mutates your homunculus, if possible. -If no Homunculus ID is specified for @hommutate, a random ID is chosen. -If it doesn't work, the /swt emotion is shown. - ---------------------------------------- - -@hominfo -@homstats - -Displays homunculus stats in different formats. - -Output Example [@hominfo]: -Homunculus Stats: -HP: 153/153 - SP: 54/54 -ATK: 59 - MATK: 69~69 -Hungry: 29 - Intimacy: 5 -Stats: Str 24 / Agi 25 / Vit 18 / Int 40 / Dex 31 / Luk 14 - -Output Example [@homstats]: -Homunculus growth stats (Lv 1 Lif): -Max HP: 153 (151~160) -Max SP: 54 (50~60) -Str: 20 (18~22) -Agi: 22 (21~24) -Vit: 16 (16~20) -Int: 40 (39~45) -Dex: 29 (25~34) -Luk: 14 (13~15) - ---------------------------------------- - -@homshuffle - -Re-calculates homunculus stats, as if the homunculus was re-leveled from level 1. - ---------------------------------------- - -@homtalk <message> - -Command what the player's homunculus will say. - ---------------------------------------- - -@homlevel <+/- amount> - -Changes homunculus level by the specified amount. - ---------------------------------------- - -@homfriendly <0-1000> - -Sets the intimacy level of your homunculus, with 1000 being "Loyal". - ---------------------------------------- - -@homhungry <0-100> - -Sets the hunger level of your homunculus, with 100 being "Stuffed". - ---------------------------------------- diff --git a/doc/ea_job_system.txt b/doc/ea_job_system.txt deleted file mode 100644 index 997debf4d..000000000 --- a/doc/ea_job_system.txt +++ /dev/null @@ -1,197 +0,0 @@ -//===== Hercules Documentation =============================== -//= eAthena Job System -//===== By: ================================================== -//= Skotlex -//===== Current Version: ===================================== -//= 2013-02-10 -//===== Description: ========================================= -//= A reference description of eA's inner job system (for use -//= in scripts through the eaclass and roclass script commands). -//============================================================ - -Preface: -------------------------------------------------------------------------------- - - Most scripters are aware of the class values used in RO and their constants specified on db/const.txt. Each class has a number associated to it for referencing, so when someone's class is 9 that means they are a wizard. However, this list of job numbers has no real order behind it, and no logic behind it's assignation. - - You can add 3999 to a job to get their rebirth ID, but if you try to do the same to get the Baby class ID, that fails on the super Baby class. Also, there's no way to calculate, from a given first class, which classes would be their "evolution". That is, given the Archer's ID, you cannot just add a value that will return you "Hunter", and will still work if applied to the other classes. It didn't help much when they added Taekwon Boy, a first class, with an ID of 4046, and much later they added Ninja/Gunslinger with the IDs 25/24. How do you identify a first class on all this mess without recurring to very ugly range checks? - -The eA Job System: -------------------------------------------------------------------------------- - - Since the code also required to do this kind of checks for various skills (the Soul Linker Spirit buffs specifically come to mind), an alternate job ID system was developed, which attempts to make more sense and make it easier to check where a particular job stands in relation to the rest. - - The scheme consists in that every job can be broken down by 3 criteria: - -- Base Job: This determines to which class-tree a job belongs. All jobs can be traced back to their root. The base job of all classes has to be one of the following: - - EAJ_NOVICE 0x0 - EAJ_SWORDMAN 0x1 - EAJ_MAGE 0x2 - EAJ_ARCHER 0x3 - EAJ_ACOLYTE 0x4 - EAJ_MERCHANT 0x5 - EAJ_THIEF 0x6 - EAJ_TAEKWON 0x7 - EAJ_GUNSLINGER 0x9 - EAJ_NINJA 0x0A - EAJ_GANGSI 0x0D - -- Branch: All classes can be classified as "1st Class", "2-1 Class" or "2-2 Class": - - EAJL_2_1 0x100 - EAJL_2_2 0x200 - EAJL_2 0x300 - -- The third category is type. Classes can either be normal, rebirth/advanced, adopted, or third class. - - EAJL_UPPER 0x1000 - EAJL_BABY 0x2000 - EAJL_THIRD 0x4000 - -So using these three categories, any job class can be constructed from the others. Let's take a swordman, for example. - -The first step is basic swordman, with nothing else: - - EAJ_SWORDMAN - -If a swordman is adopted... - - EAJ_SWORDMAN|EAJL_BABY -> EAJ_BABY_SWORDMAN - -The next step is to either become a 2-1 or a 2-2 job: - - EAJ_SWORDMAN|EAJL_2_1 -> EAJ_KNIGHT - EAJ_SWORDMAN|EAJL_2_2 -> EAJ_CRUSADER - -Getting out the rebirth versions of a swordman: - - EAJ_SWORDMAN|EAJL_UPPER -> EAJ_SWORDMAN_HIGH - EAJ_SWORDMAN|EAJL_2_1|EAJL_UPPER -> EAJ_LORD_KNIGHT - EAJ_SWORDMAN|EAJL_2_2|EAJL_UPPER -> EAJ_PALADIN - -Or getting the third job versions: - - EAJ_SWORDMAN|EAJL_2_1|EAJL_THIRD -> EAJ_RUNE_KNIGHT - EAJ_SWORDMAN|EAJL_2_2|EAJL_THIRD -> EAJ_ROYAL_GUARD - -Why are we using the bitwise OR operand ('|') rather than just adding? Because the OR is wreck-proof: - - EAJ_SWORDMAN_HIGH|EAJL_UPPER -> EAJ_SWORDMAN_HIGH - -If we had used addition, we would have gotten a completely different result. - -The EAJL (eA Job Level) constants -------------------------------------------------------------------------------- - - There are a few constants which can be used to filter out and make job comparisons easier. The comparisons involve eA job IDs, not classic job IDs, using the eaclass() command explained in the next section. - - set @eac, eaclass(); - -EAJL_2_1: - Checks if the class is a 2-1 class: - if (@eac&EAJL_2_1) - mes "Using the classic 2-1 job, huh?"; - -EAJL_2_2: - Checks if the class is a 2-2 class: - if (@eac&EAJL_2_2) - mes "Oh, a 2-2 job!"; - -EAJL_2: - Checks if the class is a 2nd Class. If the check fails, you can be sure the character is a first class. - if (!(@eac&EAJL_2)) - mes "Will you wait until Job 50 to change?"; - -EAJL_UPPER: - Check if a class is Rebirth/Advanced: - if(@eac&EAJL_UPPER) - mes "It must have taken you a LONG time..."; - -EAJL_BABY: - Check if a class is an adopted class. - if (@eac&EAJL_BABY) - mes "Don't you hate being weak?"; - -EAJL_THIRD: - Checks if a class is a third job. - if(@eac&EAJL_THIRD) - mes "Wow, you've really grown!"; - -EAJ_UPPERMASK: - The upper mask can be used to "strip" the upper/baby characteristics of a class, used when you want to know if someone is a certain class regardless of rebirth/adopted status. For example, the following code would go through for Monks, Champions and Baby Monks: - if ((@eac&EAJ_UPPERMASK) == EAJ_MONK) - mes "Aren't knuckles such a cool weapon?"; - - Note that if instead of EAJ_MONK you used EAJ_CHAMPION or EAJ_BABY_MONK, the check would had never passed, since the upper/baby state has been removed from the original job when checking. - -EAJ_BASEMASK: - This mask strips also the 2nd class attributes. It can be used to check against the basic job of a character. For example, the following code would go through for Merchants (+Baby Merchant and High Merchant), Blacksmiths (+Baby blacksmiths and Whitesmith) and Alchemist (+Baby Alchemist and +Creator): - if ((@eac&EAJ_BASEMASK) == EAJ_MERCHANT) - mes "Why I can't have discount like you guys do?"; - - Note that, like before, if you try to check versus any of the other classes (High merchant, blacksmith, etc) instead of basic merchant, the check will always fail for the same reasons previously explained. - -EAJ_THIRDMASK: - This mask strips 3rd class attributes. It will give the "normal" class of a third job, regardless of rebirth/adopted status. When used on non-third class characters, it will return the second job, or, if that also doesn't exist, the first. - if ((@eac&EAJ_THIRDMASK) == EAJ_WARLOCK_T) - mes "You've gone through rebirth, I see."; - -The script commands eaclass, roclass: -------------------------------------------------------------------------------- - - These script commands are what you can use in scripts to convert between the RO classic job id, and eA's job system. The following script code demonstrates how to use these script commands to guess what your next job will be: - - set @eac, eaclass(); - if (@eac&EAJL_2) - { //2nd class - //If upper or baby, you can't rebirth - if (@eac&(EAJL_UPPER|EAJL_BABY)) { - mes "You can't go anywhere, can you?"; - close; - } - //Note that if we remove the EAJL_BABY check up there, the following check - //will also fail, because there's no such thing as Rebirth-Baby classes. - set @newclass, roclass(@eac|EAJL_UPPER); - if (@newclass == -1) { - //Don't you hate this of SG and SL? - mes "Haha, your class doesn't has a rebirth version yet!"; - close; - } - mes "Still dreaming of the day you become a "+jobname(@newclass)+"?"; - close; - } - set @class1, roclass(@eac|EAJL_2_1); - set @class2, roclass(@eac|EAJL_2_2); - if (@class1 == -1) { - //NJ/GS are the only classes who get stuck on their 1st class forever. - mes "Looks like you are stuck forever on that class."; - close; - } - if (@class2 == -1) { - //Not quite true, currently the only 1st class that doesn't has two choices is Novice -> Supernovice (see s.novice section below) - mes "Looks like you have no choice but to be a "+jobname(@class1)+"."; - close; - } - mes "Have you decided yet if you want to be a "+jobname(@class1)+" or a "+jobname(@class2)+"?"; - close; - - -Oddities of the System: -------------------------------------------------------------------------------- -About Bards and Dancers: - These two classes are considered the same in eA's job system, since they both are the 2-2 job of archers. The only way to tell them apart is by using the gender of the character we are referring to. The script command roclass() will automatically use the gender of the attached player (or 'male' if there's no such player), but you can also explicitly pass the gender to the script command when there's no player attached. - -About Novices and Super Novices: - These are treated a bit differently from you'd expect. Because.. for instance, a novice is not supposed to be a 1st class, but it is considered as one on this tree system: - - EAJ_NOVICE -> Novice - EAJ_NOVICE|EAJL_2_1 -> EAJ_SUPER_NOVICE - EAJ_NOVICE|EAJL_UPPER -> EAJ_NOVICE_HIGH - EAJ_NOVICE|EAJL_BABY -> EAJ_BABY - EAJ_NOVICE|EAJL_BABY|EAJL_2_1 -> EAJ_SUPER_BABY - - So as you can see, on this job system, the Super Novice is treated as the 2-1 job of a Novice, and the Novice job it's at the same level of the other 1st jobs. Even though that may seem like a hindrance, it makes it very easy to add a check to discard Novice types from a quest: - - if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) - //Novice class detected. diff --git a/doc/effect_list.txt b/doc/effect_list.txt deleted file mode 100644 index 01ea2753b..000000000 --- a/doc/effect_list.txt +++ /dev/null @@ -1,986 +0,0 @@ -//===== Hercules Documentation =============================== -//= Client Effects List -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20120822 -//===== Description: ========================================= -//= A list of client-side effects sorted by ID. -//============================================================ - -The following is a compiled list of visual and sound effects which the client -can produce when receiving a packet with id 0x1f3 (01f3 <ID>.l <type>.l). -Each list entry contains a number and a short description of the effect. -You can produce these effects ingame by doing "@effect <number> 22" (22=self). -It's also possible to attach effects to item/npc scripts by using 'misceffect'. - -Number Description ------- ----------- -0. Regular Hit -1. Bash -2. Melee Skill Hit -3. Melee Skill Hit -4. Melee Skill Hit -5. Melee Skill Hit -6. Being Warped -7. Item Heal effect -8. Yellow Ripple Effect -9. Different Type of Heal -10. Mammonite -11. Endure -12. Yellow cast aura -13. Blue Box -14. Blue restoring effect -15. Soul Strike -16. Hide -17. Magnum Break -18. Steal -19. (Invalid) -20. Envenom/Poison -21. Detoxify -22. Sight -23. Stone Curse -24. Fire Ball -25. Fire Wall -26. A sound (a swipe?) -27. Frost Diver (Traveling to Target) -28. Frost Diver (Hitting) -29. Lightning Bolt -30. Thunder Storm -31. Weird bubbles launching from feet -32. Small clustered explosions -33. Ruwach -34. Old Map Exit Animation (unused) -35. Old Warp Portal (unused) -36. Old Warp Portal (unused) -37. AGI Up -38. AGI Down -39. Aqua Benedicta -40. Signum Crucis -41. Angelus -42. Blessing -43. Dex + Agi Up -44. Little Fog Smoke. -45. Faint Little Ball Things. -46. Sand Wind -47. Torch -48. Small Piece of Glass -49. Firebolt/Wall Hits -50. Spinning Fire Thing -51. Ice Elemental Hit -52. Wind Elemental Hit -53. Puff of Purpulish Smoke? -54. Cast Initiation Aura (Water Element) -55. Cast Initiation Aura (Fire Element) -56. Cast Initiation Aura (Wind Element) -57. Cast Initiation Aura (Earth Element) -58. Cast Initiation Aura (Holy Element) -59. Cast Initiation Aura (Poison Element) -60. Cast target circle -61. Old Warp Portal (NPC Warp, unused) -62. Sight Trasher -63. Moonlight Sphere -64. Something Like Puruple/Yellow Light Bullet -65. Something Like Absorb of Power -66. Cure -67. Provoke -68. MVP Banner -69. Skid Trap -70. Brandish Spear -71. Spiral White balls -72. Bigger Spiral White balls -73. Blue/White Small Aura -74. Ice Wall -75. Gloria -76. Magnificat -77. Resurrection -78. Status Recovery -79. Earth Spike -80. Spear Boomerang -81. Skill hit -82. Turn Undead -83. Sanctuary -84. Impositio Manus -85. Lex Aeterna -86. Aspersio -87. Lex Divina -88. Suffragium -89. Storm Gust -90. Lord of Vermilion -91. B. S. Sacramenti -92. Meteor Storm -93. Jupitel Thunder (Ball) -94. Jupitel Thunder (Hit) -95. Quagmire -96. Fire Pillar -97. Fire Pillar/Land Mine hit -98. Adrenaline Rush -99. Flasher Trap -100. Yellow ball fountain -101. Weapon Repair -102. Hammerfall -103. Weapon Perfection -104. Maximize Power -105. (nothing) -106. Blast Mine Trap -107. Claymore Trap -108. Freezing Trap -109. Bailaban Blue bubble Map Effect -110. Trap Used by Giearth -111. Spring Trap -112. Kyrie Eleison -113. Magnus Exorcismus -114. Old Magnus Exorcismus Map Unit (unused) -115. Blitz Beat -116. Fling Watersphere -117. Waterball -118. Fling Firesphere -119. Detect -120. Cloaking -121. Sonic Blow (Part 1/2) -122. Multi hit effect -123. Grimtooth Cast -124. Venom Dust -125. Enchant Poison -126. Poison React -127. Small Posion React -128. Over Thrust -129. Venom Splasher Explosion -130. Two-Hand Quicken -131. Auto-Counter Hit -132. Grimtooth Hit -133. Ice Effect (Used by NPCs) -134. Ice Effect (Used by NPCs) -135. Ice Effect (Used by NPCs) -136. Slow Poison -137. Old Sanctuary Map Unit (unused) -138. Fire pillar -139. Sandman Trap -140. Ressurection Aura -141. Pneuma -142. Heaven's Drive -143. Sonic Blow (Part 2/2) -144. Brandish Spear Pre-Hit Effect -145. Shockwave Trap -146. Shockwave Trap Hit -147. Pierce Hit -148. Pierce Cast Animation -149. Bowling Bash -150. Pierce Cast Animation -151. Spear Boomerang Cast -152. Turn Undead -153. Increase Concentration -154. Refine Success -155. Refine Fail -156. jobchange.str not found error -157. levelup.str not found error -158. Job Level Up -159. PvP circle -160. PvP Party Circle -161. (Nothing) -162. Snow -163. White Sakura Leaves -164. (Nothing) -165. Comodo Fireworks Ball -166. Energy Coat (Visual Effect) -167. (Nothing) -168. (Nothing) -169. Energy Coat Animation -170. Cart Revolution -171. Venom Dust Map Unit -172. Change Element (Dark) -173. Change Element (Fire) -174. Change Element (Water) -175. Change Element (Wind) -176. Change Element (Fire) -177. Change Element (Earth) -178. Change Element (Holy) -179. Change Element (Poison) -180. Darkness Attack -181. Mental Breaker -182. Magical Hit -183. Self Destruction -184. (Nothing) -185. (Nothing) -186. Combo Attack 1 -187. Combo Attack 2 -188. Combo Attack 3 -189. Combo Attack 4 -190. Combo Attack 5 -191. Guided Attack -192. Poison Attack -193. Silence Attack -194. Stun Attack -195. Petrify Attack -196. Curse Attack -197. Sleep Attack -198. (Nothing) -199. Small Popping Bubble Map Effect -200. Normal level 99 Aura (Middle) -201. Normal level 99 Aura (Bottom) -202. Lv 99 Aura Bubble -203. Fury (Visual Effect) -204. Red Herb/Potion -205. Orange Potion -206. Yellow Herb/Potion -207. White Herb/Potion -208. Blue Herb/Potion -209. Green Herb/Potion -210. Yellow Circle Healing Effect -211. Blue Circle Healing Effect -212. Dark Breath -213. Defender -214. Keeping -215. Summon Slave -216. Blood Drain -217. Energy Drain -218. Concentration Potion -219. Awakening Potion -220. Berserk Potion -221. Intense light beam -222. Defender (Crusader) -223. Holy Cast Aura -224. Wind (Map effect) -225. Volcano casting effect -226. Grand Cross Effect -227. Snatch -228. (Nothing) -229. (Nothing) -230. (Nothing) -231. Map Light Pillar Animation 1 -232. Sacrifice (Visual Effect) -233. Fog -234. Spell Breaker -235. Dispell -236. Deluge Cast Aura -237. Violent Gale Cast Aura -238. Magnetic Earth Cast Aura -239. Volcano (Visual Effect) -240. Deluge (Visual Effect) -241. Violent Gale (Visual Effect) -242. Magnetic Earth (Visual Effect) -243. (Invalid) -244. Magic Rod -245. Holy Cross -246. Shield Charge -247. Map Light Pillar Animation 2 -248. Resistant Souls -249. Shield Boomerang -250. Spear Quicken -251. Devotion -252. Reflect Shield -253. Absorb Spirit Spheres -254. Mental Strength (Visual Effect) -255. Elemental Endow (Fire) -256. Elemental Endow (Water) -257. Elemental Endow (Wind) -258. Elemental Endow (Earth) -259. Map Light Pillar Animation 3 -260. Map Light Pillar Animation 4 -261. Fury Cast Animation -262. Raging Quadruple Blow -263. Raging Quadruple Blow 2 -264. (Nothing) -265. Throw Spirit Sphere -266. Raging Quadruple Blow 3 -267. Occult Impaction -268. Steal Coin -269. Divest Weapon -270. Divest Shield -271. Divest Armor -272. Divest Helm -273. Raging Quadruple Blow 4 -274. Steal Coin Animation -275. Back Stab Animation -276. Raging Thrust -277. Dissoance Map Unit -278. Lullaby Map Unit -279. Mr Kim a Rich Man Map Unit -280. Eternal Chaos Map Unit -281. A Drum on the Battlefield Map Unit -282. The Ring Of Nibelungen Map Unit -283. Loki's Veil Map Unit -284. Into the Abyss Map Unit -285. Invunerable Siegfriend Map Unit -286. A Wistle Map Unit -287. Assassin Cross of Sunset Map Unit -288. A Poem of Bragi Map Unit -289. The Apple Of Idun Map Unit -290. Ugly Dance Map Unit -291. Humming Map Unit -292. Please don't Forget Me Map Unit -293. Fortune's Kiss Map Unit -294. Service For You Map Unit -295. Frost Joke -296. Scream -297. Fire Works (Visual Effect) -298. Acid Terror Animnation -299. (Nothing) -300. Chemical Protection -301. Fire Works (Sound Effect) -302. Bomb -303. (Unused) -304. Teleportation Animation -305. Pharmacy Success -306. Pharmacy Failed -307. Forest Light 1 -308. Throw Stone -309. First Aid -310. Sprinkle Sand -311. Crazy Uproar -312. Heal Effect -313. Heal Effect 2 -314. Old Map Exit effect (Unused) -315. Safety Wall -316. Warp Portal Animation 1 -317. Warp Portal Animation 2 -318. Magnus Exorcisimus Map Unit -319. Sanctuary Map Unit -320. Offensive Heal -321. Warp NPC -322. Forest Light 2 -323. Forest Light 3 -324. Forest Light 4 -325. Heal Effect 4 -326. Chase Walk Left Foot -327. Chse Walk Right Foot -328. Monk Asura Strike -329. Triple Strike -330. Combo Finish -331. Natural HP Regeneration -332. Natural SP Regeneration -333. Autumn Leaves -334. Blind -335. Poison -336. Kyrie Eleison/Parrying Shield -337. Class Change -338. Super Novice/Taekwon Level Up Angel -339. Spiral Pierce -340. (Nothing) -341. Wedding Warp Portal -342. Wedding Skill -343. Another Merry Skill -344. Character map entry effect -345. Wings (Animated) -346. Like Moonlight But Blue -347. Wedding Ceremony -348. Like 1000 Blade trepassing -349. Waterfall (Horizonatal) -350. Waterfall (Vertical) -351. Small Waterfall (Horizonatal) -352. Small Waterfall (Vertical) -353. Dark Waterfall (Horizonatal) -354. Dark Waterfall (Vertical) -355. Dark Small Waterfall (Horizonatal) -356. Dark Small Waterfall (Vertical) -357. (Nothing) -358. Niflheim Ghost -359. Niflheim Bat Slow -360. Niflheim Bat Fast -361. Soul Destroyer -362. Trancendant Level 99 Aura 1 -363. Valentine Day Heart With Wings -364. Valentine Day Heart -365. Gloria Domini -366. Martyr's Reckoning -367. Aura Blade -368. Berserk -369. Concentration -370. Gospel Map Unit -371. Level Up -372. Death -373. House Smoke -374. Basilica -375. Assumptio (Visual Effect) -376. Palm Strike -377. Matyr's Reckoning 2 -378. Soul Drain (1st Part) -379. Soul Drain (2nd Part) -380. Magic Crasher -381. Blue Starburst (Unknown use) -382. (Nothing) -383. Health Conversion -384. Soul Change (Sound Effect) -385. Soul Change (Visual Effect) -386. True Sight -387. Falcon Assault -388. Focused Arrow Strike (Sound Effect) -389. Wind Walk -390. Shattering Strike -391. Cart Boost -392. Reject Sword -393. Arrow Vulcan -394. Sheltering Bliss -395. Marionette Control (Sound Effect) -396. Marionette Control (Visual Effect) -397. Trancended 99 Aura (Middle) -398. Trancended 99 Aura (Bottom) -399. Head Crush -400. Joint Beat -401. Napalm Vulcan Sound -402. Dangerous Soul Collect -403. Mind Breaker -404. Fiber Lock -405. Wall Of Fog -406. Soul Burn -407. Soul Change -408. Mom, Dad, I love you! (Baby Skill) -409. Meteor Assault -410. Rainbow -411. Leap -412. Like Throw Spirit Sphere -413. Axe Kick -414. Round Kick -415. Counter Kick -416. (Nothing) -417. Flash -418. Warmth Lightning -419. Kaite (Visual Effect) -420. Eswoo (Small) (Visual Effect) -421. Eswoo (Alt. Small) (Visual Effect) -422. Eswoo (Normal) (Visual Effect) -423. Eswoo (Alt. Normal) (Visual Effect) -424. Spirit Link (Visual Effect) -425. Esma Hit (Visual Effect) -426. Sprint Collision (Visual Effect) -427. (Nothing) -428. (Nothing) -429. Taekwon Kick Hit 1 -430. Taekwon Kick Hit 2 -431. Taekwon Kick Hit 3 -432. Solar, Lunar and Stellar Perception (Visual Effect) -433. Solar, Lunar and Stellar Opposition (Visual Effect) -434. Taekwon Kick Hit 4 -435. Whirlwind Kick -436. White Barrier (Unused) -437. White barrier 2 (Unused) -438. Kaite Reflect Animation -439. Flying Side Kick -440. Assumptio (Animation) -441. Comfort Skills Cast Aura -442. Foot Prints caused by Sprint. -443. (Nothing) -444. Sprint Stop Animation -445. High Jump (Jump) -446. High Jump (Return Down) -447. Running Left Foot -448. Running Right Foot -449. KA-Spell (1st Part) -450. Darkcross -451. Dark Strike -452. Something Like Jupitel Thunder -453. Paralized -454. Like Blind -455. Another Warmth Lightning -456. Power Up -457. Flying Side Kick (2nd Part) -458. Running/Sprint (running into a wall) -459. Brown tornado that spins sprite (unused) -460. Green tornado (unused) -461. Blue tornado (unused) -462. Kaupe Dodge Effect -463. Kaupe Dodge Effect -464. White tornado (unused) -465. Purple tornado (unused) -466. Another Round Kick -467. Warm/Mild Wind (Earth) -468. Warm/Mild Wind (Wind) -469. Warm/Mild Wind (Water) -470. Warm/Mild Wind (Fire) -471. Warm/Mild Wind (Undead) -472. Warm/Mild Wind (Shadow) -473. Warm/Mild Wind (Holy) -474. (Nothing) -475. Demon of The Sun Moon And Stars (Level 1) -476. Demon of The Sun Moon And Stars (Level 2) -477. Demon of The Sun Moon And Stars (Level 3) -478. Demon of The Sun Moon And Stars (Level 4) -479. Demon of The Sun Moon And Stars (Level 5) -480. Demon of The Sun Moon And Stars (Level 6) -481. Demon of The Sun Moon And Stars (Level 7) -482. Demon of The Sun Moon And Stars (Level 8) -483. Demon of The Sun Moon And Stars (Level 9) -484. Demon of The Sun Moon And Stars (Level 10) -485. Mental Strength Lightning but White -486. Mental Strength Lightning -487. Demon of The Sun Moon And Stars Ground Effect -488. Comfort Skills -489. (Nothing) -490. (Nothing) -491. Element Potions -492. Cooking Foods -493. Enchant Deadly Poison -494. Throwing Tomahawk -495. Full Strip Sound -496. Preserve -497. Twilight Alchemy 1 -498. Twilight Alchemy 2 -499. Twilight Alchemy 3 -500. Player Become Blue with Blue Aura -501. Chase Walk Animation -502. Player Become Yellow with Yellow Aura -503. Soul Link Word -504. (Nothing) -505. Memorize -506. (Nothing) -507. Authoritative Badge -508. Fire Cracker -509. Valentine Day Hearth (Wings) -510. Champion Asura Strike -511. (Nothing) -512. Chain Crush Combo -513. Area Cast -514. Really Big Circle -515. Einbroch Fog -516. Airship Cloud -517. (Nothing) -518. Cart Termination -519. Speed Down Potion -520. Shield Bumerang -521. Player Become Red with Red Aura -522. Gravitation Field -523. Tarot Card of Fate (The Fool) -524. Tarot Card of Fate (The Magician) -525. Tarot Card of Fate (The High Priestess) -526. Tarot Card of Fate (The Chariot) -527. Tarot Card of Fate (Strength) -528. Tarot Card of Fate (The Lovers) -529. Tarot Card of Fate (The Wheel of Fortune) -530. Tarot Card of Fate (The Hanged Man) -531. Tarot Card of Fate (Death) -532. Tarot Card of Fate (Temperance) -533. Tarot Card of Fate (The Devil) -534. Tarot Card of Fate (The Tower) -535. Tarot Card of Fate (The Star) -536. Tarot Card of Fate (The Sun) -537. Acid Demonstration -538. Player Become Green with Green Aura -539. Throw Random Bottle -540. Instant Small->Normal -541. (Nothing) -542. KA-Spell (1st Part) -543. Kahii -544. Warmth Red Sprite -545. Sound And... PUFF Client Crash :P -546. Kaupe -547. Estin -548. Instant Red Sprite -549. Instant Blue Sprite -550. Another Effect like Running Hit -551. Effect Like Estun but with Circle -552. (Nothing) -553. Esma -554. Large White Cloud -555. Estun -556. (Nothing) -557. Juperos Energy Waterfall (Horizontal) -558. Juperos Energy Waterfall (Vertical) -559. Juperos Energy Waterfall Fast (Horizontal) -560. Juperos Energy Waterfall Fast (Vertical) -561. Juperos Warp -562. Juperos Warp -563. Earthquake Effect (Juperos Elevator) -564. Wedding Cast -565. Filir Moonlight Lvl 1 -566. Filir Moonlight Lvl 2 -567. Filir Moonlight Lvl 3 -568. Another Job Level Up -569. Amistr Bulwark -570. Amistr Castling -571. Amistr Bloodlust -572. Warmth Soul -573. Twilight Alchemy 1 -574. Twilight Alchemy 2 -575. Twilight Alchemy 3 -576. Box Effect (Thunder) -577. Box Effect (Cloud) -578. Box Effect (Curse) -579. Box Effect (Sleep) -580. Box Effect (Rain) -581. Box Effect (Sunlight) -582. Another Super Novice/Taekwon Angel -583. Warmth Hit -584. Full Buster -585. 5 Medium Size Explosion -586. Somatology Lab Mobs Aura -587. Big Purple Flame -588. Little Red Flame -589. Eswoo -590. Running Stop -591. (Nothing) -592. Thanatos Tower Bloody Clouds -593. Food Effect (STR) -594. Food Effect (INT) -595. Food Effect (VIT) -596. Food Effect (AGI) -597. Food Effect (DEX) -598. Food Effect (LUK) -599. Cast Time Sound and Flashing Animation on Player -600. Throw Venom Knife -601. Sight Blaster -602. Close Confine (Grab Effect) -603. Spinning fire ball (like 50, but smaller) -604. Close Confine (Ground Effect) -605. (Nothing) -606. Pang Voice (Visual Effect) -607. Wink of Charm (Visual Effect) -608. Cooking Success -609. Cooking Failed -610. Success -611. Failed -612. Korean Words and /no1 Emoticon -613. Throw Shuriken -614. Throw Kunai -615. Throw Fumma Shuriken -616. Throw Money -617. Illusionary Shadow -618. Crimson Fire Bolossom -619. Lightning Spear Of Ice -620. Water Escape Technique -621. Wind Blade -622. Lightning Crash -623. Piercing Shot -624. Kamaitachi -625. Madness Canceller -626. Adjustment -627. Disarm (Sound Effect) -628. Dust -629. (Nothing) -630. Shadow Slash -631. Reverse Tatami Map Unit -632. Mist Slash -633. Final Strike -634. Crimson Fire Formation -635. Dragon Fire Formation -636. Falling Ice Pillar -637. Desperado -638. Ground Drift Grenade -639. Ground Drift Grenade -640. Ground Drift Grenade -641. Ground Drift Grenade -642. Ground Drift Grenade -643. Rapid Shower -644. Magic Bullet -645. Spread Attack -646. Tracking (Shown While Casting) -647. Tracking -648. Triple Action -649. Bull's Eye -650. Ice Cave Level 4 Circle -651. Ice Cave Level 4 Big Circle -652. Like Regeneration Number but Red with a Sound -653. Like Regeneration Number but Red -654. Like Regeneration Number but Purple -655. Mobs Skill (Change Undead Element) -656. Last animation before Change Undead Element finish -657. (Nothing) -658. (Nothing) -659. (Nothing) -660. (Nothing) -661. (Nothing) -662. (Nothing) -663. (Nothing) -664. (Nothing) -665. Little Blue Ball Falling From the Sky -666. Earthquake -667. (Nothing) -668. Dragonfear -669. Wide Bleeding -670. Dragon fear (Visual Effect) -671. The Japan Earth Symbol (like 'Seven Wind Lv1', but on the ground) -672. The Japan Wind Symbol (like 'Seven Wind Lv2', but on the ground) -673. Map turns Blue (like Soul Link) -674. Evil Land Cell -675. Like Parrying/Kyrie Eleison barrier but Yellow with small Cross in every barrier piece -676. Slow Casting -677. Critical Wounds/Bleeding Attack -678. White 99 Aura Bubbles -679. Green Aura (Middle) -680. Green Aura (Bottom) -681. Dimensional Gorge Map Effect -682. I Love You Banner -683. Happy White Day Banner -684. Happy Valentine Day Banner -685. Happy Birthday Banner -686. Merry Christmas Banner -687. Cast Circle-Like effect 1 -688. Cast Circle-Like effect 2 -689. Endless Tower Map Effect -690. Burning Flame (Red) -691. Burning Flame (Green) -692. Unknown Aura Bubbles (Small ghosts) -693. Translucent yellow circle -694. Translucent green circle -695. Rotating green light -696. The same of 690 and 691 but Blue/Purple -697. (Nothing) -698. (Nothing) -699. Fall of powder from the sky and raise of some leaf -700. Big Colored Green Sphere. -701. Huge Blue Sphere -702. Little Colored Violet Sphere -703. Light Infiltration with fall of pownder -704. Client Error (mobile_ef02.str) -705. Client Error (mobile_ef01.str) -706. Client Error (mobile_ef03.str) -707. Client Crash :P -708. Storm Gust (same as 89) -709. A Firework that split in 4 mini fireworks -710. A Sphere like Effect 701 but Green, and a bit more larger -711. A big violet wall -712. A Little Flame Sphere -713. A lot of Very Small and Yellow Sphere -714. (Nothing) -715. Little blue Basilica -716. Same as 715 -717. Christmas Carol (copy of Angelus) -718. Judex (Visual Effect) -719. Renovatio (light beam) -720. Yellow version of Soul Breaker -721. Adoramus (lightning bolt) -722. Ignition Break (big explosion) -723. Hundred Spear (sound effect) -724. Green version of Detecting -725. Oratorio (like Detecting) -726. Frost Misty (blue vapor and bubbles) -727. Crimson Rock -728. Small fire (part of Hell Inferno) -729. Marsh of Abyss (like Close Confine) -730. Small, cartoony explosion (part of Soul Expansion) -731. Dragon Howling (blinking, expanding circle) -732. Spike from the ground -733. Fluffy Ball flying by -734. Chain Lightning -735. (Nothing) -736. (Nothing) -737. (Nothing) -738. (Nothing) -739. Old Magenta Trap -740. Old Cobald Trap -741. Old Maize Trap -742. Old Verdure Trap -743. White Ranger Trap -744. Camouflage -745. Aimed Bolt (crosshairs) -746. Arrow Storm -747. Falling white feathers -748. Falling blue feathers -749. Millennium Shield -750. Detonator (blue sparkles) -751. Releasing summoned warlock spheres -752. Like Energy Coat, but not as dark -753. Clearance -754. Green warp portal (root of Epiclesis) -755. Oratio (spinning blue symbol) -756. Enchant Blade (like Berserk Potion) -757. Third Class Aura (Middle) -758. Rolling Cutter - Spin Count 1 -759. Rolling Cutter - Spin Count 2 -760. Rolling Cutter - Spin Count 3 -761. Rolling Cutter - Spin Count 4 -762. Rolling Cutter - Spin Count 5 -763. Rolling Cutter - Spin Count 6 -764. Rolling Cutter - Spin Count 7 -765. Rolling Cutter - Spin Count 8 -766. Rolling Cutter - Spin Count 9 -767. Rolling Cutter - Spin Count 10 -768. Blinking -769. Cross Ripper Slasher (flying knives) -770. Strip sound -771. Poison sound -772. Poison particles -773. Expanding purple aura (part of Phantom Menace) -774. Axe Boomerang -775. Spinning character sprite -776. Like Desperado sound effect -777. Faded light from the ground [S] -778. Expanding white aura (like Clearance) -779. Faded light from the ground [S] -780. Expanding red aura (from Infrared Scan) -781. Magnetic Field (purple chains) -782. All-around shield [S] -783. Yellow shaft of light -784. White shaft of light -785. Upward flying wrenches -786. Symbol with bleeping sound [S] -787. Flare Launcher (line of fire) -788. Venom Impress (green skull) -789. Freezing Status Effect (two ancillas) -790. Burning Status Effect (flame symbol) -791. Two ice shots -792. Upward streaming white particles -793. Same, but more brief -794. Infrared Scan (red lasers) -795. Power Swing (axe crash) -796. Spinning blue triangles -797. Stapo -798. Red triangles (like Intimidate) -799. Stasis (expanding blue mist) [S] -800. Hell Inferno (red lights) -801. Jack Frost unit (ice spikes) -802. White Imprison -803. Recognized Spell -804. Tetra Vortex [S] -805. Tetra Vortex cast animation (blinking colors) -806. Flying by as fast as a rocket -807. Kidnapping sound -808. Like Recognized Spell, but one symbol -809. Shadowy filter [S] -810. Damp thud sound [S] -811. Body Painting -812. Black expanding aura -813. Masquerade - Enervation -814. Masquerade - Groomy -815. Masquerade - Ignorance -816. Masquerade - Laziness -817. Masquerade - Unlucky -818. Masquerade - Weakness -819. (Nothing) -820. Strip Accessory -821. Waterfall -822. Dimension Door (spinning blue aura) -823. in-the-manhole effect -824. Some filter -825. Dimension Door (aura + blue light) -826. Expanding black casting anim. -827. Chaos Panic (spinning brown aura) -828. Maelstrom (spinning pink aura) -829. Bloody Lust (spinning red aura) -830. Blue aura (Arch Bishop cast animation) -831. Blue cone [S] -832. Sonic Wave -833. (Nothing) -834. Light shooting away circlish -835. Fastness yellow-reddish -836. Fastness yellow-pinkish -837. Casting [S] -838. Watery aura -839. [Client Error] -840. Red cone -841. Green cone -842. Yellow cone -843. White cone -844. Purple cone -845. light-bluish turquoise cone -846. (Nothing) -847. Gloomy Day (white/red light rays) -848. Gloomy Day (white/blue light rays) -849. (Nothing) -850. (Nothing) -851. Green mushy-foggy stuff (dull) -852. Green mushy-foggy stuff (bright) -853. Bright green flower area -854. Blue beam of light with notes -855. (Nothing) -856. Reverberation (red eighth notes) -857. Severe Rainstorm (falling red and blue beams) -858. Deep Sleep Lullaby (two red beams and music notes) -859. Holograph of text (blue) -860. Distorted note (blue) -861. Green aura (from Circle of Life's Melody) -862. Randomize Spell (holograph of text) -863. Dominion Impulse (two spears of light) -864. Gloomy Day (colorful lines) -865. Blue aura (from Song of Mana) -866. Dance with a Warg (Wargs) -867. Yellow aura (from Dance with a Warg) -868. Song of Mana (Violies) -869. Strip sound [S] -870. Ghostly Succubuses of fire -871. Red aura (from Lerad's Dew) -872. Lerad's Dew (Minerals) -873. Stargate-wormhole stuff (bright purple) -874. Melody of Sink (Ktullanuxes) -875. Stargate-wormhole stuff (bright turquoise) -876. Warcry of Beyond (Garms) -877. Stargate-wormhole stuff (white) -878. Unlimited Humming Voice (Miyabi Ningyos) -879. Siren's Voice (heart-like) -880. Bluish castish cone -881. Blue aura -882. Whirl of fireflies (red) -883. Epiclesis (transparent green tree) -884. Green beam -885. Blue light beams -886. Blue castish cone -887. Wavy sparks -888. Earth Shaker (same as 432) -889. Fast light beams -890. Rotation -891. Magic shots [S] -892. Fastness with hitting sound[S] -893. Blue-white light passing by -894. (Nothing) -895. Big wheel of flat light beams -896. Still sun shaped lightning aura -897. Animated sun shaped lightning aura -898. Animated, curvy sun shaped lightning aura -899. White/red light shots from below -900. Animated, slow curvy sun shaped lightning aura -901. Explosion -902. Floating bedtable texture -903. Castish flamey cone -904. Yellow/pink lights passing by -905. Expanding circle -906. Shield Press (falling shield) -907. Chainy, metalish sound [S] -908. Prestige (sphere of yellow particles) -909. Banding (sphere of red particles) -910. Inspiration (sphere of blue particles) -911. Green castish animation [S] -912. Wall of Thorns unit (green fog cloud) -913. Magic projectiles -914. (Nothing) -915. Crazy Weed -916. Demonic Fire -917. More angry, demonic flames -918. Fire Insignia (demonic flames) -919. Hell's Plant (green snapping plant) -920. Fire Walk unit -921. Vacuum Extreme (whirlwind) -922. Psychic Wave -923. Poison Buster -924. Poisoning animation -925. Some filter -926. Electric Walk unit -927. Earth Grave (speary roots) -928. Ice cloud projectiles -929. Warmer (field of flames) -930. Varetyr Spear (falling spear) -931. (Nothing) -932. Firefly -933. [Client Crash] -934. White, castishly expanding cone -935. Green magic projectile -936. Red, castishly expanding cone -937. Yellow, castishly expanding cone -938. Dark-red, castishly expanding cone -939. Blue, conish aura -940. Snow flake -941. Explosion of red, demonic fire -942. Expanding, white dome -943. Green, fluffy projectile -944. Falling gems -945. (Nothing) -946. Floating lights -947. Blue lightning sphere -948. Two blue lightning spheres -949. Flat, spinning diamond -950. Circling, planetlike spheres -951. Three lightning spheres -952. Flat, spinning gem and two lightning spheres -953. Spinning, planetlike spheres -954. Two lightblue glowing spheres -955. Three spinning flame spheres -956. Flame -957. Spinning planetlike sphere -958. Two flames -959. Purple flame -960. Small yellow explosion -961. Cartoony whirlwind -962. Rising fire -963. Dark filter (like Stone Curse) -964. Same as 920 -965. Small white explosion -966. Bone crack -967. Another little explosion diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt deleted file mode 100644 index 1f96362d1..000000000 --- a/doc/item_bonus.txt +++ /dev/null @@ -1,418 +0,0 @@ -//===== Hercules Documentation =============================== -//= Hercules Item Bonuses List -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20140320 -//===== Description: ========================================= -//= List of script instructions used in item bonuses, -//= mainly bonus/bonus2/bonus3/bonus4/bonus5 arguments. -//============================================================ - -skill i,n; Gives skill #i at level n (supports skill names) - -bonus bStr,n; STR + n -bonus bAgi,n; AGI + n -bonus bVit,n; VIT + n -bonus bInt,n; INT + n -bonus bDex,n; DEX + n -bonus bLuk,n; LUK + n -bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n -bonus bAgiVit,n; AGI + n, VIT + n -bonus bAgiDexStr,n; STR + n, AGI + n, DEX + n -bonus bMaxHP,n; MaxHP + n -bonus bMaxSP,n; MaxSP + n -bonus bMaxHPrate,n; MaxHP + n% -bonus bMaxSPrate,n; MaxSP + n% -bonus bAtk,n; ATK + n -bonus bAtk2,n; ATK2 + n -bonus bAtkRate,n; Attack power + n% -bonus bBaseAtk,n; Basic attack power + n -bonus bMatk,n; Magical attack power + n -bonus bMatkRate,n; Magical attack power + n% -bonus bDef,n; Equipment DEF + n -bonus bDef2,n; VIT based DEF + n -bonus bDefRate,n; Equipment DEF + n% -bonus bDef2Rate,n; VIT based DEF + n% -bonus bMdef,n; Equipment MDEF + n -bonus bMdef2,n; INT based MDEF + n -bonus bMdefRate,n; Equipment MDEF + n% -bonus bMdef2Rate,n; INT based MDEF + n% -bonus bHit,n; Hit + n -bonus bHitRate,n; Hit + n% -bonus bCritical,n; Critical + n -bonus bCriticalRate,n; Critical + n% -bonus bFlee,n; Flee + n -bonus bFleeRate,n; Flee + n% -bonus bFlee2,n; Perfect Dodge + n -bonus bFlee2Rate,n; Perfect Dodge + n% -bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied) -bonus bSpeedAddRate,n; Moving speed + n% -bonus bAspd,n; Attack speed + n -bonus bAspdRate,n; Attack speed + n% -bonus bAtkRange,n; Attack range + n -bonus bCastrate,n; Skill casting time rate + n% -bonus bUseSPrate,n; SP consumption + n% -bonus bHPrecovRate,n; Natural HP recovery ratio + n% -bonus bSPrecovRate,n; Natural SP recovery ratio + n% -bonus bDoubleRate,n; Double Attack probability n% (works with all weapons | only the highest among all is applied) -bonus bDoubleAddRate,n; Double Attack probability + n% (works with all weapons) -bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied) -bonus bPerfectHitAddRate,n; On-target impact attack probability + n% -bonus bCriticalDef,n; Critical ? and others the trap it is, probability + n% -bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks -bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks -bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks -bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...) -bonus bIgnoreDefRace,n; Disregard DEF against enemies of race n - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus bIgnoreDefEle,n; Disregard DEF against enemies of element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus bIgnoreMDefRace,n; Disregard MDEF against enemies of race n - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus bIgnoreMDefEle,n; Disregard MDEF against enemies of element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus bIgnoreMdefRate,n; Disregard n% of the target's MDEF -bonus bDefRatioAtkRace,n; Does more damage depending on monster Defense against race n (defense disregard) : - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus bDefRatioAtkEle,n; n attribute if defensive power is high the high extent big damage is given, (defense disregard) : - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus bAtkEle,n; Gives the player's attacks element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus bDefEle,n; Gives the player's defense element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus bSplashRange,n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc) - Only the highest among all is applied -bonus bSplashAddRange,n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc) -bonus bRestartFullRecover,n; When reviving, HP and SP are fully healed (n is meaningless) -bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless) -bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless) -bonus bNoSizeFix,n; The attack revision with the size of the monster is not received (n is meaningless) -bonus bNoWeaponDamage,n; Prevents from receiving n% physical damage -bonus bNoMagicDamage,n; Prevents from receiving n% magical effect (Attack, Healing, Support spells are all blocked) -bonus bNoGemStone,n; Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone | n is meaningless) -bonus bIntravision,n; Always see Hiding and Cloaking players/mobs (n is meaningless) -bonus bHealPower,n; Increase heal amount of all heal skills by n% -bonus bHealPower2,n; Increase heal amount if you are healed by any skills by n% -bonus2 bAddEff,e,x; Adds a x/100 chance to cause effect e to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc) - e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding -bonus2 bResEff,e,x; Adds a x/100 tolerance to effect e (e.g. x=100 makes 1% tolerance, x=10000 makes 100% tolerance, etc) - e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding -bonus2 bCastrate,n,x; Adjust casting time of skill n by x% (supports skill names) -bonus2 bAddSize,n,x; +x% physical damage against size n. - n: 0=Small 1=Medium 2=Large -bonus2 bMagicAddSize,n,x; +x% magical damage against size n. - n: 0=Small 1=Medium 2=Large -bonus2 bSubSize,n,x; x% Damage reduction against size n. - n: 0=Small 1=Medium 2=Large -bonus2 bAddRace,n,x; +x% physical damage against race n - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus2 bMagicAddRace,n,x; +x% magical damage against race n - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus2 bSubRace,n,x; +x% damage reduction against race n - n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus2 bAddEle,n,x; +x% physical damage against element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus2 bMagicAddEle,n,x; +x% magical damage against element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus2 bSubEle,n,x; x% Damage reduction against element n. - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus2 bMagicAtkEle,n,x; Increases damage of n element magic by x%. - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus2 bAddDamageClass,n,x; +x% extra physical damage against monsters of class n - Against players, n is their job id -bonus2 bAddMagicDamageClass,n,x; +x% extra magical damage against monsters of class n - Against players, n is their job id. -bonus2 bAddDefClass,n,x; x% physical damage reduction against monsters of class n - Against players, n is their job id. -bonus2 bAddMDefClass,n,x; x% magical damage reduction against monsters of class n - Against players, n is their job id. -bonus2 bIgnoreMdefRate,n,x; Disregard x% of the target's MDEF if the target belongs to race n; -bonus2 bHPDrainRate,n,x; n/10 % probability to drain x% HP when attacking -bonus2 bSPDrainRate,n,x; n/10 % probability to drain x% SP when attacking -bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy's SP (player) amount by x% when attacking -bonus3 bSPVanishRate,n,x,t; Same as bonus2 but works only if trigger t activates (see BF_* flags) when attacking. -bonus2 bAddMonsterDropItem,n,x; Adds a x/100% chance for item n to be dropped, when killing any monster. - If 'x' is negative value, then it's a part of formula - chance = -x*(killed_mob_level/10)+1 -bonus2 bGetZenyNum,n,x; When killing a monster, there is a x% chance of gaining 1~n zeny (only the highest among all is applied). - If n < 0, the max zeny to gain is -n*monster level. -bonus2 bAddGetZenyNum,n,x; Same as bGetZenyNum, but the rates and zeny to gain stack. - -bonus3 bAddMonsterDropItem,n,x,y; Adds a y/100% chance for item n to be dropped, when killing any monster of race x. - 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster - If 'y' is negative value, then it's a part of formula - chance = -y*(killed_mob_level/10)+1 -bonus3 bAutoSpell,n,x,y; Auto Spell casting on attack of spell n at level x with y/10% chance. (supports skill names) - Skill is casted on target unless it is a self or support (inf = 4/16) skill. - -// bAddDamageClass, bAddMagicDamageClass and bAddMonsterDropItem it is setting possible up to 10. Those which exceed 10 are ignored. -// those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other things are ignored. - - - -//---- 2/15 new card effects ---- - -bonus bCritAtkRate,n; Increase critical damage by +n% -bonus bNoRegen,n; Stops regeneration for n - n: 1=HP, 2=SP -bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills (n is meaningless) -bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills (n is meaningless) -bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills (n is meaningless) -bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills (n is meaningless) -bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP -bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP -bonus2 bCriticalAddRace,r,n; Critical + n vs. enemies of race r - r: - 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster -bonus2 bHPRegenRate,n,x; Gain n HP every x milliseconds -bonus2 bHPLossRate,n,x; Lose n HP every x milliseconds -bonus2 bAddEffWhenHit,n,x; x/100% chance to cause n state to the enemy when being hit by physical damage -bonus2 bSkillAtk,n,x; Increase damage of skill n by x% (supports skill names) -bonus2 bSkillHeal,n,x; Increase heal amount of skill n by x% (supports skill names) -bonus2 bSkillHeal2,n,x; Increase heal amount if you are healed by skill n by x% (supports skill names) -bonus2 bAddRace2,n,x; Increase damage by x% vs. enemies of race n (Check db/mob_race2_db.txt) - y: 0=Don't show damage 1=Show damage -bonus3 bAutoSpellWhenHit,x,y,n; n/10% chance to cast skill x of level y on attacker (unless it is a self or support skill) when being hit by a - direct attack. (supports skill names) - Target must be within spell's range to go off. -bonus3 bSPDrainRate,n,x,y; When attacking there is a n/10% chance to either gain SP equivalent to x% of damage dealt, - OR drain the amount of sp from the enemy. - y: 0=gain sp 1:drain enemy sp -bonus4 bAutoSpell,x,y,n,i; n/10% chance to cast skill x of level y when attacking (supports skill names) - i: - 0=cast on self - 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) -bonus4 bAutoSpellWhenHit,x,y,n,i; n/10% chance to cast skill x of level y when being hit by a direct attack. (supports skill names) - Target must be within spell's range to go off. - i: - 0=cast on self - 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) -bonus5 bAutoSpell,x,y,n,t,i; n/10% chance to cast skill x of level y when attacking (supports skill names) - t: Trigger criteria: - BF_SHORT: Trigger on melee attack - BF_LONG: Trigger on ranged attack - ( Default: BF_SHORT+BF_LONG ) - - BF_WEAPON: Trigger on weapon skills - BF_MAGIC: Trigger on magic skills - BF_MISC: Trigger on misc skills - ( Default: BF_WEAPON ) - - BF_NORMAL: Trigger on normal - attacks. - BF_SKILL: Trigger on skills - (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) - - i: - 0=cast on self - 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) - -bonus5 bAutoSpellWhenHit,x,y,n,t,i; n/10% chance to cast skill x of level y when being hit by a direct attack. (supports skill names) - Target must be within spell's range to go off. - t: Trigger criteria: - BF_SHORT: Trigger on melee attack - BF_LONG: Trigger on ranged attack - ( Default: BF_SHORT+BF_LONG ) - - BF_WEAPON: Trigger on weapon skills - BF_MAGIC: Trigger on magic skills - BF_MISC: Trigger on misc skills - ( Default: BF_WEAPON ) - - BF_NORMAL: Trigger on normal - attacks. - BF_SKILL: Trigger on skills - (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) - - i: 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) - -//---- 2/22 new card effects ---- - -bonus2 bAddItemHealRate,n,x; Increases HP recovered by n type items by x%, you can also use direct item IDs instead of group values. - (Check db/(pre-)re/item_group.conf) - -//---- 3/15 new card effects ---- - -bonus2 bSPRegenRate,n,x; Gain n SP every x milliseconds -bonus2 bSPLossRate,n,x; Lose n SP every x milliseconds -bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n -bonus2 bSPGainRace,n,x; When killing a monster of race n by physical attack gain x amount of sp -bonus2 bSubRace2,n,x; Damage x% reduction from enemies of race n (Check db/(Pre-Re)RE/mob_race2_db.txt) - -bonus bAddMonsterDropChainItem,n; Able to get item of chain type n (only constant applicable) when you kill a monster (Check db/(pre-)re/item_group.conf) - -bonus3 bAddEff,n,x,y; Adds a x/100 chance to cause effect n to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc). - y is the trigger criteria: - ATF_SELF: Trigger effect on self. - ATF_TARGET: Trigger effect on target (default) - ATF_SHORT: Trigger on melee attacks - ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks) - -bonus3 bAddEffWhenHit,n,x,y; x/100 chance to cause n state to the enemy when being hit by physical damage. - y is the trigger criteria: - ATF_SELF: Trigger effect on self. - ATF_TARGET: Trigger effect on target (default) - ATF_SHORT: Trigger on melee attacks - ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks) - -bonus2 bAddMonsterDropChainItem,n,x; Able to get item of chain type n (only constant applicable) when you kill a monster of race x (Check db/(pre-)re/item_group.conf) - 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster - -bonus2 bWeaponComaRace,x,y; y/100% chance to cause Coma when attacking a monster of race x with a weapon attack - 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, - 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, - 10=Boss monster, 11=Other than (normal monster) boss monster - -bonus bAddStealRate,n; n/100% increase to Steal skill success chance - -bonus2 bAddSkillBlow,x,y; Pushback the target by y cells when using skill x (supports skill names) - -bonus bSPDrainValue,n; When hitting a monster by physical attack, you gain n SP - (use negative numbers so the user loses SP) -bonus2 bSPDrainValue,n,x; When hitting a monster by physical attack, ... - x: - 0=you gain n SP, 1=you drain n SP from target - -bonus2 bIgnoreDefRate,n,x; Disregard x% of the target's DEF if the target belongs to race n; - -bonus3 bAddEle,n,x,t; +x% physical damage against element n - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead - t: Trigger criteria: - BF_SHORT: Trigger on melee attack - BF_LONG: Trigger on ranged attack - ( Default: BF_SHORT+BF_LONG ) - - BF_WEAPON: Trigger on weapon skills - BF_MAGIC: Trigger on magic skills - BF_MISC: Trigger on misc skills - ( Default: BF_WEAPON ) - - BF_NORMAL: Trigger on normal - attacks. - BF_SKILL: Trigger on skills - (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) - - i: 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) -bonus3 bSubEle,n,x,t; x% Damage reduction against element n. - n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead - t: Trigger criteria: - BF_SHORT: Trigger on melee attack - BF_LONG: Trigger on ranged attack - ( Default: BF_SHORT+BF_LONG ) - - BF_WEAPON: Trigger on weapon skills - BF_MAGIC: Trigger on magic skills - BF_MISC: Trigger on misc skills - ( Default: BF_WEAPON ) - - BF_NORMAL: Trigger on normal - attacks. - BF_SKILL: Trigger on skills - (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) - - i: 1=cast on enemy, not on self - 2=use random skill lv in [1..y] - 3=1+2 (random lv on enemy) -bonus4 bAutoSpellOnSkill,s,x,l,n Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names) - Supportive spells are casted on self, others on target of skill s. -bonus5 bAutoSpellOnSkill,s,x,l,n,i Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names) - i: Flags (bitfield) - &1: Forces the skill to be casted on self, rather than on the target of skill s. - &2: Random skill level between 1 and l is chosen. -bonus bAddItemHealRate,x; Increases HP recovered by x% for healing items. -bonus bUnbreakableGarment,n; Garment cannot be damaged/broken by any means (n is meaningless) -bonus bUnbreakableWeapon,n; Weapon cannot be damaged/broken by any means (n is meaningless) -bonus bUnbreakableArmor,n; Armor cannot be damaged/broken by any means (n is meaningless) -bonus bUnbreakableHelm,n; Helm cannot be damaged/broken by any means (n is meaningless) -bonus bUnbreakableShield,n; Shield cannot be damaged/broken by any means (n is meaningless) -bonus bUnbreakableShoes,n; Shoes cannot be damaged/broken by any means (n is meaningless) -bonus bBreakWeaponRate,n; Adds a n/100% chance to break enemy's weapon while attacking (stacks with other break chances). -bonus bBreakArmorRate,n; Adds a n/100% chance to break enemy's armor while attacking (stacks with other break chances). -bonus bUnbreakable,n; Reduces the break chance of all equipped equipment by n%. -bonus bShortWeaponDamageReturn,n; Reflects n% of received melee damage back to the enemy that caused it. -bonus bLongWeaponDamageReturn,n; Reflects n% of received ranged damage back to the enemy that caused it. -bonus2 bWeaponComaEle,x,n; Adds a n/100% chance to cause Coma when attacking a monster of element x with weapon attack. - x: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, - 6=Holy, 7=Dark, 8=Spirit, 9=Undead -bonus2 bAddEff2,x,n; Adds a n/100% chance to cause status change x on self when attacking. - x: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, - Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding -bonus bMagicDamageReturn,n; Adds a n% chance to reflect targetted magic spells back to the enemy that caused it. -bonus bPerfectHide,n; Hidden/cloaked character is no longer detected by monsters with 'detector' mode (n is meaningless). -bonus bNoKnockback,n; Character is no longer knocked back by enemy skills with such effect (n is meaningless). -bonus bClassChange,n; Gives a n/100% chance to change the attacked monster's class with normal attack. -bonus bHPDrainValue,n; Heals +n HP with weapon attack. -bonus2 bHPDrainValue,n,x; Heals +n HP with weapon attack. When x is non-zero, the HP is drained instead. -bonus2 bWeaponAtk,x,n; Adds n ATK when weapon of type x is equipped. - x: see doc/item_db.txt -> view -> weapons for possible values -bonus2 bWeaponAtkRate,x,n; Adds n% damage to weapon attacks when weapon of type x is equipped. - x: see doc/item_db.txt -> view -> weapons for possible values -bonus bDelayrate,n; Increases skill delay by n%. -bonus3 bHPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as HP from a monster of race r with weapon attack. -bonus3 bSPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as SP from a monster of race r with weapon attack. -bonus3 bAddEffOnSkill,s,x,n; Adds a n/100% chance to cause status change x on enemy when using skill s (supports skill names) -bonus4 bAddEffOnSkill,s,x,n,t; Adds a n/100% chance to cause status change x when using skill s (supports skill names) - t: ATF_SELF = causes status change to oneself - ATF_TARGET = causes status change to the enemy -bonus bNoMiscDamage,n; Adds n% reduction to received misc damage. -bonus bLongAtkRate,n; Increases damage of ranged attacks by n%. -bonus bUnstripable,n; Armor cannot be taken off via strip skills (n is meaningless) -bonus2 bHPDrainValueRace,r,n; Heals +n HP when attacking a monster of race r with weapon attack. -bonus2 bSPDrainValueRace,r,n; Heals +n SP when attacking a monster of race r with weapon attack. -bonus bMagicSPGainValue,n; Heals +n SP when killing an enemy with magic attack. -bonus bMagicHPGainValue,n; Heals +n HP when killing an enemy with magic attack. - -bonus3 bAddClassDropItem,s,x,n; Adds an n/100% chance of dropping item s when killing monster class x. - -bonus2 bHPGainRaceAttack,x,n; Heals n HP when attacking x Race on every hit -bonus2 bSPGainRaceAttack,x,n; Heals n SP when attacking x Race on every hit - -bonus2 bSkillUseSPrate,s,x; Reduces SP consumption of skill s by x%. (supports skill names.) -bonus2 bSkillUseSP,s,x; Reduces SP consumption of skill s by x. (supports skill names.) -bonus2 bSkillCooldown,s,x; Increases cooldown of skill s by x milliseconds. (supports skill names.) - -bonus bFixedCastrate,x; Increases fixed cast time of all skills by x%. -bonus bVariableCastrate,x; Increases variable cast time of all skills by x%. -bonus bFixedCast,x; Increases fixed cast time of all skills by x milliseconds; -bonus bVariableCast,x; Increases variable cast time of all skills by x milliseconds; -bonus2 bSkillFixedCast,s,x; Increases fixed cast time of skill s by x milliseconds. (supports skill names.) -bonus2 bSkillVariableCast,s,x; Increases variable cast time of skill s by x milliseconds. (supports skill names.) -bonus2 bVariableCastrate,s,x; Increases variable cast time of skill s by x%. (supports skill names.) -bonus2 bFixedCastrate,s,x; Increases fixed cast time of skill s by x%. (supports skill names.) -bonus4 bSetDefRace,r,n,t,y; Set DEF to y of an enemy of race r at n% for t milliseconds with normal attack -bonus4 bSetMDefRace,r,n,t,y; Set MDEF to y of an enemy of race r at n% for t milliseconds with normal attack
\ No newline at end of file diff --git a/doc/item_db.txt b/doc/item_db.txt deleted file mode 100644 index ce2a248ca..000000000 --- a/doc/item_db.txt +++ /dev/null @@ -1,308 +0,0 @@ -//===== Hercules Documentation =============================== -//= Item Database -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20120904 -//===== Description: ========================================= -//= Explanation of the item_db.conf file and structure. -//============================================================ - -item_db: ( -{ - // =================== Mandatory fields =============================== - Id: ID (int) - AegisName: "Aegis_Name" (string, optional if Inherit: true) - Name: "Item Name" (string, optional if Inherit: true) - // =================== Optional fields ================================ - Type: Item Type (int, defaults to 3 = etc item) - Buy: Buy Price (int, defaults to Sell * 2) - Sell: Sell Price (int, defaults to Buy / 2) - Weight: Item Weight (int, defaults to 0, units in Weight/10 ) - Atk: Attack (int, defaults to 0) - Matk: Magical Attack (int, defaults to 0, ignored in pre-re) - Def: Defense (int, defaults to 0) - Range: Attack Range (int, defaults to 0) - Slots: Slots (int, defaults to 0) - Job: Job mask (int, defaults to all jobs = 0xFFFFFFFF) - Upper: Upper mask (int, defaults to any = 0x3f) - Gender: Gender (int, defaults to both = 2) - Loc: Equip location (int, required value for equipment) - WeaponLv: Weapon Level (int, defaults to 0) - EquipLv: Equip required level (int, defaults to 0) - EquipLv: [min, max] (alternative syntax with min / max level) - Refine: Refineable (boolean, defaults to true) - View: View ID (int, defaults to 0) - BindOnEquip: true/false (boolean, defaults to false) - BuyingStore: true/false (boolean, defaults to false) - Delay: Delay to use item (int, defaults to 0) - Trade: { (defaults to no restrictions) - override: GroupID (int, defaults to 100) - nodrop: true/false (boolean, defaults to false) - notrade: true/false (boolean, defaults to false) - partneroverride: true/false (boolean, defaults to false) - noselltonpc: true/false (boolean, defaults to false) - nocart: true/false (boolean, defaults to false) - nostorage: true/false (boolean, defaults to false) - nogstorage: true/false (boolean, defaults to false) - nomail: true/false (boolean, defaults to false) - noauction: true/false (boolean, defaults to false) - } - Nouse: { (defaults to no restrictions) - override: GroupID (int, defaults to 100) - sitting: true/false (boolean, defaults to false) - } - Stack: [amount, flag] (int, defaults to 0) - Sprite: SpriteID (int, defaults to 0) - Script: <" - Script - (it can be multi-line) - "> - OnEquipScript: <" OnEquip Script (can also be multi-line) "> - OnUnequipScript: <" OnUnequip Script (can also be multi-line) "> - // =================== Optional fields (item_db2 only) ================ - Inherit: true/false (boolean, if true, inherit the values - that weren't specified, from item_db.conf, - else override it and use default values) -}, -... -) - -Id: Item id - -AegisName: Server name to reference the item in scripts and lookups, - should use no spaces. - -Name: Name in English for displaying as output for @ and script commands. - -Type: - 0 Healing item. - 2 Usable item. - 3 Etc item - 4 Weapon - 5 Armor/Garment/Boots/Headgear - 6 Card - 7 Pet egg - 8 Pet equipment - 10 Ammo (Arrows/Bullets/etc) - 11 Usable with delayed consumption (item is lost from inventory - after selecting a target, for use with skills and pet lures) - 18 Another delayed consume that requires user confirmation before - using item. - -Buy: Default buying price. When not specified, becomes double the sell price. - -Sell: Default selling price. When not specified, becomes half the buy price. - -Weight: Item's weight. Each 10 is 1 weight. When not specified, becomes 0. - -Atk: Weapon's attack. When not specified, becomes 0. - -Matk: Weapon's magical attack (only used in renewal mode, ignored in - pre-renewal). When not specified, becomes 0. - -Def: Armor's defense. When not specified, becomes 0. - -Range: Weapon's attack range. When not specified, becomes 0. - -Slots: Amount of slots the item possesses. When not specified, becomes 0. - -Job: Equippable jobs. Uses the following bitmask table: - - (S.) Novice (2^00): 0x00000001 - Swordman (2^01): 0x00000002 - Magician (2^02): 0x00000004 - Archer (2^03): 0x00000008 - Acolyte (2^04): 0x00000010 - Merchant (2^05): 0x00000020 - Thief (2^06): 0x00000040 - Knight (2^07): 0x00000080 - Priest (2^08): 0x00000100 - Wizard (2^09): 0x00000200 - Blacksmith (2^10): 0x00000400 - Hunter (2^11): 0x00000800 - Assassin (2^12): 0x00001000 - Unused (2^13): 0x00002000 - Crusader (2^14): 0x00004000 - Monk (2^15): 0x00008000 - Sage (2^16): 0x00010000 - Rogue (2^17): 0x00020000 - Alchemist (2^18): 0x00040000 - Bard/Dancer (2^19): 0x00080000 - Unused (2^20): 0x00100000 - Taekwon (2^21): 0x00200000 - Star Gladiator (2^22): 0x00400000 - Soul Linker (2^23): 0x00800000 - Gunslinger (2^24): 0x01000000 - Ninja (2^25): 0x02000000 - Gangsi (2^26): 0x04000000 - Death Knight (2^27): 0x08000000 - Dark Collector (2^28): 0x10000000 - Kagerou/Oboro (2^29): 0x20000000 - Rebellion (2^30): 0x40000000 - Some other commonly used values: - All except novice: 0xFFFFFFFE - All (default value): 0xFFFFFFFF - -Upper: Equippable upper-types. Uses the following bitmasks: - Normal jobs: 0x01 (1) - Upper jobs: 0x02 (2) - Baby jobs: 0x04 (4) - Third jobs: 0x08 (8) - Upper Third jobs: 0x10 (16) - Baby Third jobs: 0x20 (32) - - Under pre-re mode third classes are considered upper, making use of - the 8 and above masks is therefore not necessary unless in renewal - mode. When no value is specified, all classes (mask 0x3f) are able to - equip the item. - -Gender: Gender restriction. 0 is female, 1 is male, 2 for both (default value). - -Loc: Equipment's placement. A value needs to be specified if the item is an - equipment piece. Values are: - - 2^0 001 = Lower Headgear - 2^1 002 = Weapon - 2^2 004 = Garment - 2^3 008 = Accessory 1 - 2^4 016 = Armor - 2^5 032 = Shield - 2^6 064 = Footgear - 2^7 128 = Accessory 2 - 2^8 256 = Upper Headgear - 2^9 512 = Middle Headgear - 2^10 1024 = Costume Top Headgear - 2^11 2048 = Costume Mid Headgear - 2^12 4096 = Costume Low Headgear - 2^13 8192 = Costume Garment/Robe - 2^16 65536 = Shadow Armor - 2^17 131072 = Shadow Weapon - 2^18 262144 = Shadow Shield - 2^18 524288 = Shadow Shoes - 2^20 1048576 = Shadow Accessory 2 - 2^21 2097152 = Shadow Accessory 1 - -WeaponLv: Weapon level. Becomes 0 when not specified. - -EquipLv: Base level required to be able to equip. It is possible to specify - two values, if an item has a maximum level, by using the following - syntax: - - EquipLv: [minLv, maxLv] - - If only one value is specified, maxLv becomes the current server's - MAX_LEVEL. If no values are specified, minLv becomes 0. - -Refineable: true if the item can be refined, false otherwise. If no value is - specified, it defaults to true. - -View: For normal items, defines a replacement view-sprite for the item (eg: - Making apples look like apple juice). The special case are weapons - and ammo where this value indicates the weapon-class of the item. - - For weapons, the types are: - 0: bare fist - 1: Daggers - 2: One-handed swords - 3: Two-handed swords - 4: One-handed spears - 5: Two-handed spears - 6: One-handed axes - 7: Two-handed axes - 8: Maces - 9: Unused - 10: Staves - 11: Bows - 12: Knuckles - 13: Musical Instruments - 14: Whips - 15: Books - 16: Katars - 17: Revolvers - 18: Rifles - 19: Gatling guns - 20: Shotguns - 21: Grenade launchers - 22: Fuuma Shurikens - - For ammo, the types are: - 1: Arrows - 2: Throwable daggers - 3: Bullets - 4: Shells - 5: Grenades - 6: Shuriken - 7: Kunai - 8: Cannonballs - 9: Throwable Items (Sling Item) - -BindOnEquip: Whether the item will automatically bind to the character when it - is equipped for the first time. An item that has this field set, - will display a confirmation dialog the first time it is equipped, - and, if accepted, the item will become character-bound. - -BuyingStore: Whether the item can be sold via buyingstore, one must also edit - data\buyingstoreitemlist.txt for client to accept item. - -Delay: Delay for an item to be used again. Value is in milliseconds. - There is a max concurrent number of entries modifiable in - src/map/itemdb.h as MAX_ITEMDELAYS. - -Trade: Item trade restrictions. If this block is omitted, the item will have no - trade restrictions. - All the settings in this group are boolean values, unless otherwise - specified. Default value is false (restriction not set) for any missing - setting. - - Allowed settings in this block are: - override: If specified and in the interval [1:100], sets the - minimum GM Group ID that can bypass the defined trade - restrictions. This is an integer value. - nodrop: Item can't be dropped. - notrade: Item can't be traded (nor vended). - partneroverride: Wedded partners can override the notrade setting. - noselltonpc: Item can't be sold to NPCs. - nocart: Item can't be placed in the cart. - nostorage: Item can't be placed in the storage. - nogstorage: Item can't be placed in the guild storage. - nomail: Item can't be attached to mail messages. - noauction: Item can't be auctioned. - -Nouse: Defines if an item cannot be used under certain circumstances. If this - block is omitted, there will be no usage restrictions. - All the settings in this group are boolean values, unless otherwise - specified. Default value is false (restriction not set) for any missing - setting. - - Allowed settings in this block are: - override: If specified and in the interval [1:100], sets the - minimum GM Group ID that can bypass the defined usage - restrictions. This is an integer value. - sitting: Item can't be used while sitting. - -Stack: Prevents an item to be stacked more than x times in given - inventory types. Generally used by 3rd class related skill items. - Syntax: [amount, type] - Available types: - 1: Character inventory restriction - 2: Character cart restriction - 4: Account storage restriction - 8: Guild storage restriction - Note: Stack limit of 0 will disable a restriction. - -Sprite: SpriteID will be sent to the client instead of ItemID. - NOTE: Replaces an item client-side while keeping them separate server-side. - Think of it as a way to disguise items. - -Script: Script to execute when the item is used/equipped. - -OnEquipScript: Script to execute when the item is equipped. - Warning, not all item bonuses will work here as expected. - -OnUnequipScript: Script to execute when the item is unequipped. - Warning, not all item bonuses will work here as expected. - -Inherit: This can be used only in item_db2.conf, and if set to true, and the - item already exists in item_db.conf, all the missing fields will be - inherited from there rather than using their default values. diff --git a/doc/map_cache.txt b/doc/map_cache.txt deleted file mode 100644 index 19ab92a4d..000000000 --- a/doc/map_cache.txt +++ /dev/null @@ -1,68 +0,0 @@ -//===== Hercules Documentation =============================== -//= Hercules Map Cache Builder and Format Documentation -//===== By: ================================================== -//= DracoRPG -//===== Current Version: ===================================== -//= 20070724 -//===== Description: ========================================= -//= A complete manual for Hercules' map cache generator as -//= well as a reference on the map cache format used. -//============================================================ - -Preface: -------------------------------------------------------------------------------- - -Since SVN revision ~10000, the map-server no longer knows how to read GRFs directly. It reads maps from a -"map cache" file that contains all and only the useful data about the maps. A map cache containing every official -kRO Sakray map currently supported by Hercules is provided as a default. -If you have custom maps or want to minimize the size of your map cache because your server does not load all of them -(multi-map-server or light test server), you can use the map cache builder to generate a new one fitting your needs. - -Map cache builder manual: -------------------------------------------------------------------------------- - -The source code for the map cache builder is located in src/tool/. It can be built using "make tools" if you use the Makefile -or using the "mapcache" project under Visual Studio. Named "mapcache", the executable will be in your Hercules main folder. -The map cache builder needs 3 file paths : one is a list of GRFs and/or data directory containing the maps, the second -is the list of maps to add to the map cache, and the last one is the path of the map cache to generate. Default values for -those paths are "tools/mapcache/grf_files.txt", "db/map_index.txt" and "db/(pre-)re/map_cache.dat". - -As of r16867, the mapcache within SVN can be located in db/pre-re/ and db/re/. This is due to renewal and pre-renewal modes -having slightly different maps. When building your cache, you should ensure you're pointing the tool to the correct location. - -The list of GRFs and/or data directory must follow the format and indication of the default file: as many "grf:" entries as -you wish and optionally only one "data_dir:" entry with trailing backslash included. // comments are supported as usual. -In fact, any file with one map name per line can be used as a map list, that's why the map index list is used as a default: -we are sure it contains every map supported by the server. Anything after the map name is ignored, // comments are supported -and if the first word on the line is "map:" then the second word is used as the map name instead: that allows using -/conf/maps.conf as your map list, which is handy if you want to generate a minimal map cache for each of your multiple -map-servers. -The map cache file path can point to an already existing file, as the builder adds a map only if it's not already cached. -This way, you can add custom maps to the base map cache without even needing kRO Sakray maps. If you wish to rebuild the -entire map cache, though, you can either provide a path to a non-existing file, or force the rebuild mode. - -Here are the command-line arguments you can provide to the map cache builder to customize its behavior: - -grf path/to/grf/list - Allows to specify the file containing the list of GRFs and/or data directory - -list path/to/map/list - Allows to specify the file containing the list of maps to add to the map cache - -cache path/to/map/cache - Allows to specify the path to the generated map cache - -rebuild - Allows to force the rebuild mode (map cache will be overwritten even if it already exists) - - -Map cache format reference: -------------------------------------------------------------------------------- - -The file is written as little-endian, even on big-endian systems, for cross-compatibility reasons. Appropriate conversions -are done when generating it, so don't worry about it. -The first 6 bytes are a main header: -<unsigned int> file size -<unsigned short> number of maps -Then maps are stored one right after another: -<12-characters-long string> map name -<short> X size -<short> Y size -<long> compressed cell data length -<variable> compressed cell data diff --git a/doc/quest_variables.txt b/doc/quest_variables.txt deleted file mode 100644 index 0be144183..000000000 --- a/doc/quest_variables.txt +++ /dev/null @@ -1,108 +0,0 @@ -//===== Hercules Documentation =============================== -//= Permanent Quest Variables -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20120826 -//===== Description: ========================================= -//= This file should help to understand and manage bit-wise -//= quest variables. You can store up to 31 boolean value into -//= a single variable. -//============================================================ - -Variable: MISC_QUEST --------------------------------------------------------------- - -Quest: Juice Maker Quest -Info: How to make juices. This bit keeps final state of the quest. -How to set: set MISC_QUEST, MISC_QUEST | 1; -How to check: if (MISC_QUEST & 1) {} - -Quest: Tempestra Quest -Info: Determines if player has given a potion to Tempestra. -How to set: set MISC_QUEST, MISC_QUEST | 2; -How to check: if (MISC_QUEST & 2) {} - -Quest: Morgenstein Quest -Info: How to make Mixture & Counteragent. This bit keeps final state of the quest. -How to set: set MISC_QUEST, MISC_QUEST | 4; -How to check: if (MISC_QUEST & 4) {} - -Quest: Prontera Culvert Quest -Info: Determines if player can enter Prontera Culverts. -How to set: set MISC_QUEST, MISC_QUEST | 8; -How to check: if (MISC_QUEST & 8) {} - -Quest: Edgar's Offer -Info: Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest. -How to set: set MISC_QUEST, MISC_QUEST | 16; -How to check: if (MISC_QUEST & 16) {} - -Quest: Piano Quest -Info: The only way from Niflheim to Umbala. -How to set: set MISC_QUEST, MISC_QUEST | 32; -How to check: if (MISC_QUEST & 32) {} - -Quest: Bio Ethics Quest -Info: Quest for homunculus skill for alchemists. This bit keeps final state of the quest. -How to set: set MISC_QUEST, MISC_QUEST|64; -How to check: if (MISC_QUEST & 64) {} - -Quest: DTS Warper -Info: Determines if player has already voted. -How to set: set MISC_QUEST, MISC_QUEST|128; -How to check: if (MISC_QUEST & 128) {} - -Quest: - -Info: - -How to set: set MISC_QUEST, MISC_QUEST | 256; -How to check: if (MISC_QUEST & 256) {} - -Quest: Cube Room -Info: Lighthalzen Cube Room quest (to enter Bio-Lab) -How to set: set MISC_QUEST, MISC_QUEST | 512; -How to check: if (MISC_QUEST & 512) {} - -Quest: Reset Skills Event -Info: Yuno, Hypnotist Teacher -How to set: set MISC_QUEST, MISC_QUEST | 1024; -How to check: if (MISC_QUEST & 1024) {} - -Quest: Slotted Arm Guard Quest -Info: Ninja Job Room, Boshuu -How to set: set MISC_QUEST, MISC_QUEST | 2048; -How to check: if (MISC_QUEST & 2048) {} - -Quest: Improved Arm Guard Quest -Info: Ninja Job Room, Basshu -How to set: set MISC_QUEST, MISC_QUEST | 4096; -How to check: if (MISC_QUEST & 4096) {} - -Quest: Rachel Sanctuary Quest -Info: Determines if player can access Rachel Santuary. -How to set: set MISC_QUEST, MISC_QUEST | 8192; -How to check: if (MISC_QUEST & 8192) {} - -Quest: Message Delivery Quest -Info: Send a message to Elly, in Niflheim from Erious. -How to set: set MISC_QUEST, MISC_QUEST | 16384; -How to check: if (MISC_QUEST & 16384) {} - -Quest: Umbala Domestic Dispute? -Info: Reward: 1 Yggdrasil Leaf. -How to set: set MISC_QUEST, MISC_QUEST | 32768; -How to check: if (MISC_QUEST & 32768) {} - -Quest: Access to the Turtle Island -Info: Reward: ~1 OCA, OVB, GB. -How to set: set MISC_QUEST, MISC_QUEST | 65536; -How to check: if (MISC_QUEST & 65536) {} - - -Variable: MISC_QUEST2 --------------------------------------------------------------- - -Quest: - -Info: - -How to set: set MISC_QUEST2, MISC_QUEST2 | ?; -How to check: if (MISC_QUEST2 & ?) {} diff --git a/doc/sample/bank_test.txt b/doc/sample/bank_test.txt deleted file mode 100644 index 5cdf319ca..000000000 --- a/doc/sample/bank_test.txt +++ /dev/null @@ -1,80 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Bank Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Contains commands needed for a basic bank. -//============================================================ - -prontera,162,188,1 script Bank Test 4_F_KAFRA6,{ - cutin "kafra_06",2; - - mes "[Bank Test]"; - mes "Welcome to Prontera's Bank Test."; - mes "You can only deposit a minimal of"; - mes "1000z. What do you want to do?"; - next; - switch (select("Deposit","Withdraw","Exit")) { - case 1: - mes "[Bank Test]"; - mes "How much do you want to deposit?"; - next; - input .@kafrabank; - - if (.@kafrabank < 1000) { - mes "[Bank Test]"; - mes "The minimum deposit is 1000z"; - next; - break; - } - if (.@kafrabank > Zeny) { - mes "[Bank Test]"; - mes "You don't have enough money."; - next; - break; - } - Zeny -= .@kafrabank; - #kafrabank += .@kafrabank; - mes "[Bank Test]"; - mes "You now have ^135445" + Zeny + "z^000000"; - mes "and your bank account ^135445" + #kafrabank + "z^000000"; - next; - break; - case 2: - if (#kafrabank == 0) { - mes "[Bank Test]"; - mes "Your bank account is currently empty, you can't withdraw."; - next; - break; - } - mes "[Bank Test]"; - mes "Current balance: ^135445" + #kafrabank + "^000000z"; - mes "How much do you want to withdraw?"; - next; - input .@kafrabank; - - if (.@kafrabank < 1) - break; - if (.@kafrabank > #kafrabank) { - mes "[Bank Test]"; - mes "You can't withdraw more than ^135445"+ #kafrabank + "^000000z."; - next; - break; - } - #kafrabank -= .@kafrabank; - Zeny += .@kafrabank; - mes "[Bank Test]"; - mes "You now have ^135445" + Zeny + "z^000000"; - mes "and your bank account ^135445" + #kafrabank + "z^000000"; - next; - break; - case 3: - break; - } - - mes "Good bye!"; - cutin "kafra_06",255; - close; -} diff --git a/doc/sample/basejob_baseclass_upper.txt b/doc/sample/basejob_baseclass_upper.txt deleted file mode 100644 index 80cc23fc7..000000000 --- a/doc/sample/basejob_baseclass_upper.txt +++ /dev/null @@ -1,18 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Class Constants -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Outputs the values of class constants. -//============================================================ - -prontera,155,177,1 script Tell Me 4_F_JOB_ASSASSIN,{ - mes "[Tell Me]"; - mes "Class: " + Class; - mes "BaseClass: " + BaseClass; - mes "BaseJob: " + BaseJob; - mes "Upper: " + Upper; - close; -} diff --git a/doc/sample/checkoption.txt b/doc/sample/checkoption.txt deleted file mode 100644 index 77c0a3105..000000000 --- a/doc/sample/checkoption.txt +++ /dev/null @@ -1,19 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Checkoption -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'checkoption' command. -//============================================================ - -prontera,156,89,6 script test_checkoption 4_F_KAFRA1,{ - mes "Please enter a value of type!"; - input .@value; - if(checkoption(.@value) == 1) - mes "True!"; - else if(checkoption(.@value) == 0) - mes "False!"; - close; -} diff --git a/doc/sample/delitem2.txt b/doc/sample/delitem2.txt deleted file mode 100644 index 46e3e42c7..000000000 --- a/doc/sample/delitem2.txt +++ /dev/null @@ -1,39 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Delitem2 -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'delitem2' command. -//============================================================ - -prontera,160,182,5 script Delitem2 1_M_BARD,{ - mes "Item ID?"; - next; - input .@nameid; - mes "Amount?"; - next; - input .@amount; - mes "Identified? (0:no, 1:yes)"; - next; - input .@iden; - mes "Refined how many times?"; - next; - input .@ref; - mes "Attribute? (0:normal, 1:broken)"; - next; - input .@attr; - mes "4 cards (one after another)..."; - next; - input .@c1; - input .@c2; - input .@c3; - input .@c4; - mes "Your command is:"; - mes "delitem2 "+.@nameid+","+.@amount+","+.@iden+","+.@ref+","+.@attr+","+.@c1+","+.@c2+","+.@c3+","+.@c4; - next; - delitem2 .@nameid,.@amount,.@iden,.@ref,.@attr,.@c1,.@c2,.@c3,.@c4; - mes "And here is the moment when your item should disappear! :P"; - close; -} diff --git a/doc/sample/getequipcardid.txt b/doc/sample/getequipcardid.txt deleted file mode 100644 index 8f7d7f27d..000000000 --- a/doc/sample/getequipcardid.txt +++ /dev/null @@ -1,26 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Getequipcardid -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'getequipcardid' command. -//============================================================ - -prontera,155,177,4 script Check My Hat 1_M_SIGNROGUE,{ - mes "Checking your head..."; - if (getequipisequiped(1)) { - .@id = getequipid(1); - .@ref = getequiprefinerycnt(1); - mes "Your hat is... "+getitemname(.@id)+"..."; - if(.@ref) - mes "It has been refined "+.@ref+" times."; - mes "Card Slot 0:"+getequipcardid(1,0)+" 1:"+getequipcardid(1,1); - mes "Card Slot 2:"+getequipcardid(1,2)+" 3:"+getequipcardid(1,3); - close; - } - mes "Nothing?"; - emotion e_hmm; - close; -} diff --git a/doc/sample/getequipid.txt b/doc/sample/getequipid.txt deleted file mode 100644 index 6543d7932..000000000 --- a/doc/sample/getequipid.txt +++ /dev/null @@ -1,16 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Getequipid -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'getequipid' command. -//============================================================ - -prontera,161,181,6 script getequipid Sample 8W_SOLDIER,{ - mes "[GetEquipID Sample]"; - for (.@i = 1; .@i < 11; ++.@i) - mes "getequipid(" + .@i + ") : " + getequipid(1); - close; -} diff --git a/doc/sample/getiteminfo.txt b/doc/sample/getiteminfo.txt deleted file mode 100644 index 89f9a66b5..000000000 --- a/doc/sample/getiteminfo.txt +++ /dev/null @@ -1,23 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Getiteminfo -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'getiteminfo' command. -//============================================================ - -prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{ - mes "Please enter an item ID."; - input .@value; - - // This line uses an INTERNAL function of your client to show item name by its ID! - // ^nItemID^XXXX -> Item Name - mes "Item ID: "+.@value+" ^nItemID^"+.@value; - - mes "Current item info:"; - for (.@id = 0; .@id < 14; ++.@id) - mes " getiteminfo("+.@value+","+.@id+") = "+getiteminfo(.@value,.@id); - close; -} diff --git a/doc/sample/getmonsterinfo.txt b/doc/sample/getmonsterinfo.txt deleted file mode 100644 index 064f1fc71..000000000 --- a/doc/sample/getmonsterinfo.txt +++ /dev/null @@ -1,23 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Getmonsterinfo -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'getmonsterinfo' command. -//============================================================ - -prontera,156,179,6 script test_getmonsterinfo 4_F_KAFRA1,{ - mes "Please enter a monster ID."; - input .@value; - if(getmonsterinfo(.@value,MOB_LV)<0 || getmonsterinfo(.@value,MOB_NAME)=="Dummy") { - mes "Invalid monster ID."; - close; - } - mes "Monster ID: "+.@value+" '"+getmonsterinfo(.@value,MOB_NAME)+"'"; - mes "Current Monster info:"; - for (.@id = 0; .@id < 23; ++.@id) - mes " getmonsterinfo("+.@value+","+@id+") = "+getmonsterinfo(.@value,@id); - close; -} diff --git a/doc/sample/gstorage_test.txt b/doc/sample/gstorage_test.txt deleted file mode 100644 index 8b1a1c0e6..000000000 --- a/doc/sample/gstorage_test.txt +++ /dev/null @@ -1,36 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Guild Storage Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Contains commands needed for a guild warehouse NPC. -//============================================================ - -prontera,165,188,4 script Guild Warehouse 4_F_KAFRA6,{ - cutin "kafra_06",2; - - mes "[Guild Warehouse Coupler]"; - mes "This is the guild warehouse coupler service."; - mes "You will not receive zeny for this is a test."; - next; - if (select("Access Guild Warehouse","Exit") != 1) { - mes "[Guild Warehouser]"; - mes "Come back whenever you want."; - cutin "kafra_06", 255; - close; - } - - .@flag = guildopenstorage; - if (.@flag == 1) { - mes "[Guild Warehouse]"; - mes "The guild warehouse is being used right now."; - mes "Please wait a while, then come back."; - } else if(.@flag == 2) { - mes "[Guild Warehouse]"; - mes "You can't use this service if you're not in a guild!"; - } - cutin "kafra_06",255; - close; -} diff --git a/doc/sample/localized_npc.txt b/doc/sample/localized_npc.txt deleted file mode 100644 index 82a08fa35..000000000 --- a/doc/sample/localized_npc.txt +++ /dev/null @@ -1,148 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample localized NPC -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= v1.1 -//===== Description: ========================================= -//= Example of a localized NPC. -//= -//= There are many ways to do it, this is just one option. -//= The player has a global account variable ##_langid_ that -//= identifies the it's language. -//= -//= The default language should always have langid 0. -//= When a message isn't found for the player's langid -//= (strlen = 0), the message from langid 0 is used instead. -//= -//= Each message is identified by a string that must only -//= contain valid variable name characters. -//= -//= void setlang(int langid) -//= - sets the player's language -//= int getlang(void) -//= - returns the player's language -//= void setmes2(string name,int langid,string text) -//= - sets the localized text for name -//= string getmes2(string name,int langid) -//= - returns the localized text of name -//= void mes2(string name) -//= - displays the localized text of name -//= -//===== Additional Comments: ================================= -//= To use this globally, just put the functions in Global_Functions.txt -//============================================================ - -////////////////////////////////////////////////////////////// -/// Sets the language of the player account. -/// @param langid Languange identifier (0 for default) -function script setlang { - ##_langid_ = getarg(0); - return; -} - -////////////////////////////////////////////////////////////// -/// Returns the language identifier of the player -function script getlang { - return ##_langid_; -} - -////////////////////////////////////////////////////////////// -/// Sets a localized text entry. -/// Does not need a RID attached. -/// @param name Message identifier -/// @param langid Language identifier (0 for default) -/// @param text Text message -function script setmes2 { - .@mes2_name$ = getarg(0); - .@mes2_langid = getarg(1); - .@mes2_text$ = getarg(2); - .@mes2_var$ = "$@__"+ .@mes2_name$ +"_"+ .@mes2_langid +"$"; - - //debugmes "setmes2 \""+ .@mes2_var$ +"\", \""+ .@mes2_text$ +"\";"; - - // set the localized text - setd .@mes2_var$, .@mes2_text$; - return; -} - -////////////////////////////////////////////////////////////// -/// Sets a localized text entry. -/// Does not need a RID attached. -/// @param name Message identifier -/// @param langid Language identifier (0 for default) -/// @return Text message -function script getmes2 { - .@mes2_name$ = getarg(0); - .@mes2_langid = getarg(1); - .@mes2_var$ = "$@__"+ .@mes2_name$ +"_"+ .@mes2_langid +"$"; - .@mes2_text$ = getd(.@mes2_var$); - - //debugmes "getmes2(\""+ .@mes2_var$ +"\")=\""+ .@mes2_text$ +"\""; - - return .@mes2_text$; -} - -////////////////////////////////////////////////////////////// -/// mes for localized text. -/// index should be a unique string, made up only of characters -/// that are valis as a variable name -/// @param index Message identifier -function script mes2 { - .@mes2_index$ = getarg(0); - - if( getstrlen(.@mes2_index$) == 0 ) - return; // invalid index - - // print localized text - .@mes2_text$ = callfunc("getmes2",.@mes2_index$,##_langid_); - if( getstrlen(.@mes2_text$) == 0 ) { - if( ##_langid_ != 0 ) { - // revert to default language - .@mes2_text$ = callfunc("getmes2",.@mes2_index$,0); - if( getstrlen(.@mes2_text$) != 0 ) - mes .@mes2_text$; // default text - } - } else - mes .@mes2_text$; // localized text - return; -} - -////////////////////////////////////////////////////////////// -/// Sample localized NPC -prontera,155,183,4 script LocalizedNPC 4_M_GEF_SOLDIER,{ - // Get text for specific languages - .@menu1$ = callfunc("getmes2","LNPC_lang",0); - .@menu2$ = callfunc("getmes2","LNPC_lang",1); - do { - // get text that fallbacks to language 0 - callfunc "mes2", "LNPC_name"; - // localized mes - callfunc "mes2", "LNPC_lang"; - callfunc "mes2", "LNPC_text"; - next; - - switch(select(.@menu1$,.@menu2$,"Cancel")) - { - case 1: - case 2: - // Set player language - callfunc "setlang",@menu-1; - break; - } - } while( @menu != 3 ); - close; - end; - -OnInterIfInitOnce: - // Load the localized text. - // This can be anywhere, as long as it's executed before the coresponding getmes2/mes2 calls - // 0 - English (default) - // 1 - Portuguese - callfunc "setmes2", "LNPC_name", 0, "[LocalizedNPC]"; - callfunc "setmes2", "LNPC_lang", 0, "EN"; - callfunc "setmes2", "LNPC_lang", 1, "PT"; - callfunc "setmes2", "LNPC_text", 0, "Something in english"; - callfunc "setmes2", "LNPC_text", 1, "Algo em português"; - end; -} diff --git a/doc/sample/npc_dynamic_shop.txt b/doc/sample/npc_dynamic_shop.txt deleted file mode 100644 index 1e4ac77e4..000000000 --- a/doc/sample/npc_dynamic_shop.txt +++ /dev/null @@ -1,93 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Dynamic Shop -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Contains commands needed for a dynamic shop. -//============================================================ - -// Dummy shop to insert items into: -- shop dyn_shop1 -1,501:50. - -prontera,181,200,4 script Dynamic Shop 2_F_MAGICMASTER,{ - callshop "dyn_shop1",0; - npcshopattach "dyn_shop1"; - end; - -OnSellItem: - for (.@i = 0; .@i < getarraysize(@sold_nameid); ++.@i) { - if(countitem(@sold_nameid[.@i]) < @sold_quantity[.@i] || @sold_quantity[.@i] <= 0) { - mes "omgh4x!"; - close; - } else if (@sold_nameid[.@i] == Red_Potion) { - delitem Red_Potion, @sold_quantity[.@i]; - $@rpotsleft += @sold_quantity[.@i]; - Zeny += @sold_quantity[.@i]*20; - } else if (@sold_nameid[.@i] == Orange_Potion){ - delitem Orange_Potion, @sold_quantity[.@i]; - $@opotsleft += @sold_quantity[.@i]; - Zeny += @sold_quantity[.@i]*100; - } else { - mes "Sorry, I don't need your items."; - close; - } - } - deletearray @sold_quantity, getarraysize(@sold_quantity); - deletearray @sold_nameid, getarraysize(@sold_nameid); - mes "Deal completed."; - close; - -OnBuyItem: - for (.@i = 0; .@i < getarraysize(@bought_nameid); ++.@i) { - if (@bought_quantity[.@i] <= 0) { - mes "omgh4x!"; - close; - } else if (@bought_nameid[.@i] == Red_Potion) { - if (@bought_quantity[.@i] > $@rpotsleft) { - if($@rpotsleft > 0) { - @bought_quantity[.@i] = $@rpotsleft; - } else { - mes "We are out of red potions!"; - close; - } - } - if(Zeny >= 40*@bought_quantity[.@i]) { - Zeny -= 40*@bought_quantity[.@i]; - getitem Red_Potion, @bought_quantity[.@i]; - $@rpotsleft -= @bought_quantity[.@i]; - } else { - mes "You have insufficient cash."; - close; - } - } else /*if (@bought_nameid[.@i] == Orange_Potion)*/ { - if(@bought_quantity[.@i] > $@opotsleft) { - if($@opotsleft > 0) { - @bought_quantity[.@i] = $@opotsleft; - } else { - mes "We are out of orange potions!"; - close; - } - } - if(Zeny >= 200*@bought_quantity[.@i]) { - Zeny -= 200*@bought_quantity[.@i]; - getitem Orange_Potion, @bought_quantity[.@i]; - $@opotsleft -= @bought_quantity[.@i]; - } else { - mes "You have insufficient cash."; - close; - } - } - } - deletearray @bought_quantity, getarraysize(@bought_quantity); - deletearray @bought_nameid, getarraysize(@bought_nameid); - mes "Trade done."; - close; - -OnInit: - npcshopitem "dyn_shop1", Red_Potion, 40, Orange_Potion, 200; - $@rpotsleft = 10; - $@opotsleft = 10; - end; -} diff --git a/doc/sample/npc_extend_shop.txt b/doc/sample/npc_extend_shop.txt deleted file mode 100644 index 31ed0af43..000000000 --- a/doc/sample/npc_extend_shop.txt +++ /dev/null @@ -1,351 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Extended Shops -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= An example of shop NPCs. -//============================================================ - -prontera,182,213,3 trader Super Novice Shop 4_M_KID2,{ -OnInit: - sellitem Novice_Knife; - sellitem Novice_Guard; - sellitem Novice_Breast; - sellitem Novice_Plate; - sellitem Novice_Boots; - sellitem Novice_Hood; - sellitem Novice_Armlet; - sellitem Novice_Egg_Cap; -} -prontera,149,139,5 trader Whips Merchant 1_M_MERCHANT,{ -OnInit: - sellitem Rope_; - sellitem Line_; - sellitem Wire_; - sellitem Rante_; - sellitem Tail_; - sellitem Whip_; - sellitem Lariat; - sellitem Rapture_Rose; - sellitem Chemeti; -} -prontera,162,175,3 trader Headgears Merchant 1 1_F_MERCHANT_01,{ -OnInit: - sellitem Ribbon_; - sellitem Hair_Band; - sellitem Bandana; - sellitem Hat_; - sellitem Turban_; - sellitem Biretta_; - sellitem Cap_; - sellitem Gemmed_Sallet_; - sellitem Goggle_; - sellitem Helm_; -} -prontera,162,172,3 trader Headgears Merchant 2 1_F_MERCHANT_01,{ -OnInit: - sellitem Glasses; - sellitem Eye_Bandage; - sellitem Flu_Mask; - sellitem One_Eyed_Glass; - sellitem Granpa_Beard; - sellitem Luxury_Sunglasses; - sellitem Spinning_Eyes; - sellitem Gangster_Patch; - sellitem Ganster_Mask; - sellitem Eagle_Eyes; - sellitem Mr_Scream; - sellitem Masquerade; - sellitem Goblini_Mask; -} -prontera,162,169,3 trader Armours Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Mink_Coat; - sellitem Padded_Armor_; - sellitem Chain_Mail_; - sellitem Plate_Armor_; - sellitem Clothes_Of_The_Lord; - sellitem Formal_Suit; - sellitem Silk_Robe_; - sellitem Scapulare_; - sellitem Saint_Robe_; - sellitem Holy_Robe; - sellitem Wooden_Mail_; - sellitem Tights_; - sellitem Mage_Coat; - sellitem Thief_Clothes_; - sellitem Ninja_Suit; - sellitem Full_Plate_Armor_; -} -prontera,162,166,3 trader Shields Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Guard_; - sellitem Buckler_; - sellitem Shield_; - sellitem Mirror_Shield_; - sellitem Memorize_Book; - sellitem Holy_Guard; - sellitem Herald_Of_GOD; -} -prontera,162,163,3 trader Boots Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Sandals_; - sellitem Shoes_; - sellitem Boots_; - sellitem Chrystal_Pumps; - sellitem Grave_; - sellitem Safty_Boots; -} -prontera,162,160,3 trader Robes Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Hood_; - sellitem Muffler_; - sellitem Manteau_; - sellitem Cape_Of_Ancient_Lord; - sellitem Ragamuffin_Cape; - sellitem Clack_Of_Servival; -} -prontera,162,157,3 trader Accessory Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Ring; - sellitem Earring; - sellitem Necklace; - sellitem Glove; - sellitem Brooch; - sellitem Clip; - sellitem Rosary; - sellitem Safety_Ring; - sellitem Critical_Ring; - sellitem Matyr's_Flea_Guard; - sellitem Thimble_Of_Archer; -} -prontera,162,154,3 trader Arrows Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Arrow; - sellitem Silver_Arrow; - sellitem Fire_Arrow; - sellitem Steel_Arrow; - sellitem Crystal_Arrow; - sellitem Arrow_Of_Wind; - sellitem Stone_Arrow; - sellitem Immatrial_Arrow; - sellitem Stun_Arrow; - sellitem Freezing_Arrow; - sellitem Flash_Arrow; - sellitem Curse_Arrow; - sellitem Rusty_Arrow; - sellitem Poison_Arrow; - sellitem Incisive_Arrow; - sellitem Oridecon_Arrow; - sellitem Arrow_Of_Counter_Evil; - sellitem Arrow_Of_Shadow; - sellitem Sleep_Arrow; - sellitem Silence_Arrow; -} -prontera,162,151,3 trader Alchemist Shop 1_F_MERCHANT_01,{ -OnInit: - sellitem Alcol_Create_Book; - sellitem FireBottle_Create_Book; - sellitem Acid_Create_Book; - sellitem Plant_Create_Book; - sellitem Mine_Create_Book; - sellitem Coating_Create_Book; - sellitem Slim_Potion_Create_Book; - sellitem Normal_Potion_Book; - sellitem Medicine_Bowl; - sellitem Empty_Potion; -} -prontera,162,148,3 trader Taming Merchant 1_F_MERCHANT_01,{ -OnInit: - sellitem Unripe_Apple; - sellitem Orange_Juice; - sellitem Bitter_Herb; - sellitem Rainbow_Carrot; - sellitem Earthworm_The_Dude; - sellitem Rotten_Fish; - sellitem Lusty_Iron; - sellitem Monster_Juice; - sellitem Sweet_Milk; - sellitem Well_Dried_Bone; - sellitem Singing_Flower; - sellitem Dew_Laden_Moss; - sellitem Deadly_Noxious_Herb; - sellitem Fatty_Chubby_Earthworm; - sellitem Baked_Yam; - sellitem Tropical_Banana; - sellitem Horror_Of_Tribe; - sellitem No_Recipient; - sellitem Old_Broom; - sellitem Silver_Knife_Of_Chaste; - sellitem Armlet_Of_Obedience; - sellitem Shining_Stone; - sellitem Contracts_In_Shadow; - sellitem Book_Of_Devil; - sellitem Heart_Of_Her; -} -prontera,162,145,3 trader Pet Equipment 1_F_MERCHANT_01,{ -OnInit: - sellitem Skull_Helm; - sellitem Monster_Oxygen_Mask; - sellitem Transparent_Headgear; - sellitem Pacifier; - sellitem Wig; - sellitem Queen's_Hair_Ornament; - sellitem Silk_Ribbon; - sellitem Punisher; - sellitem Wild_Flower; - sellitem Battered_Pot; - sellitem Stellar_Hairpin; - sellitem Tiny_Egg_Shell; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Green_Lace; - sellitem Golden_Bell; - sellitem Bark_Shorts; - sellitem Monkey_Circlet; - sellitem Red_Muffler; - sellitem Sword_Of_Grave_Keeper; -} -prontera,148,234,5 trader Weapon Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Drops_Card, 100000; - sellitem Andre_Larva_Card, 100000; - sellitem Skeleton_Card, 100000; - sellitem Thief_Bug_Female_Card, 100000; - sellitem Hornet_Card, 100000; - sellitem Wolf_Card, 100000; - sellitem Andre_Card, 100000; - sellitem Savage_Babe_Card, 100000; - sellitem Farmiliar_Card, 100000; - sellitem Plankton_Card, 100000; - sellitem Snake_Card, 100000; - sellitem Marina_Card, 100000; - sellitem Metaller_Card, 100000; - sellitem Magnolia_Card, 100000; - sellitem Zenorc_Card, 100000; - sellitem Requiem_Card, 100000; - sellitem Mandragora_Card, 100000; - sellitem Vadon_Card, 100000; - sellitem Anacondaq_Card, 100000; - sellitem Drainliar_Card, 100000; - sellitem Orc_Skeleton_Card, 100000; - sellitem Pecopeco_Egg_Card, 100000; - sellitem Goblin_Card, 100000; - sellitem Caramel_Card, 100000; - sellitem Scorpion_Card, 100000; - sellitem Flora_Card, 100000; - sellitem Archer_Skeleton_Card, 100000; - sellitem Strouf_Card, 100000; - sellitem Petit_Card, 100000; - sellitem Desert_Wolf_Card, 20700; - sellitem Skel_Worker_Card, 100000; - sellitem Minorous_Card, 100000; - sellitem Golem_Card, 100000; - sellitem Hunter_Fly_Card, 100000; - sellitem Hydra_Card, 100000; - sellitem Soldier_Skeleton_Card, 100000; - sellitem Mummy_Card, 100000; - sellitem Side_Winder_Card, 100000; - sellitem Deviace_Card, 100000; -} -prontera,148,231,5 trader Headgear Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Wilow_Card, 100000; - sellitem Stainer_Card, 100000; - sellitem Martin_Card, 100000; - sellitem Elder_Wilow_Card, 100000; - sellitem Giearth_Card, 100000; - sellitem Ghoul_Card, 100000; - sellitem Marduk_Card, 100000; - sellitem Deviruchi_Card, 100000; - sellitem Nightmare_Card, 100000; -} -prontera,146,229,5 trader Armor Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Pupa_Card, 100000; - sellitem Picky_Card, 100000; - sellitem Picky__Card, 100000; - sellitem Roda_Frog_Card, 100000; - sellitem Thief_Bug_Card, 100000; - sellitem Rocker_Card, 100000; - sellitem Desert_Wolf_Babe_Card, 100000; - sellitem Pecopeco_Card, 100000; - sellitem Savage_Card, 100000; - sellitem Sword_Fish_Card, 100000; - sellitem Dokebi_Card, 100000; - sellitem Pasana_Card, 100000; - sellitem Sand_Man_Card, 100000; - sellitem Argiope_Card, 100000; - sellitem Bathory_Card, 100000; - sellitem Evil_Druid_Card, 100000; - sellitem Cornutus_Card, 100000; - sellitem Marc_Card, 100000; -} -prontera,144,227,5 trader Shield Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Andre_Egg_Card, 100000; - sellitem Ambernite_Card, 100000; - sellitem Thara_Frog_Card, 100000; - sellitem Soldier_Andre_Card, 100000; - sellitem Orc_Warrior_Card, 100000; - sellitem BigFoot_Card, 100000; - sellitem Rafflesia_Card, 100000; - sellitem Petit__Card, 100000; - sellitem Medusa_Card, 100000; - sellitem Khalitzburg_Card, 100000; - sellitem Anubis_Card, 100000; - sellitem Horn_Card, 100000; - sellitem Megalodon_Card, 100000; - sellitem Argos_Card, 100000; - sellitem Munak_Card, 100000; -} -prontera,142,225,5 trader Robe Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Dustiness_Card, 100000; - sellitem Orc_Zombie_Card, 100000; - sellitem Hode_Card, 100000; - sellitem Marse_Card, 100000; - sellitem Myst_Card, 100000; - sellitem Jakk_Card, 100000; - sellitem Marionette_Card, 100000; - sellitem Isis_Card, 100000; - sellitem Daydric_Card, 100000; - sellitem Condor_Card, 100000; - sellitem Frilldora_Card, 100000; - sellitem Whisper_Card, 100000; - sellitem Baphomet__Card, 100000; -} -prontera,140,223,5 trader Shoes Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Chonchon_Card, 100000; - sellitem Zombie_Card, 100000; - sellitem Thief_Bug_Male_Card, 100000; - sellitem Eggyra_Card, 100000; - sellitem Matyr_Card, 100000; - sellitem Sohee_Card, 100000; - sellitem Verit_Card, 100000; -} -prontera,138,221,5 trader Accessory Card Merchant 1_F_PUBGIRL,{ -OnInit: - sellitem Spore_Card, 100500; - sellitem Kukre_Card, 100500; - sellitem Tarou_Card, 100500; - sellitem Worm_Tail_Card, 100500; - sellitem Yoyo_Card, 100500; - sellitem Zerom_Card, 100500; - sellitem Kobold_Card, 100500; - sellitem Mantis_Card, 100500; - sellitem Poporing_Card, 100500; - sellitem Creamy_Card, 100500; - sellitem Smokie_Card, 100500; - sellitem Poison_Spore_Card, 100500; - sellitem Vitata_Card, 100500; - sellitem Pirate_Skel_Card, 100500; - sellitem Phen_Card, 100500; - sellitem Marine_Sphere_Card, 100500; - sellitem Obeaune_Card, 100500; - sellitem Horong_Card, 100500; - sellitem Joker_Card, 100500; -} diff --git a/doc/sample/npc_live_dialogues.txt b/doc/sample/npc_live_dialogues.txt deleted file mode 100644 index 9ce628c30..000000000 --- a/doc/sample/npc_live_dialogues.txt +++ /dev/null @@ -1,53 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Live Dialogue -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= An example of an NPC with live dialogue. -//= Note: This relies on Global_Functions.txt to run. -//============================================================ - -prontera,167,177,5 script Luppy DESERT_WOLF_B,{ - mes "[Luppy]"; - - // Say a random greeting from Global_Functions.txt - mes callfunc("F_Hi"); - - // Say a compliment according to player's gender - // 1st string is for FEMALE, 2nd for MALE - mes callfunc("F_Sex","What a beautiful lady!","What a handsome man!"); - - // Add some random greeting and goodbye into the menu - if (select(callfunc("F_Hi"), callfunc("F_Bye")) != 1) { - mes "[Luppy]"; - // Add some random goodbye from Global_Functions.txt - mes callfunc("F_Bye"); - close; - } - - mes "[Luppy]"; - // Give a random prize from set list of items - if (@gotstuff) { - // Again, say stuff according to player's gender - mes "I like "+callfunc("F_Sex","smiling ladies!","bloody pirates!"); - - // Show one of 3 emotion from the list (we added ,1 to show emotion over PLAYER's head) - emotion callfunc("F_RandMes", 3, e_scissors, e_kis, e_pat), 1; - close; - } - - // We set a temp var to give present just once. Player can get more by relogging. - @gotstuff = 1; - - // Get item ID from the list of presents: Apple, Mastela Fruit, Yggdrasil Seed or Orange Juice - .@itemIDfromList = callfunc("F_RandMes", 4, Apple, Fruit_Of_Mastela, Seed_Of_Yggdrasil, Orange_Juice); - - // Again, say stuff according to player's gender - mes "Hey, "+callfunc("F_Sex","sister!","brother!")+" I have "+getitemname(.@itemIDfromList)+" for you!"; - - // Get the item from the list - getitem .@itemIDfromList, 1; - close; -} diff --git a/doc/sample/npc_test_array.txt b/doc/sample/npc_test_array.txt deleted file mode 100644 index a429ffb93..000000000 --- a/doc/sample/npc_test_array.txt +++ /dev/null @@ -1,43 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Array Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates array commands. -//============================================================ - -prontera,164,190,1 script Array Test 4_F_KAFRA6,{ - .@hoge[0] = 1; - .@hoge[1] = 5; - mes "Please enter a value for hoge[2]."; - next; - input .@hoge[2]; - mes "hoge => " + .@hoge; - mes "hoge[0]=> " + .@hoge[0]; - mes "hoge[1]=> " + .@hoge[1]; - mes "hoge[2]=> " + .@hoge[2]; - next; - setarray .@hoge[1],2,3,4,5; - mes "true: 5,1,2,3,4"; - mes "hoge size = "+ getarraysize(.@hoge); - mes "hoge[0]=> " + .@hoge[0]; - mes "hoge[1]=> " + .@hoge[1]; - mes "hoge[2]=> " + .@hoge[2]; - mes "hoge[3]=> " + .@hoge[3]; - next; - copyarray .@fuga[0],.@hoge[2],2; - mes "true: 3,4,0"; - mes "fuga[0]=> " + .@fuga[0]; - mes "fuga[1]=> " + .@fuga[1]; - mes "fuga[2]=> " + .@fuga[2]; - next; - deletearray .@hoge[1],2; - mes "true: 1,4,5,0"; - mes "hoge[0]=> " + .@hoge[0]; - mes "hoge[1]=> " + .@hoge[1]; - mes "hoge[2]=> " + .@hoge[2]; - mes "hoge[3]=> " + .@hoge[3]; - close; -} diff --git a/doc/sample/npc_test_chat.txt b/doc/sample/npc_test_chat.txt deleted file mode 100644 index adc53c763..000000000 --- a/doc/sample/npc_test_chat.txt +++ /dev/null @@ -1,37 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Chat Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20121003 -//===== Description: ========================================= -//= Demonstrates waitingroom commands. -//============================================================ - -prontera,158,182,0 script Chat Test::test0001 4_F_KAFRA2,{ - mes "Trigger Number: " + getwaitingroomstate(2); - mes "Trigger State: " + getwaitingroomstate(3); - switch(select("Enable:Disable:Delete:Create")) { - case 1: - enablewaitingroomevent; - close; - case 2: - disablewaitingroomevent; - close; - case 3: - delwaitingroom; - close; - case 4: - waitingroom "Test",15,"test0001::OnChatEvent",1; - close; - } - -OnInit: - waitingroom "Test",15,"test0001::OnChatEvent",1; - end; - -OnChatEvent: - disablewaitingroomevent; - warpwaitingpc "prontera",160,180; - end; -} diff --git a/doc/sample/npc_test_checkweight.txt b/doc/sample/npc_test_checkweight.txt deleted file mode 100644 index 0f383ffe4..000000000 --- a/doc/sample/npc_test_checkweight.txt +++ /dev/null @@ -1,158 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: CheckWeight -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates 'checkweight' command. -//============================================================ - -prontera,161,181,6 script ChkSpace 4_M_JPN,{ - function ChkResult; - function FinalReport; - - // Reset - resetlvl(1); - getinventorylist; - for (.@i = 0; .@i < @inventorylist_count; ++.@i) { - delitem(@inventorylist_id[.@i], @inventorylist_amount[.@i]); //clear inventory - } - - //basic backward chk - .@testid = 0; - .@succes = 0; - .@ret = checkweight(Apple, 10); - .@succes += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight("Apple", 10); - .@succes += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight(Premium_Reset_Stone, 33000); - .@succes += ChkResult(.@testid++, 0, .@ret); //should be failure too many item amount item weight=0 - .@ret = checkweight("Premium_Reset_Stone", 33000); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure too many item amount - .@ret = checkweight(Blue_Gemstone, 500); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success weight based on max weight=2030 - .@ret = checkweight(Blue_Gemstone, 1000); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure weight based on max weight=2030 - .@ret = checkweight(Magic_Stone_Ring, 100); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight(Magic_Stone_Ring, 101); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure (with MAX_INVENTORY = 100) - .@ret = checkweight(-1, 1); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure invalid item id - .@ret = checkweight(Apple, 0); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure invalid amount - - debugmes "End backward test"; - FinalReport(.@testid, .@succes); - - //update using list test - .@testid = 0; - .@succes = 0; - - .@ret = checkweight(Apple, 10, Banana, 10); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight("Apple", 10, "Banana", 10); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight(Apple, 80, Banana, 33000); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure - .@ret = checkweight("Apple", 80, "Banana", 33000); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure too many item amount - .@ret = checkweight("Apple", 10, "Banana", 21, Apple); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure invalid nb of args - .@ret = checkweight(Blue_Gemstone, 500, Red_Gemstone, 100); - .@success += ChkResult(.@testid++, 1, .@ret); //should be succes weight 1800/2030 - .@ret = checkweight(Blue_Gemstone, 500, Red_Gemstone, 500); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure weight 3000/2030 - .@ret = checkweight(Magic_Stone_Ring, 95, Green_Apple_Ring, 5); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success - .@ret = checkweight(Magic_Stone_Ring, 95, Green_Apple_Ring, 10); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure (with MAX_INVENTORY = 100) - .@ret = checkweight(Apple, 1, -1, 1); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure invalid item id - .@ret = checkweight(Apple, 1, Banana, 0); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure invalid amount - .@ret = checkweight(Premium_Reset_Stone, 31000, Premium_Reset_Stone, 2000); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure overamount inventory - .@ret = checkweight(Apple, 1, Banana, 1, Grape, 1, Carrot, 1); - .@success += ChkResult(.@testid++, 1, .@ret); //should be sucess - - debugmes "End update by list tests"; - FinalReport(.@testid, .@succes); - - //update using array tests - .@testid = 0; - .@succes = 0; - - setarray .@item[0], Apple, Banana, Grape, Carrot; - setarray .@count[0], 1, 5, 9, 12; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 1, .@ret); //should be sucess - cleararray .@item[0], 0, 4; - cleararray .@count[0], 0, 4; - setarray .@item[0], Apple, Banana, Grape, Carrot; - setarray .@count[0], 1, 5, -1, 12; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, invalid amout - cleararray .@item[0], 0, 4; - cleararray .@count[0], 0, 4; - setarray .@item[0], Apple, Banana, Grape, -1; - setarray .@count[0], 1, 5, 15, 12; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, invalid id - cleararray .@item[0], 0, 4; - cleararray .@count[0], 0, 4; - setarray .@item[0], Blue_Gemstone, Yellow_Gemstone, Red_Gemstone, Emperium; - setarray .@count[0], 300, 300, 300, 300; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, total by weight - cleararray .@item[0], 0, 4; - cleararray .@count[0], 0, 4; - setarray .@item[0], Premium_Reset_Stone, Premium_Reset_Stone; - setarray .@count[0], 31000, 2000; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, total by weight - cleararray .@item[0], 0, 2; - cleararray .@count[0], 0, 2; - setarray .@item[0], Magic_Stone_Ring, Green_Apple_Ring; - setarray .@count[0], 95, 5; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 1, .@ret); //should be success - setarray .@count[0], 95, 10; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure overamount item - cleararray .@item[0], 0, 2; - cleararray .@count[0], 0, 2; - setarray .@item[0], Premium_Reset_Stone, Premium_Reset_Stone, Apple; - setarray .@count[0], 1, 3; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, size mistmatch - cleararray .@item[0], 0, 3; - cleararray .@count[0], 0, 2; - setarray .@item[0], Premium_Reset_Stone, Premium_Reset_Stone; - setarray .@count[0], 1, 3, 5; - .@ret = checkweight2(.@item, .@count); - .@success += ChkResult(.@testid++, 0, .@ret); //should be failure, size mistmatch - - debugmes "End update by array tests"; - FinalReport(.@testid, .@succes); - - end; - - function ChkResult { - .@tid = getarg(0); - .@expected = getarg(1); - .@ret = getarg(2); - .@sucess = (.@ret==.@expected); - debugmes "Test "+.@tid+" = "+(.@sucess?"Sucess":"Fail"); - return .@sucess; - } - - function FinalReport { - .@tdone = getarg(0); - .@succes = getarg(1); - debugmes "Results = Pass : "+.@succes+"/"+.@tdone+" Fails : "+(.@tdone-.@succes)+"/"+.@tdone; - if(.@succes != .@tdone) { debugmes "Some failure as occured, enable chkresult print to found out"; } - return; - } -} diff --git a/doc/sample/npc_test_duplicate.txt b/doc/sample/npc_test_duplicate.txt deleted file mode 100644 index 55d64bc7b..000000000 --- a/doc/sample/npc_test_duplicate.txt +++ /dev/null @@ -1,33 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Duplicate Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20140320 -//===== Description: ========================================= -//= An example of how duplicate NPCs are handled: -//= NPC variables are shared between all duplicates. -//= In this sample, to get the NPC coordinate, has to trigger OnTouch -//= Duplicates always override the source NPC's trigger area (even 0x0). -//= 'OnInit' loads the main npc last, for some reason. (check with debugmes) -//============================================================ - -- script Test Script -1,1,1,{ - mes "Hi."; - mes "My coords are "+ .map$ +", "+ .x +"/" +.y ; - close; - -OnInit: - getmapxy(.map$, .x, .y, 1); - debugmes strnpcinfo(0); - end; - -OnTouch: - getmapxy(.map$, .x, .y, 1); - emotion e_scissors; - end; -} - -prontera,150,175,4 duplicate(Test Script) Test1 4_PORING -prontera,155,175,4 duplicate(Test Script) Test2 4_PORING,2,2 -prontera,160,175,4 duplicate(Test Script) Test3 4_PORING,3,3 diff --git a/doc/sample/npc_test_func.txt b/doc/sample/npc_test_func.txt deleted file mode 100644 index a57b6cfb1..000000000 --- a/doc/sample/npc_test_func.txt +++ /dev/null @@ -1,35 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Functions -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates use of functions. -//============================================================ - -// Define the function func001 -function script func001 { - mes "Hello there!"; - next; - return; // Return to script -} - -// Define the function func002 -function script func002 { - return "I'm a function"; -} - -// Uses 3 different methods of displaying dialogue from both internal and external sources. -prontera,168,189,1 script Functions 4_F_KAFRA6,{ - callfunc "func001"; // Calls func001 and displays "Hello there!" - mes callfunc("func002"); // Calls func002 and displays "I'm a function" - next; - callsub L_SUB001; // Calls the label L_SUB001 and displays "I'm a label" - close; - end; - -L_SUB001: - mes "I'm a label"; - return; -} diff --git a/doc/sample/npc_test_npctimer.txt b/doc/sample/npc_test_npctimer.txt deleted file mode 100644 index 6c9b85a0e..000000000 --- a/doc/sample/npc_test_npctimer.txt +++ /dev/null @@ -1,42 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: NPC Timers -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates NPC timer commands. -//============================================================ - -prontera,156,183,0 script NPCtimerTest::npctimerX0000 4_F_KAFRA2,{ - mes "Timer value" + getnpctimer(0); - mes "State timer" + getnpctimer(1,"npctimerX0000"); - mes "Number of events" + getnpctimer(2); - switch(select("Initialization:Stop:Start:Settings")) { - case 1: - initnpctimer; - close; - case 2: - stopnpctimer; - close; - case 3: - startnpctimer; - close; - case 4: - input .@temp; - setnpctimer .@temp; - close; - } - -OnTimer1000: - npctalk "After a second..."; - end; - -OnTimer5000: - npctalk "After 5 seconds..."; - end; - -OnTimer10000: - npctalk "After 10 seconds..."; - end; -} diff --git a/doc/sample/npc_test_npctimer2.txt b/doc/sample/npc_test_npctimer2.txt deleted file mode 100644 index b325c0c90..000000000 --- a/doc/sample/npc_test_npctimer2.txt +++ /dev/null @@ -1,23 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Attached NPC Timers -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates attached NPC timer commands. -//============================================================ - -prontera,156,183,0 script NPCtimerTest::npctimerX0000 4_F_KAFRA2,{ - mes "What would you like to know?"; - select("Tell me my level."); - mes "I need time to think..."; - initnpctimer; - attachnpctimer; - close; - -OnTimer5000: - mes "Ah, your level is " + readparam(11) + "!"; - detachnpctimer; - close; -} diff --git a/doc/sample/npc_test_pcre.txt b/doc/sample/npc_test_pcre.txt deleted file mode 100644 index 1306d1798..000000000 --- a/doc/sample/npc_test_pcre.txt +++ /dev/null @@ -1,402 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: PCRE -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates PCRE commands. -//============================================================ - -prontera,152,181,5 script MouseJstr 4_M_JPN,{ - -// hello -Lquote0: - npctalk "How do you do. Please state your problem."; - end; - -// computer -Lquote1: - switch(rand(4)) { - case 0: npctalk "Do computers worry you?"; break; - case 1: npctalk "What do you think about machines?"; break; - case 2: npctalk "Why do you mention computers?"; break; - case 3: npctalk "What do you think machines have to do with your problem?"; break; - } - end; - -// name -Lquote2: - npctalk "I am not interested in names"; - end; - -// sorry -Lquote3: - switch(rand(3)) { - case 0: npctalk "Please don't apologize"; break; - case 1: npctalk "Apologies are not necessary"; break; - case 2: npctalk "What feelings do you have when you apologize"; break; - } - end; - -// I remember $@p2$ -Lquote4: - switch(rand(6)) { - case 0: npctalk "Do you often think of "+$@p2$+"?"; break; - case 1: npctalk "Does thinking of "+$@p2$+" bring anything else to mind?"; break; - case 2: npctalk "What else do you remember?"; break; - case 3: npctalk "Why do you recall "+$@p2$+" right now?"; break; - case 4: npctalk "What in the present situation reminds you of "+$@p2$+"?"; break; - case 5: npctalk "What is the connection between me and "+$@p2$+"?"; break; - } - end; - -// do you remember -Lquote5: - switch (rand(4)) { - case 0: npctalk "Did you think I would forget "+$@p2$+" ?"; break; - case 1: npctalk "Why do you think I should recall "+$@p2$+" now"; break; - case 2: npctalk "What about "+$@p2$+""; break; - case 3: npctalk "You mentioned "+$@p2$+""; break; - } - end; - -// if -Lquote6: - switch(rand(4)) { - case 0: npctalk "Do you really think its likely that "+$@p2$+""; break; - case 1: npctalk "Do you wish that "+$@p2$+"?"; break; - case 2: npctalk "What do you think about "+$@p2$+"?"; break; - case 3: npctalk "Really-- if "+$@p2$+"?"; break; - } - end; - -// i dreamt -Lquote7: - switch(rand(3)) { - case 0: npctalk "Really-- "+$@p2$+""; break; - case 1: npctalk "Have you ever fantasized "+$@p2$+" while you were awake?"; break; - case 2: npctalk "Have you dreamt "+$@p2$+" before?"; break; - } - end; - -// dream about -Lquote8: - npctalk "How do you feel about "+$@p2$+" in reality?"; - end; - -// dream -Lquote9: - switch(rand(4)) { - case 0: npctalk "What does this dream suggest to you?"; break; - case 1: npctalk "Do you dream often?"; break; - case 2: npctalk "What persons appear in your dreams?"; break; - case 3: npctalk "Don't you believe that dream has to do with your problem?"; break; - } - end; - -// my mother -Lquote10: - switch(rand(2)) { - case 0: npctalk "Who else in your family "+$@p2$+""; break; - case 1: npctalk "Tell me more about your family"; break; - } - end; - -// my father -Lquote11: - switch(rand(3)) { - case 0: npctalk "Your father"; break; - case 1: npctalk "Does he influence you strongly?"; break; - case 2: npctalk "What else comes to mind when you think of your father?"; break; - } - end; - -// I want -Lquote12: - switch(rand(3)) { - case 0: npctalk "What would it mean if you got "+$@p2$+""; break; - case 1: npctalk "Why do you want "+$@p2$+""; break; - case 2: npctalk "Suppose you got "+$@p2$+" soon"; break; - } - end; - -// I am glad -Lquote13: - switch(rand(3)) { - case 0: npctalk "How have I helped you to be "+$@p2$+""; break; - case 1: npctalk "What makes you happy just now"; break; - case 2: npctalk "Can you explain why you are suddenly "+$@p2$+""; break; - } - end; - -// I am sad -Lquote14: - switch(rand(2)) { - case 0: npctalk "I am sorry to hear you are depressed"; break; - case 1: npctalk "I'm sure its not pleasant to be sad"; break; - } - end; - -// $@p2 are like "+$@p3$+" -Lquote15: - npctalk "What resemblance do you see between "+$@p2$+" and "+$@p3$+""; - end; - -// "+$@p2$+" is like "+$@p3$+" -Lquote16: - switch(rand(4)) { - case 0: npctalk "In what way is it that "+$@p2$+" is like "+$@p3$+""; break; - case 1: npctalk "What resemblance do you see?"; break; - case 2: npctalk "Could there really be some connection?"; break; - case 3: npctalk "How?"; break; - } - end; - -// alike -Lquote17: - switch(rand(2)) { - case 0: npctalk "In what way?"; break; - case 1: npctalk "What similarities are there?"; break; - } - end; - -// same -Lquote18: - npctalk "What other connections do you see?"; - end; - -// I was "+$@p2$+" -Lquote19: - switch(rand(3)) { - case 0: npctalk "Were you really?"; break; - case 1: npctalk "Perhaps I already knew you were "+$@p2$+""; break; - case 2: npctalk "Why do you tell me you were "+$@p2$+" now?"; break; - } - end; - -// was I -Lquote20: - switch(rand(3)) { - case 0: npctalk "What if you were "+$@p2$+" ?"; break; - case 1: npctalk "Do you thin you were "+$@p2$+""; break; - case 2: npctalk "What would it mean if you were "+$@p2$+""; break; - } - end; - -// I am -Lquote21: - switch(rand(2)) { - case 0: npctalk "In what way are you "+$@p2$+""; break; - case 1: npctalk "Do you want to be "+$@p2$+" ?"; break; - } - end; - -// am I -Lquote22: - switch(rand(4)) { - case 0: npctalk "Do you believe you are "+$@p2$+""; break; - case 1: npctalk "Would you want to be "+$@p2$+""; break; - case 2: npctalk "You wish I would tell you you are "+$@p2$+""; break; - case 3: npctalk "What would it mean if you were "+$@p2$+""; break; - } - end; - -// am -Lquote23: - switch(rand(2)) { - case 0: npctalk "Why do you say AM?"; break; - case 1: npctalk "I don't understand that"; break; - } - end; - -// are you -Lquote24: - switch(rand(3)) { - case 0: npctalk "Why are you interested in whether I am "+$@p2$+" or not?"; break; - case 1: npctalk "Would you prefer if I weren't "+$@p2$+""; break; - case 2: npctalk "Perhaps I am "+$@p2$+" in your fantasies"; break; - } - end; - -// you are -Lquote25: - npctalk "What makes you think I am "+$@p2$+" ?"; - end; - -// because -Lquote26: - switch(rand(3)) { - case 0: npctalk "Is that the real reason?"; break; - case 1: npctalk "What other reasons might there be?"; break; - case 2: npctalk "Does that reason seem to explain anything else?"; break; - } - end; - -// were you -Lquote27: - switch(rand(3)) { - case 0: npctalk "Perhaps I was "+$@p2$+""; break; - case 1: npctalk "What do you think?"; break; - case 2: npctalk "What if I had been "+$@p2$+""; break; - } - end; - -// I can't -Lquote28: - switch(rand(2)) { - case 0: npctalk "Maybe you could "+$@p3$+" now"; break; - case 1: npctalk "What if you could "+$@p3$+" ?"; break; - } - end; - -// I feel -Lquote29: - npctalk "Do you often feel "+$@p2$+" ?"; - end; - -// I felt -Lquote30: - npctalk "What other feelings do you have?"; - end; - -// $@p1$ I $@p2$ you $@p3$ -Lquote31: - npctalk "Perhaps in your fantasy we "+$@p3$+" each other?"; - end; - -// why don't you -Lquote32: - switch(rand(3)) { - case 0: npctalk "Should you "+$@p3$+" yourself?"; break; - case 1: npctalk "Do you believe I don't "+$@p3$+""; break; - case 2: npctalk "Perhaps I will "+$@p3$+" in good time"; break; - } - end; - -// yes -Lquote33: - switch(rand(3)) { - case 0: npctalk "You seem quite positive"; break; - case 1: npctalk "You are sure?"; break; - case 2: npctalk "I understand"; break; - } - end; - -// no -Lquote34: - switch(rand(3)) { - case 0: npctalk "Why not?"; break; - case 1: npctalk "You are being a bit negative"; break; - case 2: npctalk "Are you saying NO just to be negative?"; break; - } - end; - -// someone -Lquote35: - npctalk "Can you be more specific?"; - end; - -// everyone -Lquote36: - switch(rand(4)) { - case 0: npctalk "surely not everyone"; break; - case 1: npctalk "Can you think of anyone in particular?"; break; - case 2: npctalk "Who for example?"; break; - case 3: npctalk "You are thinking of a special person?"; break; - } - end; - -// always -Lquote37: - switch(rand(4)) { - case 0: npctalk "Can you think of a specific example?"; break; - case 1: npctalk "When?"; break; - case 2: npctalk "What incident are you thinking of?"; break; - case 3: npctalk "Really-- always?"; break; - } - end; - -// what -Lquote38: - switch(rand(5)) { - case 0: npctalk "Why do you ask?"; break; - case 1: npctalk "Does that question interest you?"; break; - case 2: npctalk "What is it you really want to know?"; break; - case 3: npctalk "What do you think?"; break; - case 4: npctalk "What comes to your mind when you ask that?"; break; - } - end; - -// perhaps -Lquote39: - npctalk "You do not seem quite certain"; - end; - -// are -Lquote40: - switch(rand(2)) { - case 0: npctalk "Did you think they might not be "+$@p2$+""; break; - case 1: npctalk "Possibly they are "+$@p2$; break; - } - end; - -// default -Lquote41: - switch(rand(6)) { - case 0: npctalk "Very interesting"; break; - case 1: npctalk "I am not sure I understand you fully"; break; - case 2: npctalk "What does that suggest to you?"; break; - case 3: npctalk "Please continue"; break; - case 4: npctalk "Go on"; break; - case 5: npctalk "Do you feel strongly about discussing such things?"; break; - } - end; - -OnInit: - defpattern 1, "([^:]+):.*\\shello.*", "Lquote0"; - defpattern 1, "([^:]+):.*\\scomputer.*", "Lquote1"; - defpattern 1, "([^:]+):.*\\sname.*", "Lquote2"; - defpattern 1, "([^:]+):.*\\ssorry.*", "Lquote3"; - defpattern 1, "([^:]+):.*\\si\\s+remember\\s+(.*)", "Lquote4"; - defpattern 1, "([^:]+):.*\\sdo\\s+you\\s+remember\\s+(.*)", "Lquote5"; - defpattern 1, "([^:]+):.*\\sif\\s+(.*)", "Lquote6"; - defpattern 1, "([^:]+):.*\\si\\s+dreamt\\s+(.*)", "Lquote7"; - defpattern 1, "([^:]+):.*\\sdream\\s+about\\s+(.*)", "Lquote8"; - defpattern 1, "([^:]+):.*\\sdream\\s+(.*)", "Lquote9"; - defpattern 1, "([^:]+):.*\\smy\\s+mother\\s+(.*)", "Lquote10"; - defpattern 1, "([^:]+):.*\\smy\\s+father\\s+(.*)", "Lquote11"; - defpattern 1, "([^:]+):.*\\si\\s+want\\s+(.*)", "Lquote12"; - defpattern 1, "([^:]+):.*\\si\\s+am\\s+glad\\s+(.*)", "Lquote13"; - defpattern 1, "([^:]+):\\s+(.*)\\s+i\\s+am\\s+sad\\s+(.*)", "Lquote14"; - defpattern 1, "([^:]+):\\s+(.*)\\s+are\\s+like\\s+(.*)", "Lquote15"; - defpattern 1, "([^:]+):\\s+(.*)\\s+is\\s+like\\s+(.*)", "Lquote16"; - defpattern 1, "([^:]+):.*\\salike\\s+(.*)", "Lquote17"; - defpattern 1, "([^:]+):.*\\ssame\\s+(.*)", "Lquote18"; - defpattern 1, "([^:]+):.*\\si\\s+was\\s+(.*)", "Lquote19"; - defpattern 1, "([^:]+):.*\\swas\\s+i\\s+(.*)", "Lquote20"; - defpattern 1, "([^:]+):.*\\si\\s+am\\s+(.*)", "Lquote21"; - defpattern 1, "([^:]+):.*\\sam\\s+i\\s+(.*)", "Lquote22"; - defpattern 1, "([^:]+):.*\\sam\\s+(.*)", "Lquote23"; - defpattern 1, "([^:]+):.*\\sare\\s+you\\s+(.*)", "Lquote24"; - defpattern 1, "([^:]+):.*\\syou\\s+are\\s+(.*)", "Lquote25"; - defpattern 1, "([^:]+):.*\\sbecause\\s+(.*)", "Lquote26"; - defpattern 1, "([^:]+):.*\\swere\\s+you\\s+(.*)", "Lquote27"; - defpattern 1, "([^:]+):.*\\si\\s+(cant|can't|cannot)\\s+(.*)", "Lquote28"; - defpattern 1, "([^:]+):.*\\si\\s+feel\\s+(.*)", "Lquote29"; - defpattern 1, "([^:]+):.*\\si\\s+felt\\s+(.*)", "Lquote30"; - defpattern 1, "([^:]+):.*\\si\\s+(.*)\\s+you\\s+(.*)", "Lquote31"; - defpattern 1, "([^:]+):.*\\swhy\\s+(don't|dont)\\s+you\\s+(.*)", "Lquote32"; - defpattern 1, "([^:]+):.*\\syes\\s+(.*)", "Lquote33"; - defpattern 1, "([^:]+):.*\\sno\\s+(.*)", "Lquote34"; - defpattern 1, "([^:]+):.*\\ssomeone\\s+(.*)", "Lquote35"; - defpattern 1, "([^:]+):.*\\severyone\\s+(.*)", "Lquote36"; - defpattern 1, "([^:]+):.*\\salways\\s+(.*)", "Lquote37"; - defpattern 1, "([^:]+):.*\\swhat\\s+(.*)", "Lquote38"; - defpattern 1, "([^:]+):.*\\sperhaps\\s+(.*)", "Lquote39"; - defpattern 1, "([^:]+):.*\\sare\\s+(.*)", "Lquote40"; - defpattern 1, "([^:]+):(.*)", "Lquote41"; - - activatepset 1; - end; -} diff --git a/doc/sample/npc_test_quest.txt b/doc/sample/npc_test_quest.txt deleted file mode 100644 index fcf6b2a80..000000000 --- a/doc/sample/npc_test_quest.txt +++ /dev/null @@ -1,52 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Quest Test -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates quest commands. -//============================================================ - -// Before installing an NPC like the one below, you would -// need to add the quest to /db/quest_db.txt - e.g: -// 70000,0,1002,3,0,0,0,0,"3 Splats Please!" - -prontera,90,95,1 script Jelly 2_F_MAGICMASTER,{ - if(checkquest(70000) == -1) { - // Quest not yet started. - mes "[Jelly]"; - mes "Hey there! Would you help me?"; - next; - switch(select("I'd rather not:What's up?")){ - case 1: - mes "[Jelly]"; - mes "I didn't want your help anyway!"; - close; - case 2: - mes "[Jelly]"; - mes "Those Porings are weirding me out."; - mes "Would you kill 3 for me?"; - setquest 70000; // Adds the quest to your Quest Window. - close; - } - } else if(checkquest(70000,HUNTING) == 2) { - // All monsters killed. - mes "[Jelly]"; - mes "Awesome! Thank you!"; - getexp 10000,0; - dispbottom "You have been rewarded with 10,000 Base Exp."; - completequest 70000; // Sets quest status to "complete". - close; - } else if(checkquest(70000) == 1) { - // Quest is active. - mes "[Jelly]"; - mes "Keep going, almost there!"; - close; - } else if(checkquest(70000) == 2) { - // Quest finished. - mes "[Jelly]"; - mes "Thanks again for doing that for me!"; - close; - } -} diff --git a/doc/sample/npc_test_setitemx.txt b/doc/sample/npc_test_setitemx.txt deleted file mode 100644 index a06f0dc9f..000000000 --- a/doc/sample/npc_test_setitemx.txt +++ /dev/null @@ -1,44 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Setiteminfo & Setitemscript -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates 'setiteminfo' and 'setitemscript' commands. -//============================================================ - -prontera,164,161,5 script Lupus WOLF,{ - mes "Please choose an option:"; - next; - switch (select("Make Knife[3] Edible", "Make Apple Equippable", "Edible Knife = Full SP", "Knife = Weapon + 3 Notes")) { - case 1: - mes "Ok. We made Knife[3] edible."; - setiteminfo(Knife, 2, IT_HEALING); //type = 0 : potion - setitemscript(Knife, "{dispbottom \"* You used Knife[3]\";}"); - break; - case 2: - mes "Ok. We made Apple equippable."; - setiteminfo(Apple, 2, IT_ARMOR); //item type -> headgear (type = 5 -> IT_ARMOR) - setiteminfo(Apple, 5, 512); //where to equip to (equip = 512) - setiteminfo(Apple, 11, 256); //set as headgear location (loc = 256) - setiteminfo(Apple, 14, 85); //set Headgear Sprite ID (view id = 85) - setitemscript(Apple, "{dispbottom \"* Other item's changed\";}", 0); - setitemscript(Apple, "{dispbottom \"* Equipped\";}", 1); - setitemscript(Apple, "{dispbottom \"* Unequipped\";}", 2); - break; - case 3: - mes "Ok. Now edible Knife[3] restores your SP."; - setitemscript(Knife, 2, 0); - setitemscript(Knife, "{dispbottom \"* You ate Knife[3] + Full SP\"; percentheal 0,100;}"); - break; - case 4: - mes "Ok. We made Knife a weapon, but added 3 notes."; - setiteminfo(Knife, 2, IT_WEAPON); //type = 4 -> IT_WEAPON - setitemscript(Knife, "{dispbottom \"* 1 Used\";}", 0); - setitemscript(Knife, "{dispbottom \"* 2 Equipped\";}", 1); - setitemscript(Knife, "{dispbottom \"* 3 Unequipped\";}", 2); - break; - } - close; -} diff --git a/doc/sample/npc_test_setmapflag.txt b/doc/sample/npc_test_setmapflag.txt deleted file mode 100644 index 44137bef0..000000000 --- a/doc/sample/npc_test_setmapflag.txt +++ /dev/null @@ -1,32 +0,0 @@ -//===== Hercules Script ====================================== -//= Sample: Mapflag Test -//===== By: ================================================== -//= Jbain -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates mapflag commands. -//============================================================ - -prontera,165,145,0 script EXPflagtest 2_F_MAGICMASTER,{ - mes "[EXPflagtest]"; - mes "Set up the map rates:"; - switch(select("Job EXP:Base EXP:PVP on:Reset all flags")) { - case 1: - input .@rate; - setmapflag "prontera",mf_jexp,.@rate; - close; - case 2: - input .@rate; - setmapflag "prontera",mf_bexp,.@rate; - close; - case 3: - setmapflag "prontera",mf_pvp; - close; - case 4: - removemapflag "prontera",mf_bexp; - removemapflag "prontera",mf_jexp; - removemapflag "prontera",mf_pvp; - close; - } -} diff --git a/doc/sample/npc_test_skill.txt b/doc/sample/npc_test_skill.txt deleted file mode 100644 index c26ed1b62..000000000 --- a/doc/sample/npc_test_skill.txt +++ /dev/null @@ -1,37 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Skill -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates the 'skill' command. -//============================================================ - -// skill <skill id>,<level>{,<flag>}; -// flag=0 Grants the skill permanently -// flag=1 Grants the skill temporarily -// flag=2 Level bonus, stackable -// flag=3 Grants the skill permanently even after skill resets/job changes -// If flag is undefined, it defaults to 1 -// View db/(pre-)re/skill_db.txt for skill IDs - -prontera,157,182,0 script Skills 4_F_KAFRA2,{ - mes "What skill would you like?"; - switch(select("First Aid:Play Dead:Heal:Sight:None")) { - case 1: - skill NV_FIRSTAID,1,0; // Permanently gives player level 1 First Aid - close; - case 2: - skill NV_TRICKDEAD,1,0; // Permanently gives player level 1 Play Dead - close; - case 3: - skill AL_HEAL,3,1; // Temporarily gives player level 3 Heal - close; - case 4: - skill MG_SIGHT,1,3; // Permanently gives player level 1 Sight, even after skill resets/job changes - close; - case 5: - close; - } -} diff --git a/doc/sample/npc_test_time.txt b/doc/sample/npc_test_time.txt deleted file mode 100644 index 2af1dadd8..000000000 --- a/doc/sample/npc_test_time.txt +++ /dev/null @@ -1,25 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: Time Test -//===== By: ================================================== -//= rAthena Dev Team -//===== Current Version: ===================================== -//= 20070315 -//===== Description: ========================================= -//= Demonstrates time commands. -//============================================================ - -prontera,157,181,6 script Time Sample 8W_SOLDIER,{ - mes "[Time Sample]"; - mes "System Tick : " + gettimetick(0); - mes " Time Tick : " + gettimetick(1); - mes " GetTime(0) : " + gettime(0); - mes " GetTime(1) : " + gettime(1) + " (Sec)"; - mes " GetTime(2) : " + gettime(2) + " (Min)"; - mes " GetTime(3) : " + gettime(3) + " (Hour)"; - mes " GetTime(4) : " + gettime(4) + " (WeekDay)"; - mes " GetTime(5) : " + gettime(5) + " (MonthDay)"; - mes " GetTime(6) : " + gettime(6) + " (Month)"; - mes " GetTime(7) : " + gettime(7) + " (Year)"; - mes " GetTimeStr : " + gettimestr("%Y-%m/%d %H:%M:%S",19); - close; -} diff --git a/doc/sample/npc_trader_sample.txt b/doc/sample/npc_trader_sample.txt deleted file mode 100644 index 0d50af8c5..000000000 --- a/doc/sample/npc_trader_sample.txt +++ /dev/null @@ -1,58 +0,0 @@ -//===== Hercules Script ======================================= -//= Sample: NPC Trader -//===== By: ================================================== -//= Hercules Dev Team -//===== Current Version: ===================================== -//= 20131225 -//===== Description: ========================================= -//= Demonstrates NPC Trader. -//============================================================ - -/* ordinary zeny trader */ -prontera,152,151,1 trader TestTrader 4_F_EDEN_OFFICER,{ - OnInit: - sellitem Valkyrja's_Shield; - end; -} -/* ordinary cash trader */ -prontera,152,152,1 trader TestTraderCash 4_F_EDEN_OFFICER,{ - OnInit: - tradertype(NST_CASH); - sellitem Valkyrja's_Shield; - end; -} -/* custom npc trader */ -prontera,153,152,1 trader TestCustom2 4_F_EDEN_OFFICER,{ - OnInit: - tradertype(NST_CUSTOM); - sellitem Red_Potion,2; - end; - -/* allows currency to be item 501 and 502 */ -OnCountFunds: - setcurrency(countitem(Red_Potion),countitem(Orange_Potion)); - end; - -/* receives @price (total cost) and @points (the secondary input field for cash windows) */ -OnPayFunds: - dispbottom "Hi: price="+@price+" and points="+@points; - if( countitem(Orange_Potion) < @points || countitem(Red_Potion) < @price-@points ) - end; - delitem Orange_Potion,@points; - delitem Red_Potion,@price-@points; - purchaseok(); - end; -} -/* demonstrates Market Trader */ -prontera,150,160,6 trader HaiMarket 4_F_EDEN_OFFICER,{ -OnInit: - tradertype(NST_MARKET); - sellitem Red_Potion,-1,49; - end; - -OnClock0000://resupplies red potions on midnight -OnMyResupply: - if( shopcount(Red_Potion) < 20 ) - sellitem Red_Potion,-1,49; - end; -} diff --git a/doc/whisper_sys.txt b/doc/whisper_sys.txt deleted file mode 100644 index 39e2a54f2..000000000 --- a/doc/whisper_sys.txt +++ /dev/null @@ -1,52 +0,0 @@ -//===== Hercules Documentation =============================== -//= NPC Whisper System -//===== By: ================================================== -//= lordalfa -//===== Current Version: ===================================== -//= 20120904 -//===== Description: ========================================= -//= A description of Hercules' NPC whispering system. -//============================================================ - -This piece of code to allows characters to execute events in NPCs by whispering -them up to ten parameters. The NPC must have an "OnWhisperGlobal" label, or an -"event not found" error will result. - - NPC:<NPC Name> <String>{#String 2{#...{#String 10}}} - -The whispered strings are separated by the "#" character, and are each stored -into separate temporary character string variables: - - @whispervar0$, @whispervar1$, ... @whispervar9$ - ---------------------------------------------------------------------------------- - -Below is an example of how this feature might be used. -You whisper an NPC "NPCCommander" in-game with the following instructions: - - NPC:NPCCommander Report#Killstealing#Lordalfa - -The parameters are passed on to the "OnWhisperGlobal" label of the NPC, and can -be processed accordingly: - -- script NPCCommander -1,{ -OnWhisperGlobal: - // Inform player "Lordalfa" that he has been reported for killstealing. - if (@whispervar0$ == "Report") - message @whispervar2$,"You have been reported for "+@whispervar1$+"."; - end; -} - -This could also be used for hidden event triggers: - -- script EventManager -1,{ -OnWhisperGlobal: - if (getgmlevel() < 80) end; - if (@whispervar0$ == "pvp") { - // Script for a PVP event. - } - else if (@whispervar0$ == "mvp") { - // Script for an MVP summoning event. - } - end; -} diff --git a/doc/woe_time_explanation.txt b/doc/woe_time_explanation.txt deleted file mode 100644 index 9f288eae7..000000000 --- a/doc/woe_time_explanation.txt +++ /dev/null @@ -1,102 +0,0 @@ -//===== Hercules Documentation =============================== -//= WoE Time Explanation -//===== By: ================================================== -//= erKURITA -//===== Current Version: ===================================== -//= 20120717 -//===== Description: ========================================= -//= Details on the behavior of the default WoE controller. -//============================================================ - -There are 2 main commands that determine WoE times: -OnClock<time>: and gettime(<type>). - -OnClock<time> triggers when <time> is reached. -The format is HHMM, where H = hour, M = minute. -OnClock2350: would run at 23:50, server time. - -gettime(<type>) is a function that checks for certain -information regarding time. The types are: - - 1 - Seconds (of a minute) - 2 - Minutes (of an hour) - 3 - Hour (of a day), ranging from 0 to 23 - 4 - Weekday, ranging from 0 (Sunday) to 6 (Saturday) - 5 - Day of the month - 6 - Number of the month - 7 - Year - 8 - Day of the year - -This way, we can check for a desired minute, hour, day, month, etc. - -------------------------------------------------------------------------------- - -Now the structure: - - OnClock2100: // Start time for Tues(2), Thurs(4) - OnClock2300: // End time for Tues(2), Thurs(4) - OnClock1600: // Start time for Sat(6) - OnClock1800: // End time for Sat(6) - -These 4 labels will run one after the other, reaching the next check: - - if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start; - if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start; - if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start; - -This part will check for the times. Since both Start and End times run -through the same chain of commands, these are important checks to ensure -it's the right time. Let's take the following example: - - if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) - -The first gettime() is checking for a type 4, the day of the week, and it's -comparing it to the one desired, which is 2 (Tuesday). The function will -return either 1 (true) or 0 (false). - -The second gettime is checking type 3, the hour, and it's comparing -it to 21. If the first part is greater than or equal to (>=) the second part, -the comparison will return 1. - -The third and last gettime is checking again for the hour, but the time has to be less -than the specified time (in this case, 23). - -Now, look at the parentheses. Parentheses are very important when making comparisons -and conditions. Check the order of these. I'll place dummy characters for this example: - - if ((X && (Y && Z)) goto L_Start; - -It's saying, if Y and Z are true, the condition is met. Now let's use another set -of dummy characters. We're checking if (Y && Z) = G: - - if (X && G) goto L_Start; - -It's saying that if X and G are true, the condition is met, thus proceeding to L_Start. - -Now, the last part of the script, regarding the end of WoE time: - - if((gettime(4)==2) && (gettime(3)==23)) goto L_End; - if((gettime(4)==4) && (gettime(3)==23)) goto L_End; - if((gettime(4)==6) && (gettime(3)==18)) goto L_End; - end; - -This is the same as before, but it's checking for the day in the first gettime() and -the hour on the second. If both conditions are true, WoE will end. We're checking -here for the end time, not the start. - -Another important thing is "OnAgitInit:". This special label will be run as soon as the -castle data is loaded from the char data. It will check for the above start and end times -to see if it's in WoE time, hence why the hours have to be checked. - -------------------------------------------------------------------------------- - -An example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm: - - OnClock1600: // 16:00 = 4 pm - OnClock2200: // 22:00 = 10 pm - - OnAgitInit: // This can only be written once: put OnClock above and the checks below. - - if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start; - if ((gettime(4)==1) && (gettime(3)==22) goto L_End; - end; // Don't forget this! |