diff --git a/.editorconfig b/.editorconfig index 69754d3221a..2f755a9d5e5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,9 +6,15 @@ root = true # Add a blank newline to the end of every file after saving # Trim trailing whitespace +# Adjust character set [*] insert_final_newline = true trim_trailing_whitespace = true +charset = utf-8 + +# Use tabs in source +[*.{cpp,c,hpp,h}] +indent_style = tab # YAML does not support hard tabs. [*.{yml,yaml}] diff --git a/.gitignore b/.gitignore index cbeb1aa7b41..35d42bb676f 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,6 @@ Thumbs.db /libmysql.dll /pcre8.dll /zlib.dll + +# CMakeFiles +/CMakeFiles/ diff --git a/README.md b/README.md index 7d647d44f15..a2e89c94619 100644 --- a/README.md +++ b/README.md @@ -1,205 +1,72 @@ -rAthena -======= + + +# rAthena +[![Build Status](https://travis-ci.org/rathena/rathena.png?branch=master)](https://travis-ci.org/rathena/rathena) [![Build status](https://ci.appveyor.com/api/projects/status/8574b8nlwd57loda/branch/master?svg=true)](https://ci.appveyor.com/project/rAthenaAPI/rathena/branch/master) [![Total alerts](https://img.shields.io/lgtm/alerts/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/context:cpp) ![GitHub](https://img.shields.io/github/license/rathena/rathena.svg) ![GitHub repo size](https://img.shields.io/github/repo-size/rathena/rathena.svg) +> rAthena is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. rAthena is a continuation of the eAthena project. + +[Forum](https://rathena.org/board)|[Discord](https://rathena.org/discord)|[Wiki](https://github.com/rathena/rathena/wiki)|[FluxCP](https://github.com/rathena/FluxCP)|[Crowdfunding](https://rathena.org/board/crowdfunding/)|[Fork and Pull Request Q&A](https://rathena.org/board/topic/86913-pull-request-qa/) +--------|--------|--------|--------|--------|-------- + +### Table of Contents +1. [Prerequisites](#1-prerequisites) +2. [Installation](#2-installation) +3. [Troubleshooting](#3-troubleshooting) +4. [More Documentation](#4-more-documentation) +5. [How to Contribute](#5-how-to-contribute) +6. [License](#6-license) + +## 1. Prerequisites +Before installing rAthena there are certain tools and applications you will need which +differs between the varying operating systems available. + +### Hardware +Hardware Type | Minimum | Recommended +------|------|------ +CPU | 1 Core | 2 Cores +RAM | 1 GB | 2 GB +Disk Space | 300 MB | 500 MB + +### Operating System & Preferred Compiler +Operating System | Compiler +------|------ +Linux | [gcc-5 or newer](https://www.gnu.org/software/gcc/gcc-5/) / [Make](https://www.gnu.org/software/make/) +Windows | [MS Visual Studio 2013, 2015, 2017](https://www.visualstudio.com/downloads/) + +### Required Applications +Application | Name +------|------ +Database | [MySQL 5 or newer](https://www.mysql.com/downloads/) / [MariaDB 5 or newer](https://downloads.mariadb.org/) +Git | [Windows](https://gitforwindows.org/) / [Linux](https://git-scm.com/download/linux) + +### Optional Applications +Application | Name +------|------ +Database | [MySQL Workbench 5 or newer](http://www.mysql.com/downloads/workbench/) + +## 2. Installation + +### Full Installation Instructions + * [Windows](https://github.com/rathena/rathena/wiki/Install-on-Windows) + * [CentOS](https://github.com/rathena/rathena/wiki/Install-on-Centos) + * [Debian](https://github.com/rathena/rathena/wiki/Install-on-Debian) + * [FreeBSD](https://github.com/rathena/rathena/wiki/Install-on-FreeBSD) + +## 3. Troubleshooting -Build Status: [![Build Status](https://travis-ci.org/rathena/rathena.png?branch=master)](https://travis-ci.org/rathena/rathena) [![Build status](https://ci.appveyor.com/api/projects/status/8574b8nlwd57loda/branch/master?svg=true)](https://ci.appveyor.com/project/rAthenaAPI/rathena/branch/master) [![Total alerts](https://img.shields.io/lgtm/alerts/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/context:cpp) - -Table of Contents ---------- -1. What is rAthena? -2. Prerequisites -3. Installation -4. Troubleshooting -5. Helpful Links -6. More Documentation -7. How to Contribute - -1. What is rAthena? ---------- -rAthena is a collaborative software development project revolving around the -creation of a robust massively multiplayer online role playing game (MMORPG) -server package. Written in C, the program is very versatile and provides NPCs, -warps and modifications. The project is jointly managed by a group of volunteers -located around the world as well as a tremendous community providing QA and -support. rAthena is a continuation of the eAthena project. - -2. Prerequisites ---------- -Before installing rAthena there are certain tools and applications you will need. -This differs between the varying operating systems available, so the following -is broken down into Windows and Linux prerequisites. - -* Windows - * MySQL ( http://www.mysql.com/downloads/mysql/ ) - * MySQL Workbench ( http://www.mysql.com/downloads/workbench/ ) - * MS Visual Studio ( https://www.visualstudio.com/downloads/ ) - * TortoiseGIT ( http://code.google.com/p/tortoisegit/ ) - * git for Windows ( https://gitforwindows.org/ ) - -* Linux (names of packages may require specific version numbers on certain distributions) - * gcc - * g++ - * make - * mysql - * mysql-devel - * mysql-server - * pcre-devel - * zlib-devel - * git - -3. Installation ---------- -This section is a very brief set of installation instructions. For more concise guides -relevant to your Operation System, please refer to the Wiki (links at the end of this file). - -* Windows - * Install prerequisites - * Create a folder to download rAthena into (e.g. C:\rAthena) - * Right click this folder and select "Git Clone" - * Paste the GitHub URL into the box: - - https://github.com/rathena/rathena.git - - * Open MySQL Workbench and create an instance to connect to your MySQL Server - * Create a database (rathena), a user (rathena), give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) - and then login using the new user - * Use MySQL Workbench to run the .sql files in /sql-files/ on the new rathena database - -* Linux - * Type: - * (For CentOS) - - yum install gcc g++ make mysql mysql-devel mysql-server pcre-devel zlib-devel git - * (For Debian) - - apt-get install git make gcc g++ libmysqlclient-dev zlib1g-dev libpcre3-dev - * Type: - - mysql_secure_installation - * Start your MySQL server - * Setup a MySQL user: - - CREATE USER 'rathena'@'localhost' IDENTIFIED BY 'password'; - * Assign permissions: - - GRANT SELECT,INSERT,UPDATE,DELETE ON `rathena\_rag`.* TO 'rathena'@'localhost'; - * Clone a GIT repository: - - git clone https://github.com/rathena/rathena.git ~/rathena - * Insert SQL files: - - mysql --user=root -p rathena_rag < trunk/sql-files/main.sql (and others) - * Configure and compile: - - ./configure && make clean && make server - * Configure and compile (for Centos 64 bit with Maria DB): - - ./configure --enable-64bit --with-MYSQL_LIBS=/usr/lib64/libmysqlclient.so && make clean && make server - * When you're ready, start the servers: - - ./athena-start start - -* Optional - * If you want to have your own forked version but still get updates from the main rAthena repository - * Fork this repository to your GitHub account - * List the current configured remote repository for your fork: - - git remote -v - - * Specify a new remote upstream repository that will be synced with your fork: - - git remote add upstream https://github.com/rathena/rathena.git - - * Verify the new upstream repository you've specified for your fork: - - git remote -v - - * You should see the main rAthena repository as well as your forked repository - * Now, when you want to get updates from rAthena, simply do: - - git pull upstream master - - * Remember that rAthena falls under [GNU GPLv3](https://github.com/rathena/rathena/blob/master/LICENSE). - -4. Troubleshooting ---------- If you're having problems with starting your server, the first thing you should do is check what's happening on your consoles. More often that not, all support issues -can be solved simply by looking at the error messages given. - -Examples: - -* You get an error on your map-server that looks something like this: - - [Error]: npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in - file 'npc/custom/jobmaster.txt', line '17'. Skipping line... - * w1=prontera,153,193,6 script - * w2=Job Master - * w3=123,{ - * w4= - - If you look at the error, it's telling you that you're missing (or have an extra) TAB. - This is easily fixed by looking at this part of the error: - - * w1=prontera,153,193,6 script - - If there was a TAB where it's supposed to be, that line would have prontera,153,193,6 at w1 - and 'script' at w2. As there's a space instead of a TAB, the two sections are read as a - single parameter. - -* You have a default user/password warning similar to the following: - - [Warning]: Using the default user/password s1/p1 is NOT RECOMMENDED. - [Notice]: Please edit your 'login' table to create a proper inter-server user/pa - ssword (gender 'S') - [Notice]: and then edit your user/password in conf/map_athena.conf (or conf/impo - rt/map_conf.txt) - - Relax. This is just indicating that you're using the default username and password. To - fix this, check over the part in the installation instructions relevant to the `login` table. - -* Your map-server outputs the following: - - [Error]: make_connection: connect failed (socket #2, error 10061: No connection - could be made because the target machine actively refused it. - )! +can be solved simply by looking at the error messages given. Check out the [wiki](https://github.com/rathena/rathena/wiki) +or [forums](https://rathena.org/forum) if you need more support on troubleshooting. - If this shows up on the map server, it generally means that there is no Char Server available - to accept the connection. - - - -5. Helpful Links ---------- -* rAthena Forums - * https://rathena.org/ - -* GIT Repository - * https://github.com/rathena/rathena - -* Full Installation Instructions - * [Windows](https://github.com/rathena/rathena/wiki/Install-on-Windows) - * [CentOS](https://github.com/rathena/rathena/wiki/Install-on-Centos) - * [Debian](https://github.com/rathena/rathena/wiki/Install-on-Debian) - * [FreeBSD](https://github.com/rathena/rathena/wiki/Install-on-FreeBSD) - -* rAthena Discord Chat - https://rathena.org/discord - -* rAthena Wiki - https://github.com/rathena/rathena/wiki - -* Fork and Pull Request Q&A - https://rathena.org/board/topic/86913-pull-request-qa/ - - -6. More Documentation ---------- +## 4. More Documentation rAthena has a large collection of help files and sample NPC scripts located in the /doc/ directory. These include detailed explanations of NPC script commands, atcommands (@), group permissions, item bonuses, and packet structures, among many other topics. We recommend that all users take the time to look over this directory before asking for assistance elsewhere. -7. How to Contribute ---------- +## 5. How to Contribute Details on how to contribute to rAthena can be found in [CONTRIBUTING.md](https://github.com/rathena/rathena/blob/master/.github/CONTRIBUTING.md)! + +## 6. License +Copyright (c) rAthena Development Team - Licensed under [GNU General Public License v3.0](https://github.com/rathena/rathena/blob/master/LICENSE) diff --git a/appveyor.yml b/appveyor.yml index c71645d3e0a..c840d7db53d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,8 +26,12 @@ build_script: services: mysql test_script: - cmd: >- + rem ======================================================================== + rem Set up the environment variables we need + rem ======================================================================== + set DB_HOST=127.0.0.1 set DB_ROOT=root @@ -44,53 +48,28 @@ test_script: cd C:\projects\rathena - rem TODO should be replace with tools\ci\sql.bat as soon as possible - rem MySQL database setup - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "CREATE DATABASE %DB_NAME%;" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\main.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\logs.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db2.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db_re.sql" + rem ======================================================================== - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2_re.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db_re.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2_re.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db_re.sql" + rem MySQL database setup - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2_re.sql" + rem ======================================================================== - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\roulette_default_data.sql" + call tools\ci\sql.bat - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "GRANT SELECT,INSERT,UPDATE,DELETE ON %DB_NAME%.* TO '%DB_USER%'@'%DB_HOST%' IDENTIFIED BY '%DB_USERPW%';" + rem ======================================================================== rem Activate all custom and test scripts + rem ======================================================================== + start /d tools\ci npc.bat + rem ======================================================================== + rem Start the map server + rem ======================================================================== + login-server.exe --run-once char-server.exe --run-once diff --git a/branding/logo.png b/branding/logo.png new file mode 100644 index 00000000000..0af2fdb5ba3 Binary files /dev/null and b/branding/logo.png differ diff --git a/conf/battle/battle.conf b/conf/battle/battle.conf index da1bddefe6a..93fe9db69a0 100644 --- a/conf/battle/battle.conf +++ b/conf/battle/battle.conf @@ -10,7 +10,8 @@ //-------------------------------------------------------------- // Who should have a baseatk value (makes str affect damage)? (Note 3) -enable_baseatk: 0x29F +enable_baseatk: 0x9 +enable_baseatk_renewal: 0x29F // Who can have perfect flee? (Note 3) enable_perfect_flee: 1 diff --git a/conf/battle/guild.conf b/conf/battle/guild.conf index 9a89b03d5b3..80d87d28f84 100644 --- a/conf/battle/guild.conf +++ b/conf/battle/guild.conf @@ -20,9 +20,6 @@ guild_max_castles: 0 // Official setting is 5 minutes (300000 ms), otherwise allow guild leaders to relog to cancel the 5 minute delay. guild_skill_relog_delay: 300000 -// Damage adjustments for WOE battles against defending Guild monsters (Note 2) -castle_defense_rate: 100 - // Melee damage adjustments (non skills) for WoE battles (Guild Vs Guild) (Note 2) gvg_short_attack_damage_rate: 80 diff --git a/conf/battle/pet.conf b/conf/battle/pet.conf index ec08c0cb9c8..59ead03e51b 100644 --- a/conf/battle/pet.conf +++ b/conf/battle/pet.conf @@ -22,6 +22,7 @@ pet_friendly_rate: 100 pet_hungry_delay_rate: 100 // Does the pet need its equipment before it does its skill? (Note 1) +// These bonuses are unofficial and found in the import/pet_db.yml pet_equip_required: yes // When the master attacks a monster, whether or not the pet will also attack. (Note 1) diff --git a/conf/battle/player.conf b/conf/battle/player.conf index 6b9c2f74627..af3d6296e7c 100644 --- a/conf/battle/player.conf +++ b/conf/battle/player.conf @@ -244,7 +244,7 @@ fame_taekwon_mission: 1 // Refined own forged weapon to +10 fame_refine_lv1: 1 fame_refine_lv2: 25 -fame_refine_lv3: 10000 +fame_refine_lv3: 1000 // Success to forge a lv3 weapon with 3 additional ingredients fame_forge: 10 // Success to prepare 'n' Condensed Potions in a row diff --git a/conf/groups.conf b/conf/groups.conf index f709776ee92..0d83b036189 100644 --- a/conf/groups.conf +++ b/conf/groups.conf @@ -87,6 +87,7 @@ groups: ( inherit: ( /*empty list*/ ) commands: { changedress: true + resurrect: true } permissions: { /* without this basic permissions regular players could not diff --git a/conf/inter_athena.conf b/conf/inter_athena.conf index e10fd3f9610..d814f326989 100644 --- a/conf/inter_athena.conf +++ b/conf/inter_athena.conf @@ -116,7 +116,6 @@ skill_homunculus_db: skill_homunculus mercenary_db: mercenary mercenary_owner_db: mercenary_owner elemental_db: elemental -ragsrvinfo_db: ragsrvinfo skillcooldown_db: skillcooldown bonus_script_db: bonus_script acc_reg_num_table: acc_reg_num diff --git a/db/achievement_level_db.yml b/db/achievement_level_db.yml new file mode 100644 index 00000000000..43c06659174 --- /dev/null +++ b/db/achievement_level_db.yml @@ -0,0 +1,40 @@ +# This file is a part of rAthena. +# Copyright(C) 2019 rAthena Development Team +# https://rathena.org - https://github.com/rathena +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +########################################################################### +# Achievement Level Database +########################################################################### +# +# Achievement Level Settings +# +########################################################################### +# Level - Achievement Level +########################################################################### +# Points - Required total scoring points to reach this level. +########################################################################### + +Header: + Type: ACHIEVEMENT_LEVEL_DB + Version: 1 + +Footer: + Imports: + - Path: db/pre-re/achievement_level_db.yml + Mode: Prerenewal + - Path: db/re/achievement_level_db.yml + Mode: Renewal + - Path: db/import/achievement_level_db.yml diff --git a/db/import-tmpl/achievement_level_db.yml b/db/import-tmpl/achievement_level_db.yml new file mode 100644 index 00000000000..3daa6d040b9 --- /dev/null +++ b/db/import-tmpl/achievement_level_db.yml @@ -0,0 +1,32 @@ +# This file is a part of rAthena. +# Copyright(C) 2019 rAthena Development Team +# https://rathena.org - https://github.com/rathena +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +########################################################################### +# Import Achievement Level Database +########################################################################### +# +# Achievement Level Settings +# +########################################################################### +# Level - Achievement Level +########################################################################### +# Points - Required total scoring points to reach this level. +########################################################################### + +Header: + Type: ACHIEVEMENT_LEVEL_DB + Version: 1 diff --git a/db/pre-re/achievement_db.yml b/db/pre-re/achievement_db.yml index 6badf942b14..2ad60762579 100644 --- a/db/pre-re/achievement_db.yml +++ b/db/pre-re/achievement_db.yml @@ -1726,6 +1726,12 @@ Body: Reward: ItemID: 617 Score: 50 + - ID: 129021 + Group: "AG_BATTLE" + Name: "Glastheim Challenge Mode" # Complete 100 times? + Reward: + TitleID: 1045 + Score: 10 - ID: 130000 # Talk to Prince NPC (npc/quests/quests_morocc.txt L5288) Group: "AG_CHATTING" Name: "Socialite debut" @@ -1983,6 +1989,216 @@ Body: #Reward: # ItemID: 23585 Score: 10 + - ID: 200033 + Group: "AG_GOAL_LEVEL" + Name: "With a new mind!(1)" + Condition: " BaseLevel == 170 && (Class >= JOB_RUNE_KNIGHT && Class <= JOB_GUILLOTINE_CROSS_T) " + #Reward: + # ItemID: 6959 + Score: 50 + - ID: 200034 + Group: "AG_GOAL_LEVEL" + Name: "With a new mind!(2)" + Condition: " BaseLevel == 170 && (Class >= JOB_ROYAL_GUARD && Class <= JOB_SHADOW_CHASER_T) " + #Reward: + # ItemID: 6959 + Score: 50 + - ID: 220000 + Group: "AG_CHATTING_CREATE" + Name: "Community begin" + Score: 10 + - ID: 220001 + Group: "AG_CHATTING_DYING" + Name: "A mouth only moment" + Score: 10 + - ID: 220002 + Group: "AG_CHATTING_COUNT" + Name: "Admiring the chatter" + Condition: " ARG0 == 20 " + Score: 10 + - ID: 220003 + Group: "AG_ADD_FRIEND" + Name: "My friend's friend~" + Condition: " ARG0 >= 1 " + Score: 10 + - ID: 220004 + Group: "AG_ADD_FRIEND" + Name: "A competition of popularity" + Condition: " ARG0 >= 10 " + Score: 10 + - ID: 220005 + Group: "AG_PARTY" + Name: "Let's Party~" + Score: 10 + - ID: 220006 + Group: "AG_MARRY" + Name: "Married with who..?" + Reward: + TitleID: 1022 + Score: 20 + - ID: 220007 + Group: "AG_BABY" + Name: "Can you grow?" + Condition: " ARG0 == 1 " + Reward: + TitleID: 1032 + Score: 20 + - ID: 220008 + Group: "AG_BABY" + Name: "Being a parent" + Condition: " ARG0 == 2 " + Reward: + TitleID: 1033 + Score: 20 + - ID: 220009 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (1)" + Condition: " ARG0 >= 10000 " + Target: + - Id: 0 + Count: 10000 + Score: 10 + - ID: 220010 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (2)" + Condition: " ARG0 >= 100000 " + Target: + - Id: 0 + Count: 100000 + Score: 15 + - ID: 220011 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (3)" + Condition: " ARG0 >= 500000 " + Target: + - Id: 0 + Count: 500000 + Score: 20 + - ID: 220012 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (4)" + Condition: " ARG0 >= 1000000 " + Target: + - Id: 0 + Count: 1000000 + Score: 30 + - ID: 220013 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (5)" + Condition: " ARG0 >= 5000000 " + Target: + - Id: 0 + Count: 5000000 + Score: 50 + - ID: 220014 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (1)" + Condition: " ARG0 == 1 && ARG1 >= 7 " + Score: 10 + - ID: 220015 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (2)" + Condition: " ARG0 == 1 && ARG1 >= 12 " + Score: 15 + - ID: 220016 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (3)" + Condition: " ARG0 == 2 && ARG1 >= 7 " + Score: 10 + - ID: 220017 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (4)" + Condition: " ARG0 == 2 && ARG1 >= 12 " + Score: 15 + - ID: 220018 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (5)" + Condition: " ARG0 == 3 && ARG1 >= 7 " + Score: 15 + - ID: 220019 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (6)" + Condition: " ARG0 == 3 && ARG1 >= 12 " + Score: 20 + - ID: 220020 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (7)" + Condition: " ARG0 == 4 && ARG1 >= 7 " + Score: 20 + - ID: 220021 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (8)" + Condition: " ARG0 == 4 && ARG1 >= 12 " + Score: 30 + - ID: 220022 + Group: "AG_ENCHANT_FAIL" + Name: "Human's greed has no ending.." + Score: 10 + - ID: 220023 + Group: "AG_GET_ITEM" + Name: "I found it! (1)" + Condition: " ARG0 >= 100 " + Score: 10 + - ID: 220024 + Group: "AG_GET_ITEM" + Name: "I found it! (2)" + Condition: " ARG0 >= 1000 " + Score: 10 + - ID: 220025 + Group: "AG_GET_ITEM" + Name: "I found it! (3)" + Condition: " ARG0 >= 5000 " + Score: 15 + - ID: 220026 + Group: "AG_GET_ITEM" + Name: "I found it! (4)" + Condition: " ARG0 >= 10000 " + Score: 15 + - ID: 220027 + Group: "AG_GET_ITEM" + Name: "I found it! (5)" + Condition: " ARG0 >= 50000 " + Score: 20 + - ID: 220028 + Group: "AG_GET_ITEM" + Name: "I found it! (6)" + Condition: " ARG0 >= 100000 " + Score: 20 + - ID: 220029 + Group: "AG_GET_ITEM" + Name: "I found it! (7)" + Condition: " ARG0 >= 150000 " + Score: 30 + - ID: 220030 + Group: "AG_GET_ZENY" + Name: "Rich King (1)" + Condition: " ARG0 >= 10000 " + Score: 10 + - ID: 220031 + Group: "AG_GET_ZENY" + Name: "Rich King (2)" + Condition: " ARG0 >= 100000 " + Score: 15 + - ID: 220032 + Group: "AG_GET_ZENY" + Name: "Rich King (3)" + Condition: " ARG0 >= 1000000 " + Score: 20 + - ID: 220033 + Group: "AG_GET_ZENY" + Name: "Rich King (4)" + Condition: " ARG0 >= 10000000 " + Score: 25 + - ID: 220034 + Group: "AG_GET_ZENY" + Name: "Rich King (5)" + Condition: " ARG0 >= 100000000 " + Score: 30 + - ID: 220035 + Group: "AG_GET_ZENY" + Name: "Rich King (6)" + Condition: " ARG0 >= 1000000000 " + Score: 40 - ID: 230100 Group: "AG_TAMING" Name: "Poring is Love" @@ -2240,202 +2456,6 @@ Body: MobID: 1505 Count: 1 Score: 10 - - ID: 220000 - Group: "AG_CHATTING_CREATE" - Name: "Community begin" - Score: 10 - - ID: 220001 - Group: "AG_CHATTING_DYING" - Name: "A mouth only moment" - Score: 10 - - ID: 220002 - Group: "AG_CHATTING_COUNT" - Name: "Admiring the chatter" - Condition: " ARG0 == 20 " - Score: 10 - - ID: 220003 - Group: "AG_ADD_FRIEND" - Name: "My friend's friend~" - Condition: " ARG0 >= 1 " - Score: 10 - - ID: 220004 - Group: "AG_ADD_FRIEND" - Name: "A competition of popularity" - Condition: " ARG0 >= 10 " - Score: 10 - - ID: 220005 - Group: "AG_PARTY" - Name: "Let's Party~" - Score: 10 - - ID: 220006 - Group: "AG_MARRY" - Name: "Married with who..?" - Reward: - TitleID: 1022 - Score: 20 - - ID: 220007 - Group: "AG_BABY" - Name: "Can you grow?" - Condition: " ARG0 == 1 " - Reward: - TitleID: 1032 - Score: 20 - - ID: 220008 - Group: "AG_BABY" - Name: "Being a parent" - Condition: " ARG0 == 2 " - Reward: - TitleID: 1033 - Score: 20 - - ID: 220009 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (1)" - Condition: " ARG0 >= 10000 " - Target: - - Id: 0 - Count: 10000 - Score: 10 - - ID: 220010 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (2)" - Condition: " ARG0 >= 100000 " - Target: - - Id: 0 - Count: 100000 - Score: 15 - - ID: 220011 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (3)" - Condition: " ARG0 >= 500000 " - Target: - - Id: 0 - Count: 500000 - Score: 20 - - ID: 220012 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (4)" - Condition: " ARG0 >= 1000000 " - Target: - - Id: 0 - Count: 1000000 - Score: 30 - - ID: 220013 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (5)" - Condition: " ARG0 >= 5000000 " - Target: - - Id: 0 - Count: 5000000 - Score: 50 - - ID: 220014 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (1)" - Condition: " ARG0 == 1 && ARG1 >= 7 " - Score: 10 - - ID: 220015 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (2)" - Condition: " ARG0 == 1 && ARG1 >= 12 " - Score: 15 - - ID: 220016 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (3)" - Condition: " ARG0 == 2 && ARG1 >= 7 " - Score: 10 - - ID: 220017 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (4)" - Condition: " ARG0 == 2 && ARG1 >= 12 " - Score: 15 - - ID: 220018 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (5)" - Condition: " ARG0 == 3 && ARG1 >= 7 " - Score: 15 - - ID: 220019 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (6)" - Condition: " ARG0 == 3 && ARG1 >= 12 " - Score: 20 - - ID: 220020 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (7)" - Condition: " ARG0 == 4 && ARG1 >= 7 " - Score: 20 - - ID: 220021 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (8)" - Condition: " ARG0 == 4 && ARG1 >= 12 " - Score: 30 - - ID: 220022 - Group: "AG_ENCHANT_FAIL" - Name: "Human's greed has no ending.." - Score: 10 - - ID: 220023 - Group: "AG_GET_ITEM" - Name: "I found it! (1)" - Condition: " ARG0 >= 100 " - Score: 10 - - ID: 220024 - Group: "AG_GET_ITEM" - Name: "I found it! (2)" - Condition: " ARG0 >= 1000 " - Score: 10 - - ID: 220025 - Group: "AG_GET_ITEM" - Name: "I found it! (3)" - Condition: " ARG0 >= 5000 " - Score: 15 - - ID: 220026 - Group: "AG_GET_ITEM" - Name: "I found it! (4)" - Condition: " ARG0 >= 10000 " - Score: 15 - - ID: 220027 - Group: "AG_GET_ITEM" - Name: "I found it! (5)" - Condition: " ARG0 >= 50000 " - Score: 20 - - ID: 220028 - Group: "AG_GET_ITEM" - Name: "I found it! (6)" - Condition: " ARG0 >= 100000 " - Score: 20 - - ID: 220029 - Group: "AG_GET_ITEM" - Name: "I found it! (7)" - Condition: " ARG0 >= 150000 " - Score: 30 - - ID: 220030 - Group: "AG_GET_ZENY" - Name: "Rich King (1)" - Condition: " ARG0 >= 10000 " - Score: 10 - - ID: 220031 - Group: "AG_GET_ZENY" - Name: "Rich King (2)" - Condition: " ARG0 >= 100000 " - Score: 15 - - ID: 220032 - Group: "AG_GET_ZENY" - Name: "Rich King (3)" - Condition: " ARG0 >= 1000000 " - Score: 20 - - ID: 220033 - Group: "AG_GET_ZENY" - Name: "Rich King (4)" - Condition: " ARG0 >= 10000000 " - Score: 25 - - ID: 220034 - Group: "AG_GET_ZENY" - Name: "Rich King (5)" - Condition: " ARG0 >= 100000000 " - Score: 30 - - ID: 220035 - Group: "AG_GET_ZENY" - Name: "Rich King (6)" - Condition: " ARG0 >= 1000000000 " - Score: 40 - ID: 230200 Group: "AG_BATTLE" Name: "Poring seeker" @@ -2500,11 +2520,13 @@ Body: Score: 20 - ID: 240000 Group: "AG_GOAL_LEVEL" - Name: "Complete challenges after first introduction" + Name: "First Login after the introduction of Achievement Tasks" Score: 10 + Condition: " true " - ID: 240001 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 1" + Condition: " AchievementLevel >= 1 " Reward: ItemID: 644 Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; " @@ -2512,6 +2534,7 @@ Body: - ID: 240002 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 2" + Condition: " AchievementLevel >= 2 " Dependent: - Id: 240001 Reward: @@ -2521,6 +2544,7 @@ Body: - ID: 240003 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 3" + Condition: " AchievementLevel >= 3 " Dependent: - Id: 240002 Reward: @@ -2530,6 +2554,7 @@ Body: - ID: 240004 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 4" + Condition: " AchievementLevel >= 4 " Dependent: - Id: 240003 Reward: @@ -2539,6 +2564,7 @@ Body: - ID: 240005 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 5" + Condition: " AchievementLevel >= 5 " Dependent: - Id: 240004 Reward: @@ -2548,6 +2574,7 @@ Body: - ID: 240006 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 6" + Condition: " AchievementLevel >= 6 " Dependent: - Id: 240005 Reward: @@ -2557,6 +2584,7 @@ Body: - ID: 240007 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 7" + Condition: " AchievementLevel >= 7 " Dependent: - Id: 240006 Reward: @@ -2566,6 +2594,7 @@ Body: - ID: 240008 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 8" + Condition: " AchievementLevel >= 8 " Dependent: - Id: 240007 Reward: @@ -2575,6 +2604,7 @@ Body: - ID: 240009 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 9" + Condition: " AchievementLevel >= 9 " Dependent: - Id: 240008 Reward: @@ -2584,6 +2614,7 @@ Body: - ID: 240010 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 10" + Condition: " AchievementLevel >= 10 " Dependent: - Id: 240009 Reward: @@ -2594,6 +2625,7 @@ Body: - ID: 240011 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 11" + Condition: " AchievementLevel >= 11 " Dependent: - Id: 240010 Reward: @@ -2603,6 +2635,7 @@ Body: - ID: 240012 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 12" + Condition: " AchievementLevel >= 12 " Dependent: - Id: 240011 Reward: @@ -2612,6 +2645,7 @@ Body: - ID: 240013 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 13" + Condition: " AchievementLevel >= 13 " Dependent: - Id: 240012 Reward: @@ -2621,6 +2655,7 @@ Body: - ID: 240014 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 14" + Condition: " AchievementLevel >= 14 " Dependent: - Id: 240013 Reward: @@ -2630,6 +2665,7 @@ Body: - ID: 240015 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 15" + Condition: " AchievementLevel >= 15 " Dependent: - Id: 240014 Reward: @@ -2639,6 +2675,7 @@ Body: - ID: 240016 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 16" + Condition: " AchievementLevel >= 16 " Dependent: - Id: 240015 Reward: @@ -2648,6 +2685,7 @@ Body: - ID: 240017 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 17" + Condition: " AchievementLevel >= 17 " Dependent: - Id: 240016 Reward: @@ -2657,6 +2695,7 @@ Body: - ID: 240018 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 18" + Condition: " AchievementLevel >= 18 " Dependent: - Id: 240017 Reward: @@ -2666,6 +2705,7 @@ Body: - ID: 240019 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 19" + Condition: " AchievementLevel >= 19 " Dependent: - Id: 240018 Reward: @@ -2675,6 +2715,7 @@ Body: - ID: 240020 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 20" + Condition: " AchievementLevel >= 20 " Dependent: - Id: 240019 Reward: diff --git a/db/pre-re/achievement_level_db.yml b/db/pre-re/achievement_level_db.yml new file mode 100644 index 00000000000..bd22552418f --- /dev/null +++ b/db/pre-re/achievement_level_db.yml @@ -0,0 +1,74 @@ +# This file is a part of rAthena. +# Copyright(C) 2019 rAthena Development Team +# https://rathena.org - https://github.com/rathena +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +########################################################################### +# Pre-Renewal Achievement Level Database +########################################################################### +# +# Achievement Level Settings +# +########################################################################### +# Level - Achievement Level +########################################################################### +# Points - Required total scoring points to reach this level. +########################################################################### + +Header: + Type: ACHIEVEMENT_LEVEL_DB + Version: 1 + +Body: + - Level: 1 + Points: 18 + - Level: 2 + Points: 49 + - Level: 3 + Points: 98 + - Level: 4 + Points: 171 + - Level: 5 + Points: 306 + - Level: 6 + Points: 410 + - Level: 7 + Points: 550 + - Level: 8 + Points: 728 + - Level: 9 + Points: 942 + - Level: 10 + Points: 1247 + - Level: 11 + Points: 1504 + - Level: 12 + Points: 1804 + - Level: 13 + Points: 2152 + - Level: 14 + Points: 2550 + - Level: 15 + Points: 3070 + - Level: 16 + Points: 3522 + - Level: 17 + Points: 4030 + - Level: 18 + Points: 4592 + - Level: 19 + Points: 5210 + - Level: 20 + Points: 5980 diff --git a/db/pre-re/skill_cast_db.txt b/db/pre-re/skill_cast_db.txt index ced7d89c665..1a5d02821bd 100644 --- a/db/pre-re/skill_cast_db.txt +++ b/db/pre-re/skill_cast_db.txt @@ -20,7 +20,7 @@ //-- SM_PROVOKE 6,0,0,0,30000,0,1000 //-- SM_MAGNUM -7,0,0,0,2000,10000,2000 +7,0,2000,0,0,10000,0 //-- SM_ENDURE 8,0,0,0,10000:13000:16000:19000:22000:25000:28000:31000:34000:37000,10000,10000 //========================================== diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt index ea402c6a710..f007e9a8a58 100644 --- a/db/pre-re/skill_db.txt +++ b/db/pre-re/skill_db.txt @@ -16,6 +16,7 @@ // 0x20 - Skill ignores target's defense (misc type always ignores) // 0x40 - Skill ignores target's flee (magic type always ignores) // 0x80 - Skill ignores target's def cards +// 0x100 - Skill can critical // 07 splash/effect range // -1 - for screen-wide // 0 - no splash @@ -160,7 +161,7 @@ 58,-4,6,1,-1,0x2,0,10,1,no,0,0x40000,0,weapon,6,0x0, KN_SPEARSTAB,Spear Stab 59,3:5:7:9:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, KN_SPEARBOOMERANG,Spear Boomerang 60,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, KN_TWOHANDQUICKEN,Twohand Quicken -61,0,6,4,-1,0x20,0,5,1,no,0,0,0,weapon,0,0x0, KN_AUTOCOUNTER,Counter Attack +61,0,6,4,-1,0x120,0,5,1,no,0,0,0,weapon,0,0x0, KN_AUTOCOUNTER,Counter Attack 62,-2,6,1,-1,0x2,1,10,1,no,0,0x40000,0,weapon,1,0x0, KN_BOWLINGBASH,Bowling Bash 63,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0, KN_RIDING,Peco Peco Riding 64,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, KN_CAVALIERMASTERY,Cavalier Mastery @@ -558,7 +559,7 @@ // Sniper 380,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, SN_SIGHT,Falcon Eyes 381,9,8,1,0,0x40,0,5,1,yes,0,0,0,misc,0,0x0, SN_FALCONASSAULT,Falcon Assault -382,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike +382,9,8,1,-1,0x100,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike 383,0,6,4,0,0x3,-1,10,1,yes,0,0,0,weapon,0,0x0, SN_WINDWALK,Wind Walker //**** @@ -741,7 +742,7 @@ 508,-9,6,1,-1,0x1,0,1,1,no,0,0,0,weapon,0,0x0, GS_CRACKER,Cracker 509,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GS_SINGLEACTION,Single Action 510,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GS_SNAKEEYE,Snake Eye -511,-9,8,0,-1,0,0,10,2,no,0,0,0,weapon,0,0x0, GS_CHAINACTION,Chain Action +511,-9,8,0,-1,0x100,0,10,2,no,0,0,0,weapon,0,0x0, GS_CHAINACTION,Chain Action 512,-9,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x0, GS_TRACKING,Tracking 513,-9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GS_DISARM,Disarm 514,-9,6,1,-1,0x20,0,5,1,no,0,0,0,weapon,0,0x100, GS_PIERCINGSHOT,Piercing Shot @@ -763,7 +764,7 @@ 527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,3,0x0, NJ_TATAMIGAESHI,Improvised Defense 528,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_KASUMIKIRI,Vanishing Slash 529,7:9:11:13:15,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0x4, NJ_SHADOWJUMP,Shadow Leap -530,7:9:11:13:15,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x204, NJ_KIRIKAGE,Shadow Slash +530,7:9:11:13:15,6,1,-1,0x100,0,5,1,no,0,0,0,weapon,0,0x204, NJ_KIRIKAGE,Shadow Slash 531,0,6,4,0,0x1,0,5,1,no,0,0,0,none,7,0x0, NJ_UTSUSEMI,Cicada Skin Sheeding 532,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, NJ_BUNSINJYUTSU,Mirror Image 533,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NJ_NINPOU,Spirit of the Blade @@ -1469,7 +1470,7 @@ 8212,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800, MA_FREEZINGTRAP,Freezing_Trap 8213,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0, MA_REMOVETRAP,Remove_Trap 8214,-9,6,1,-1,0x2,0,1,1,no,0,0x1,0,weapon,6,0x80, MA_CHARGEARROW,Arrow_Repel -8215,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike +8215,9,8,1,-1,0x100,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike 8216,-2,8,1,-1,0,0,10,3,no,0,0,0,weapon,0,0x0, ML_PIERCE,Pierce 8217,-2,6,1,-1,0x1,2,10,1,no,0,0,5,weapon,2,0x20000, ML_BRANDISH,Brandish_Spear 8218,5,8,1,-1,0x20,0,5,5,no,0,0x40000,0,weapon,0,0x20000, ML_SPIRALPIERCE,Spiral_Pierce diff --git a/db/re/achievement_db.yml b/db/re/achievement_db.yml index a6da4f16cfb..c10e21e1ed4 100644 --- a/db/re/achievement_db.yml +++ b/db/re/achievement_db.yml @@ -1726,6 +1726,12 @@ Body: Reward: ItemID: 617 Score: 50 + - ID: 129021 + Group: "AG_BATTLE" + Name: "Glastheim Challenge Mode" # Complete 100 times? + Reward: + TitleID: 1045 + Score: 10 - ID: 130000 # Talk to Prince NPC (npc/quests/quests_morocc.txt L5288) Group: "AG_CHATTING" Name: "Socialite debut" @@ -1983,6 +1989,216 @@ Body: #Reward: # ItemID: 23585 Score: 10 + - ID: 200033 + Group: "AG_GOAL_LEVEL" + Name: "With a new mind!(1)" + Condition: " BaseLevel == 170 && (Class >= JOB_RUNE_KNIGHT && Class <= JOB_GUILLOTINE_CROSS_T) " + #Reward: + # ItemID: 6959 + Score: 50 + - ID: 200034 + Group: "AG_GOAL_LEVEL" + Name: "With a new mind!(2)" + Condition: " BaseLevel == 170 && (Class >= JOB_ROYAL_GUARD && Class <= JOB_SHADOW_CHASER_T) " + #Reward: + # ItemID: 6959 + Score: 50 + - ID: 220000 + Group: "AG_CHATTING_CREATE" + Name: "Community begin" + Score: 10 + - ID: 220001 + Group: "AG_CHATTING_DYING" + Name: "A mouth only moment" + Score: 10 + - ID: 220002 + Group: "AG_CHATTING_COUNT" + Name: "Admiring the chatter" + Condition: " ARG0 == 20 " + Score: 10 + - ID: 220003 + Group: "AG_ADD_FRIEND" + Name: "My friend's friend~" + Condition: " ARG0 >= 1 " + Score: 10 + - ID: 220004 + Group: "AG_ADD_FRIEND" + Name: "A competition of popularity" + Condition: " ARG0 >= 10 " + Score: 10 + - ID: 220005 + Group: "AG_PARTY" + Name: "Let's Party~" + Score: 10 + - ID: 220006 + Group: "AG_MARRY" + Name: "Married with who..?" + Reward: + TitleID: 1022 + Score: 20 + - ID: 220007 + Group: "AG_BABY" + Name: "Can you grow?" + Condition: " ARG0 == 1 " + Reward: + TitleID: 1032 + Score: 20 + - ID: 220008 + Group: "AG_BABY" + Name: "Being a parent" + Condition: " ARG0 == 2 " + Reward: + TitleID: 1033 + Score: 20 + - ID: 220009 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (1)" + Condition: " ARG0 >= 10000 " + Target: + - Id: 0 + Count: 10000 + Score: 10 + - ID: 220010 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (2)" + Condition: " ARG0 >= 100000 " + Target: + - Id: 0 + Count: 100000 + Score: 15 + - ID: 220011 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (3)" + Condition: " ARG0 >= 500000 " + Target: + - Id: 0 + Count: 500000 + Score: 20 + - ID: 220012 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (4)" + Condition: " ARG0 >= 1000000 " + Target: + - Id: 0 + Count: 1000000 + Score: 30 + - ID: 220013 + Group: "AG_SPEND_ZENY" + Name: "Activating the market economy (5)" + Condition: " ARG0 >= 5000000 " + Target: + - Id: 0 + Count: 5000000 + Score: 50 + - ID: 220014 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (1)" + Condition: " ARG0 == 1 && ARG1 >= 7 " + Score: 10 + - ID: 220015 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (2)" + Condition: " ARG0 == 1 && ARG1 >= 12 " + Score: 15 + - ID: 220016 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (3)" + Condition: " ARG0 == 2 && ARG1 >= 7 " + Score: 10 + - ID: 220017 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (4)" + Condition: " ARG0 == 2 && ARG1 >= 12 " + Score: 15 + - ID: 220018 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (5)" + Condition: " ARG0 == 3 && ARG1 >= 7 " + Score: 15 + - ID: 220019 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (6)" + Condition: " ARG0 == 3 && ARG1 >= 12 " + Score: 20 + - ID: 220020 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (7)" + Condition: " ARG0 == 4 && ARG1 >= 7 " + Score: 20 + - ID: 220021 + Group: "AG_ENCHANT_SUCCESS" + Name: "I can't quit from refining! (8)" + Condition: " ARG0 == 4 && ARG1 >= 12 " + Score: 30 + - ID: 220022 + Group: "AG_ENCHANT_FAIL" + Name: "Human's greed has no ending.." + Score: 10 + - ID: 220023 + Group: "AG_GET_ITEM" + Name: "I found it! (1)" + Condition: " ARG0 >= 100 " + Score: 10 + - ID: 220024 + Group: "AG_GET_ITEM" + Name: "I found it! (2)" + Condition: " ARG0 >= 1000 " + Score: 10 + - ID: 220025 + Group: "AG_GET_ITEM" + Name: "I found it! (3)" + Condition: " ARG0 >= 5000 " + Score: 15 + - ID: 220026 + Group: "AG_GET_ITEM" + Name: "I found it! (4)" + Condition: " ARG0 >= 10000 " + Score: 15 + - ID: 220027 + Group: "AG_GET_ITEM" + Name: "I found it! (5)" + Condition: " ARG0 >= 50000 " + Score: 20 + - ID: 220028 + Group: "AG_GET_ITEM" + Name: "I found it! (6)" + Condition: " ARG0 >= 100000 " + Score: 20 + - ID: 220029 + Group: "AG_GET_ITEM" + Name: "I found it! (7)" + Condition: " ARG0 >= 150000 " + Score: 30 + - ID: 220030 + Group: "AG_GET_ZENY" + Name: "Rich King (1)" + Condition: " ARG0 >= 10000 " + Score: 10 + - ID: 220031 + Group: "AG_GET_ZENY" + Name: "Rich King (2)" + Condition: " ARG0 >= 100000 " + Score: 15 + - ID: 220032 + Group: "AG_GET_ZENY" + Name: "Rich King (3)" + Condition: " ARG0 >= 1000000 " + Score: 20 + - ID: 220033 + Group: "AG_GET_ZENY" + Name: "Rich King (4)" + Condition: " ARG0 >= 10000000 " + Score: 25 + - ID: 220034 + Group: "AG_GET_ZENY" + Name: "Rich King (5)" + Condition: " ARG0 >= 100000000 " + Score: 30 + - ID: 220035 + Group: "AG_GET_ZENY" + Name: "Rich King (6)" + Condition: " ARG0 >= 1000000000 " + Score: 40 - ID: 230100 Group: "AG_TAMING" Name: "Poring is Love" @@ -2240,202 +2456,6 @@ Body: MobID: 1505 Count: 1 Score: 10 - - ID: 220000 - Group: "AG_CHATTING_CREATE" - Name: "Community begin" - Score: 10 - - ID: 220001 - Group: "AG_CHATTING_DYING" - Name: "A mouth only moment" - Score: 10 - - ID: 220002 - Group: "AG_CHATTING_COUNT" - Name: "Admiring the chatter" - Condition: " ARG0 == 20 " - Score: 10 - - ID: 220003 - Group: "AG_ADD_FRIEND" - Name: "My friend's friend~" - Condition: " ARG0 >= 1 " - Score: 10 - - ID: 220004 - Group: "AG_ADD_FRIEND" - Name: "A competition of popularity" - Condition: " ARG0 >= 10 " - Score: 10 - - ID: 220005 - Group: "AG_PARTY" - Name: "Let's Party~" - Score: 10 - - ID: 220006 - Group: "AG_MARRY" - Name: "Married with who..?" - Reward: - TitleID: 1022 - Score: 20 - - ID: 220007 - Group: "AG_BABY" - Name: "Can you grow?" - Condition: " ARG0 == 1 " - Reward: - TitleID: 1032 - Score: 20 - - ID: 220008 - Group: "AG_BABY" - Name: "Being a parent" - Condition: " ARG0 == 2 " - Reward: - TitleID: 1033 - Score: 20 - - ID: 220009 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (1)" - Condition: " ARG0 >= 10000 " - Target: - - Id: 0 - Count: 10000 - Score: 10 - - ID: 220010 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (2)" - Condition: " ARG0 >= 100000 " - Target: - - Id: 0 - Count: 100000 - Score: 15 - - ID: 220011 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (3)" - Condition: " ARG0 >= 500000 " - Target: - - Id: 0 - Count: 500000 - Score: 20 - - ID: 220012 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (4)" - Condition: " ARG0 >= 1000000 " - Target: - - Id: 0 - Count: 1000000 - Score: 30 - - ID: 220013 - Group: "AG_SPEND_ZENY" - Name: "Activating the market economy (5)" - Condition: " ARG0 >= 5000000 " - Target: - - Id: 0 - Count: 5000000 - Score: 50 - - ID: 220014 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (1)" - Condition: " ARG0 == 1 && ARG1 >= 7 " - Score: 10 - - ID: 220015 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (2)" - Condition: " ARG0 == 1 && ARG1 >= 12 " - Score: 15 - - ID: 220016 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (3)" - Condition: " ARG0 == 2 && ARG1 >= 7 " - Score: 10 - - ID: 220017 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (4)" - Condition: " ARG0 == 2 && ARG1 >= 12 " - Score: 15 - - ID: 220018 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (5)" - Condition: " ARG0 == 3 && ARG1 >= 7 " - Score: 15 - - ID: 220019 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (6)" - Condition: " ARG0 == 3 && ARG1 >= 12 " - Score: 20 - - ID: 220020 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (7)" - Condition: " ARG0 == 4 && ARG1 >= 7 " - Score: 20 - - ID: 220021 - Group: "AG_ENCHANT_SUCCESS" - Name: "I can't quit from refining! (8)" - Condition: " ARG0 == 4 && ARG1 >= 12 " - Score: 30 - - ID: 220022 - Group: "AG_ENCHANT_FAIL" - Name: "Human's greed has no ending.." - Score: 10 - - ID: 220023 - Group: "AG_GET_ITEM" - Name: "I found it! (1)" - Condition: " ARG0 >= 100 " - Score: 10 - - ID: 220024 - Group: "AG_GET_ITEM" - Name: "I found it! (2)" - Condition: " ARG0 >= 1000 " - Score: 10 - - ID: 220025 - Group: "AG_GET_ITEM" - Name: "I found it! (3)" - Condition: " ARG0 >= 5000 " - Score: 15 - - ID: 220026 - Group: "AG_GET_ITEM" - Name: "I found it! (4)" - Condition: " ARG0 >= 10000 " - Score: 15 - - ID: 220027 - Group: "AG_GET_ITEM" - Name: "I found it! (5)" - Condition: " ARG0 >= 50000 " - Score: 20 - - ID: 220028 - Group: "AG_GET_ITEM" - Name: "I found it! (6)" - Condition: " ARG0 >= 100000 " - Score: 20 - - ID: 220029 - Group: "AG_GET_ITEM" - Name: "I found it! (7)" - Condition: " ARG0 >= 150000 " - Score: 30 - - ID: 220030 - Group: "AG_GET_ZENY" - Name: "Rich King (1)" - Condition: " ARG0 >= 10000 " - Score: 10 - - ID: 220031 - Group: "AG_GET_ZENY" - Name: "Rich King (2)" - Condition: " ARG0 >= 100000 " - Score: 15 - - ID: 220032 - Group: "AG_GET_ZENY" - Name: "Rich King (3)" - Condition: " ARG0 >= 1000000 " - Score: 20 - - ID: 220033 - Group: "AG_GET_ZENY" - Name: "Rich King (4)" - Condition: " ARG0 >= 10000000 " - Score: 25 - - ID: 220034 - Group: "AG_GET_ZENY" - Name: "Rich King (5)" - Condition: " ARG0 >= 100000000 " - Score: 30 - - ID: 220035 - Group: "AG_GET_ZENY" - Name: "Rich King (6)" - Condition: " ARG0 >= 1000000000 " - Score: 40 - ID: 230200 Group: "AG_BATTLE" Name: "Poring seeker" @@ -2500,11 +2520,13 @@ Body: Score: 20 - ID: 240000 Group: "AG_GOAL_LEVEL" - Name: "Complete challenges after first introduction" + Name: "First Login after the introduction of Achievement Tasks" Score: 10 + Condition: " true " - ID: 240001 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 1" + Condition: " AchievementLevel >= 1 " Reward: ItemID: 644 Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; " @@ -2512,6 +2534,7 @@ Body: - ID: 240002 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 2" + Condition: " AchievementLevel >= 2 " Dependent: - Id: 240001 Reward: @@ -2521,6 +2544,7 @@ Body: - ID: 240003 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 3" + Condition: " AchievementLevel >= 3 " Dependent: - Id: 240002 Reward: @@ -2530,6 +2554,7 @@ Body: - ID: 240004 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 4" + Condition: " AchievementLevel >= 4 " Dependent: - Id: 240003 Reward: @@ -2539,6 +2564,7 @@ Body: - ID: 240005 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 5" + Condition: " AchievementLevel >= 5 " Dependent: - Id: 240004 Reward: @@ -2548,6 +2574,7 @@ Body: - ID: 240006 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 6" + Condition: " AchievementLevel >= 6 " Dependent: - Id: 240005 Reward: @@ -2557,6 +2584,7 @@ Body: - ID: 240007 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 7" + Condition: " AchievementLevel >= 7 " Dependent: - Id: 240006 Reward: @@ -2566,6 +2594,7 @@ Body: - ID: 240008 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 8" + Condition: " AchievementLevel >= 8 " Dependent: - Id: 240007 Reward: @@ -2575,6 +2604,7 @@ Body: - ID: 240009 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 9" + Condition: " AchievementLevel >= 9 " Dependent: - Id: 240008 Reward: @@ -2584,6 +2614,7 @@ Body: - ID: 240010 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 10" + Condition: " AchievementLevel >= 10 " Dependent: - Id: 240009 Reward: @@ -2594,6 +2625,7 @@ Body: - ID: 240011 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 11" + Condition: " AchievementLevel >= 11 " Dependent: - Id: 240010 Reward: @@ -2603,6 +2635,7 @@ Body: - ID: 240012 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 12" + Condition: " AchievementLevel >= 12 " Dependent: - Id: 240011 Reward: @@ -2612,6 +2645,7 @@ Body: - ID: 240013 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 13" + Condition: " AchievementLevel >= 13 " Dependent: - Id: 240012 Reward: @@ -2621,6 +2655,7 @@ Body: - ID: 240014 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 14" + Condition: " AchievementLevel >= 14 " Dependent: - Id: 240013 Reward: @@ -2630,6 +2665,7 @@ Body: - ID: 240015 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 15" + Condition: " AchievementLevel >= 15 " Dependent: - Id: 240014 Reward: @@ -2639,6 +2675,7 @@ Body: - ID: 240016 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 16" + Condition: " AchievementLevel >= 16 " Dependent: - Id: 240015 Reward: @@ -2648,6 +2685,7 @@ Body: - ID: 240017 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 17" + Condition: " AchievementLevel >= 17 " Dependent: - Id: 240016 Reward: @@ -2657,6 +2695,7 @@ Body: - ID: 240018 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 18" + Condition: " AchievementLevel >= 18 " Dependent: - Id: 240017 Reward: @@ -2666,6 +2705,7 @@ Body: - ID: 240019 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 19" + Condition: " AchievementLevel >= 19 " Dependent: - Id: 240018 Reward: @@ -2675,6 +2715,7 @@ Body: - ID: 240020 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 20" + Condition: " AchievementLevel >= 20 " Dependent: - Id: 240019 Reward: diff --git a/db/re/achievement_level_db.yml b/db/re/achievement_level_db.yml new file mode 100644 index 00000000000..4bf89b66e9d --- /dev/null +++ b/db/re/achievement_level_db.yml @@ -0,0 +1,74 @@ +# This file is a part of rAthena. +# Copyright(C) 2019 rAthena Development Team +# https://rathena.org - https://github.com/rathena +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +########################################################################### +# Renewal Achievement Level Database +########################################################################### +# +# Achievement Level Settings +# +########################################################################### +# Level - Achievement Level +########################################################################### +# Points - Required total scoring points to reach this level. +########################################################################### + +Header: + Type: ACHIEVEMENT_LEVEL_DB + Version: 1 + +Body: + - Level: 1 + Points: 18 + - Level: 2 + Points: 49 + - Level: 3 + Points: 98 + - Level: 4 + Points: 171 + - Level: 5 + Points: 306 + - Level: 6 + Points: 410 + - Level: 7 + Points: 550 + - Level: 8 + Points: 728 + - Level: 9 + Points: 942 + - Level: 10 + Points: 1247 + - Level: 11 + Points: 1504 + - Level: 12 + Points: 1804 + - Level: 13 + Points: 2152 + - Level: 14 + Points: 2550 + - Level: 15 + Points: 3070 + - Level: 16 + Points: 3522 + - Level: 17 + Points: 4030 + - Level: 18 + Points: 4592 + - Level: 19 + Points: 5210 + - Level: 20 + Points: 5980 diff --git a/db/re/item_combo_db.txt b/db/re/item_combo_db.txt index bfc914cee03..38035c880f1 100644 --- a/db/re/item_combo_db.txt +++ b/db/re/item_combo_db.txt @@ -43,6 +43,9 @@ 15141:20779:22075,{ .@r = getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)+getequiprefinerycnt(EQI_SHOES); bonus bMaxHP,1000; bonus bHealPower,min(5+.@r,30); bonus bHealPower2,min(5+.@r,30); } 15186:19168,{ bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; } 1535:4361,{ bonus bBreakArmorRate,900; bonus bBreakWeaponRate,900; } +15384:4119,{ bonus2 bResEff,Eff_Freeze,10000; } +15409:18849,{ .@r = getequiprefinerycnt(EQI_ARMOR); .@a = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,20*.@r; bonus bAllStats,.@r; if (.@a>=7) bonus2 bMagicAddClass,Class_Boss,15; if (.@a>=9) bonus2 bMagicAddClass,Class_Boss,15; } +15409:2980,{ bonus bBaseAtk,50; bonus bMatk,50; bonus bAspd,1; bonus5 bAutoSpell,"WL_SOULEXPANSION",1,60,BF_WEAPON,1; bonus5 bAutoSpell,"WL_TELEKINESIS_INTENSE",1,60,BF_MAGIC,0; bonus5 bAutoSpellWhenHit,"AL_HEAL",5,60,BF_WEAPON|BF_MAGIC,0; } 1558:27085,{ bonus bBaseAtk,100; bonus bMatk,100; } 1559:5467,{ bonus bAspd,1; bonus bFlee2,3; } 1564:2186,{ bonus bAspdRate,getequiprefinerycnt(EQI_HAND_R); } @@ -53,13 +56,19 @@ 1580:2186,{ bonus bAspdRate,15; } 1615:18539,{ bonus bMatk,10*getequiprefinerycnt(EQI_HAND_R); bonus bVariableCastrate,-10; } 1616:2515,{ bonus bSpeedRate,25; } -1617:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } } 1618:2509,{ bonus bMaxHP,300; bonus bMatkRate,min(5, getequiprefinerycnt(EQI_HAND_R)-5); bonus2 bSubEle,Ele_Neutral,min(30, getequiprefinerycnt(EQI_GARMENT)*3); } +1618:2509:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatkRate,1; if (.@r >= 5) { bonus bMatkRate,2; if (.@r >= 7) { bonus bMatkRate,2; } } } 1618:2535,{ bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,25; } 1618:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } } +1618:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatk,10*.@r; if (.@r>=10) { bonus bVariableCastrate,-3; bonus2 bSkillAtk,"WL_EARTHSTRAIN",15; bonus2 bSkillAtk,"WL_CHAINLIGHTNING",15; bonus2 bSkillAtk,"WZ_HEAVENDRIVE",70; bonus2 bSkillAtk,"WZ_JUPITEL",70; } if (BaseLevel>=100) { bonus bVariableCastrate,-3; bonus2 bSkillAtk,"WL_EARTHSTRAIN",30; bonus2 bSkillAtk,"WL_CHAINLIGHTNING",30; bonus2 bSkillAtk,"WZ_HEAVENDRIVE",140; bonus2 bSkillAtk,"WZ_JUPITEL",140; } } +1618:20813,{ bonus bMaxHP,300; bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)-5; bonus2 bSubEle,Ele_Neutral,getequiprefinerycnt(EQI_GARMENT)*3; } +1618:20813:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatkRate,1; if (.@r >= 5) { bonus bMatkRate,2; if (.@r >= 7) { bonus bMatkRate,2; } } } 1618:20847,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = min(.@weapon,10); bonus bMaxHP,1000; bonus bMatk,(-50+(20*.@weapon)); bonus bDelayrate,-(3*(.@weapon/3)); bonus2 bSubEle,Ele_Neutral,(min(.@eq,10)/2); } -1619:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } } +1620:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatk,10*.@r; if (.@r>=10) { bonus bVariableCastrate,-3; bonus2 bSkillAtk,"WL_EARTHSTRAIN",15; bonus2 bSkillAtk,"WL_CHAINLIGHTNING",15; bonus2 bSkillAtk,"WZ_HEAVENDRIVE",70; bonus2 bSkillAtk,"WZ_JUPITEL",70; } if (BaseLevel>=100) { bonus bVariableCastrate,-3; bonus2 bSkillAtk,"WL_EARTHSTRAIN",30; bonus2 bSkillAtk,"WL_CHAINLIGHTNING",30; bonus2 bSkillAtk,"WZ_HEAVENDRIVE",140; bonus2 bSkillAtk,"WZ_JUPITEL",140; } } +1620:20813,{ bonus bMaxHP,300; bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)-5; bonus2 bSubEle,Ele_Neutral,getequiprefinerycnt(EQI_GARMENT)*3; } +1620:20813:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatkRate,1; if (.@r >= 5) { bonus bMatkRate,2; if (.@r >= 7) { bonus bMatkRate,2; } } } 1620:2509,{ bonus bMaxHP,300; bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)-5; if(getequiprefinerycnt(EQI_GARMENT) > 10) { bonus2 bSubEle,Ele_Neutral,30; } else { bonus2 bSubEle,Ele_Neutral,getequiprefinerycnt(EQI_GARMENT)*3; } } +1620:2509:19139,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bMatkRate,1; if (.@r >= 5) { bonus bMatkRate,2; if (.@r >= 7) { bonus bMatkRate,2; } } } 1620:2535,{ bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,25; } 1620:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } } 1629:5045,{ bonus bDex,2; bonus bInt,2; bonus bSPrecovRate,5; bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R); } @@ -272,6 +281,7 @@ 2507:15146,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bMaxSPrate,10+.@r; bonus bFlee,10+.@r; } 2507:15163,{ bonus bVariableCastrate,-(2*getequiprefinerycnt(EQI_ARMOR)); bonus bNoCastCancel; } 2509:15146,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bMaxHPrate,10+.@r; bonus bMatkRate,2+.@r; } +2509:22170,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus bMatkRate,10; if (.@r>=7) { bonus2 bSubEle,Ele_Earth,15; bonus2 bSubEle,Ele_Wind,15; } if (.@r>=9) { bonus2 bSubEle,Ele_Earth,15; bonus2 bSubEle,Ele_Wind,15; } } 2518:2648:2649:5126,{ bonus bInt,5; bonus bMdef,11; bonus bMaxSPrate,20; bonus bNoCastCancel; bonus bVariableCastrate,25; } 2519:2650:2651:5127,{ bonus bStr,2; bonus bLuk,9; bonus bCritical,13; bonus bBaseAtk,18; bonus bFlee2,13; } 2519:15147,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,15; bonus2 bIgnoreDefRaceRate,RC_Demon,15; bonus2 bIgnoreDefRaceRate,RC_Undead,15; bonus bLuk,3+.@r; bonus bCritical,10+.@r; } @@ -334,6 +344,16 @@ 2733:2772,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,3; bonus bHealPower,5; } 2733:2773,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,3; bonus bHealPower,5; } 2733:2774,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,3; bonus bHealPower,5; } +27347:27028,{ bonus2 bMagicAddEle,Ele_Earth,8; } +27351:4582,{ bonus bMaxHPrate,5; } +27352:4127,{ bonus bMaxSPrate,10; } +27352:4166,{ bonus2 bAddClass,Class_All,10; } +27354:4133,{ bonus2 bAddClass,Class_All,5; bonus2 bSubEle,Ele_Neutral,10; } +27355:4633,{ bonus bLongAtkRate,5; } +27357:4226,{ bonus bDef,150; bonus bMdef,20; } +27359:27122,{ bonus2 bMagicAddEle,Ele_Water,8; } +27360:4670,{ bonus2 bMagicAddEle,Ele_Fire,8; } +27363:4168,{ bonus2 bMagicAtkEle,Ele_Fire,15; bonus2 bSkillAtk,"WZ_METEOR",15; } 2747:13061,{ bonus bHit,5; bonus bMatk,5; bonus2 bSkillUseSP,"SC_ENERVATION",20; bonus2 bSkillUseSP,"SC_GROOMY",20; } 2751:2888,{ bonus bAspdRate,3; bonus bVariableCastrate,-3; } 2777:2778:5479,{ bonus bMaxHP,10*getequiprefinerycnt(EQI_HEAD_TOP); bonus bMaxSP,2*getequiprefinerycnt(EQI_ACC_L); bonus bNoCastCancel; bonus bCastrate,15; } @@ -344,11 +364,39 @@ 2780:2826:5577,{ autobonus "{ bonus bAspdRate,2; }",50,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bMaxHP,BaseLevel*15; bonus bMaxSP,(BaseLevel*12)/10; bonus2 bAddClass,Class_All,3; } 2782:19156,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r < 4) { .@a = 4; } else { .@a = min(.@r,10); } bonus3 bAutoSpell,"WZ_WATERBALL",.@a,(.@a*10); } 2826:2827:5577,{ autobonus "{ bonus bAspdRate,2; }",50,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bMaxHP,BaseLevel*15; bonus bMaxSP,(BaseLevel*12)/10; bonus2 bAddClass,Class_All,3; } +28513:18848,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); .@a = min(.@r,10); bonus bAllStats,.@a; bonus bFixedCastrate,-50; if (.@r>=7) { bonus2 bMagicAddClass,Class_Boss,20; } } +28513:18849,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bAllStats,.@r; bonus2 bMagicAddClass,Class_Boss,10; bonus bFixedCastrate,-50; if (.@r>=7) { bonus2 bMagicAddClass,Class_Boss,20; bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; } if (.@r>=9) { bonus2 bMagicAddClass,Class_Boss,20; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } } +28513:2980,{ bonus bBaseAtk,50; bonus bMatk,50; bonus bAspd,2; bonus3 bAutoSpell,"SO_EARTHGRAVE",1,20; bonus3 bAutoSpell,"SO_VARETYR_SPEAR",1,20; bonus3 bAutoSpell,"WL_RECOGNIZEDSPELL",1,10; bonus3 bAutoSpell,"WZ_QUAGMIRE",3,50; } +28520:15061,{ .@r = getequiprefinerycnt(EQI_ARMOR); if (.@r >= 7) { .@val = 5000; } else { .@val = 2500; } bonus2 bResEff,Eff_Stun,.@val; bonus2 bResEff,Eff_Silence,.@val; } +28520:15061:18728:20700:2495,{ bonus bFlee2,30; bonus2 bSubEle,Ele_Water,15; bonus2 bResEff,Eff_Freeze,10000; } +28520:18728,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bAllStats,5; if (getequiprefinerycnt(EQI_HEAD_TOP)>=7) { bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bAllStats,5; } } +28520:20700,{ if (getequiprefinerycnt(EQI_GARMENT)>=7) .@val = 2; else .@val = 1; bonus2 bSubEle,Ele_Fire,25*.@val; bonus2 bSubEle,Ele_Water,25*.@val; } +28520:2495,{ if (getequiprefinerycnt(EQI_SHOES)>=7) .@val = 2; else .@val = 1; bonus bMaxHPrate,10*.@val; bonus bMaxSPrate,10*.@val; } +28520:4525,{ bonus bMdef,15; bonus bFlee,100; bonus bMaxHPrate,15; skill "RG_TUNNELDRIVE",1; bonus bIntravision; } +28521:1387,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; if (.@r>=7) { bonus2 bAddClass,Class_Boss,5; bonus2 bSkillAtk,"WS_CARTTERMINATION",5; } if (.@r>=9) { bonus2 bAddClass,Class_Boss,10; bonus2 bSkillAtk,"WS_CARTTERMINATION",10; } } +28521:1490,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; if (.@r>=7) { bonus2 bAddClass,Class_Boss,5; bonus2 bSkillAtk,"LK_SPIRALPIERCE",5; bonus2 bSkillAtk,"RK_SONICWAVE",5; } if (.@r>=9) { bonus2 bAddClass,Class_Boss,10; bonus2 bSkillAtk,"LK_SPIRALPIERCE",10; bonus2 bSkillAtk,"RK_SONICWAVE",10; } } +28521:18122,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bLongAtkRate,2*(readparam(bStr)/10); if (.@r>=7) { bonus2 bAddClass,Class_Boss,5; bonus2 bSkillAtk,"RA_ARROWSTORM",5; bonus2 bSkillAtk,"RA_AIMEDBOLT",5; } if (.@r>=9) { bonus2 bAddClass,Class_Boss,10; bonus2 bSkillAtk,"RA_ARROWSTORM",10; bonus2 bSkillAtk,"RA_AIMEDBOLT",10; } } 2855:5360,{ bonus bCritAtkRate,10; if(getequiprefinerycnt(EQI_HEAD_TOP)>5) bonus bCritical,5; } 2913:2710,{ bonus bBaseAtk,10; } +28910:20800,{ bonus bLongAtkDef,-35; } +28918:2998,{ bonus2 bSubRace,RC_Undead,4; bonus2 bSubRace,RC_Demon,4; bonus2 bSubRace,RC_Demihuman,3; bonus2 bSubRace,RC_Player,3; } +28929:4058,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_DemiHuman,5; if (.@r>=6) bonus2 bExpAddRace,RC_DemiHuman,5; if (.@r>=8) bonus2 bExpAddRace,RC_DemiHuman,5; } +28929:4066,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Brute,5; if (.@r>=6) bonus2 bExpAddRace,RC_Brute,5; if (.@r>=8) bonus2 bExpAddRace,RC_Brute,5; } +28929:4074,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Insect,5; if (.@r>=6) bonus2 bExpAddRace,RC_Insect,5; if (.@r>=8) bonus2 bExpAddRace,RC_Insect,5; } +28929:4083,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Fish,5; if (.@r>=6) bonus2 bExpAddRace,RC_Fish,5; if (.@r>=8) bonus2 bExpAddRace,RC_Fish,5; } +28929:4120,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Dragon,5; if (.@r>=6) bonus2 bExpAddRace,RC_Dragon,5; if (.@r>=8) bonus2 bExpAddRace,RC_Dragon,5; } +28929:4136,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Demon,5; if (.@r>=6) bonus2 bExpAddRace,RC_Demon,5; if (.@r>=8) bonus2 bExpAddRace,RC_Demon,5; } +28929:4138,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Angel,5; if (.@r>=6) bonus2 bExpAddRace,RC_Angel,5; if (.@r>=8) bonus2 bExpAddRace,RC_Angel,5; } +28929:4314,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Formless,5; if (.@r>=6) bonus2 bExpAddRace,RC_Formless,5; if (.@r>=8) bonus2 bExpAddRace,RC_Formless,5; } +28929:4340,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Undead,5; if (.@r>=6) bonus2 bExpAddRace,RC_Undead,5; if (.@r>=8) bonus2 bExpAddRace,RC_Undead,5; } +28929:4515,{ .@r = getequiprefinerycnt(EQI_HAND_L); bonus2 bExpAddRace,RC_Plant,5; if (.@r>=6) bonus2 bExpAddRace,RC_Plant,5; if (.@r>=8) bonus2 bExpAddRace,RC_Plant,5; } 2913:15040,{ bonus bBaseAtk,2*getequiprefinerycnt(EQI_ARMOR); } 2913:2408,{ bonus bBaseAtk,getequiprefinerycnt(EQI_SHOES); } 2913:5104,{ bonus bBaseAtk,10; } +2935:2387,{ bonus bMaxHPrate,3; if (getequiprefinerycnt(EQI_ARMOR)>=7) { bonus bMaxSPrate,2; } } +2935:2387:2440,{ bonus bVariableCastrate,-5; bonus bDelayRate,-5; } +2935:2440,{ bonus bMaxSPrate,3; if (getequiprefinerycnt(EQI_SHOES)>=7) { bonus bMaxHPrate,2; } } +2935:2744,{ bonus bVariableCastrate,-4; bonus bDelayRate,-4; } 2950:15067:20709:22012,{ bonus2 bExpAddRace,RC_All,30; } 2957:2958,{ bonus4 bAutoSpell,"MO_EXTREMITYFIST",1,3,1; bonus3 bAutoSpell,"PR_LEXAETERNA",1,20; bonus3 bAutoSpell,"AS_SONICBLOW",5,50; bonus3 bAutoSpell,"MO_INVESTIGATE",5,20; bonus3 bAutoSpell,"ASC_METEORASSAULT",2,50; } 2959:18756,{ .@r = 3+(3*getequiprefinerycnt(EQI_HEAD_TOP)); autobonus "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,30; }",.@r,5000,BF_WEAPON,"{ transform 1785,5000; specialeffect2 EF_POTION_BERSERK; }"; autobonus2 "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,30; }",.@r,5000,BF_WEAPON,"{ transform 1785,5000; specialeffect2 EF_POTION_BERSERK; }"; } @@ -400,6 +448,20 @@ 2990:2991,{ bonus bAllStats,5; bonus5 bAutoSpellWhenHit,"SC_MAELSTROM",1,100,BF_MAGIC,0; } 2995:15110,{ bonus2 bSkillAtk,"NC_AXEBOOMERANG",100; } 2997:2999,{ bonus2 bAddClass,Class_All,10; bonus bMatkRate,10; } +32242:18971,{ bonus2 bFixedCastrate,"RK_STORMBLAST",-100; } +32242:18972,{ bonus bMaxHPRate,50; } +32242:18973,{ bonus2 bSkillAtk,"NC_FLAMELAUNCHER",70; bonus2 bSkillAtk,"NC_COLDSLOWER",70; } +32242:18974,{ bonus2 bSkillAtk,"NC_FLAMELAUNCHER",70; bonus2 bSkillAtk,"NC_COLDSLOWER",70; } +32242:18975,{ bonus2 bSkillAtk,"SC_TRIANGLESHOT",70; } +32242:18976,{ bonus2 bResEff,Eff_Freeze,10000; } +32242:18977,{ bonus2 bVariableCastrate,"GN_MANDRAGORA",-100; } +32242:18978,{ bonus bMatk,100; bonus2 bSkillCooldown,"WL_CRIMSONROCK",-500; } +32242:18979,{ bonus2 bSkillAtk,"SR_RIDEINLIGHTNING",70; } +32242:18980,{ skill "LG_TRAMPLE",3; } +32242:18981,{ bonus2 bResEff,Eff_Stun,10000; } +32242:18982,{ autobonus3 "{ bonus bStr,200; }",1000,20000,"GC_COUNTERSLASH","{}"; } +32242:18983,{ bonus2 bSkillAtk,"LG_CANNONSPEAR",70; } +32242:18984,{ bonus bCritical,70; bonus bCritAtkRate,70; } 4001:4197,{ bonus bFlee,18; } 4006:4266,{ bonus bFlee,18; } 4009:4179,{ bonus bFlee,18; } @@ -427,6 +489,7 @@ 4129:27335,{ bonus bCritAtkRate,15; } 4131:27081,{ autobonus "{ bonus bFlee2,10; }",70,5000,BF_SHORT; } 4139:18619,{ bonus3 bAutoSpell,"RG_SNATCHER",5,20; bonus bDex,2; bonus bAgi,1; bonus bInt,-1; } +4144:20932,{ bonus bMaxHPrate,15; bonus2 bSubEle,Ele_Dark,100; bonus2 bSubEle,Ele_Fire,50; bonus2 bResEff,Eff_Curse,10000; } 4152:5967,{ bonus2 bAddItemGroupHealRate,IG_Juice,1000; } 4153:4247:4273,{ bonus3 bAddMonsterDropItem,544,RC_Fish,3000; bonus2 bAddEle,Ele_Water,30; } 4153:18554,{ bonus2 bAddEle,Ele_Water,10; } @@ -550,6 +613,7 @@ 5548:5766,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bBaseAtk,min(.@r,10); bonus bMatk,min(.@r,10); } 5917:1525,{ bonus bLongAtkDef,10; } 5920:18542,{ bonus bHealPower,2*getequiprefinerycnt(EQI_HEAD_TOP); } +5933:19112,{ bonus2 bAddSize,Size_All,1; bonus bLongAtkRate,1; if(readparam(bStr)>=108) { bonus2 bAddSize,Size_All,2; bonus bLongAtkRate,1; } if(readparam(bStr)>=120) { bonus2 bAddSize,Size_All,3; bonus bLongAtkRate,1; } } 5967:28321,{ bonus2 bSubSkill,"HT_BLITZBEAT",200; } 5918:19306,{ .@aspd = 1; .@crit_dmg = 2 + 2 * (readparam(bDex) / 10); .@sub_demi = 2; .@luk = readparam(bLuk); if (.@luk > 107) { .@aspd += 1; .@crit_dmg += 2; .@sub_demi += 2; } if (.@luk > 119) { .@aspd += 2; .@crit_dmg += 4; .@sub_demi += 4; bonus bSplashRange,1; } bonus bAspd,.@aspd; bonus bCritAtkRate,.@crit_dmg; bonus2 bSubRace,RC_DemiHuman,.@sub_demi; bonus2 bSubSkill,"NPC_CRITICALSLASH",100; } //9024:18832,{ bonus3 bAutoSpell,"BS_ADRENALINE",2,(GetPetRelationship >= 3)?15:10; } @@ -583,10 +647,17 @@ 15129:20789:22084:28381:28414,{ bonus bMaxHPrate,20; bonus bMaxSPrate,10; bonus bHealPower,20; skill "AL_HEAL",7,1; } 15138:19026,{ bonus2 bSubRace,RC_Fish,(10+getequiprefinerycnt(EQI_ARMOR)); } 15138:19026:20756:22059,{ bonus bMaxHP,1000; bonus bMaxSP,100; bonus2 bExpAddRace,RC_Fish,20; bonus2 bMagicAddRace,RC_Fish,50; bonus2 bSubEle,Ele_Water,50; } +15145:18652,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r >= 9 ) { bonus2 bHPDrainRate,-60,-8; bonus2 bSPDrainRate,-20,-4; } else if (.@r >= 8 ) { bonus2 bHPDrainRate,-50,-5; bonus2 bSPDrainRate,-10,-2; } else if (.@r >= 7 ) { bonus2 bHPDrainRate,-30,-5; bonus2 bSPDrainRate,-10,-2; } else if (.@r >= 5 ) { bonus2 bHPDrainRate,-10,-3; bonus2 bSPDrainRate,-10,-1; } else { bonus2 bHPDrainRate,-10,-1; bonus2 bSPDrainRate,-10,-1; } } +15145:2554,{ bonus2 bSPDrainRate,-10,1; } +15145:5208,{ .@i = (getequiprefinerycnt(EQI_HEAD_TOP)>8)?2:1; bonus2 bHPDrainRate,-50,8*.@i; bonus2 bSPDrainRate,-10,4*.@i; } 15156:20790:22085,{ bonus bMaxHP,4000; bonus bNoCastCancel; bonus bFixedCastrate,-25-(getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)+getequiprefinerycnt(EQI_SHOES)); } 15156:20790:22085:28382:28418,{ bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus2 bSkillAtk,"SU_CN_METEOR",200; } 15156:20790:22085:28380:28421,{ bonus bMaxHPrate,30; bonus bMaxSPrate,9; bonus2 bSkillAtk,"SU_LUNATICCARROTBEAT",200; } 15156:20790:22085:28381:28415,{ bonus bMaxHPrate,25; bonus bMaxSPrate,15; bonus bHealPower,30; skill "AL_HEAL",9,1; } +15166:1647,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bHealPower,4*.@r; } +15166:5968,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bFlee2,.@r; bonus bHealPower,2*.@r; } +15169:1649,{ .@r = getequiprefinerycnt(EQI_HAND_R); .@b = getequiprefinerycnt(EQI_ARMOR); bonus bMatk,(3*.@r); if(.@b >=7) { bonus bMatk,(5*.@r); } if(.@b >=8) { bonus bMatk,(7*.@r); } } +15169:4054,{ if(getequiprefinerycnt(EQI_ARMOR) >=9) { bonus2 bResEff,Eff_Freeze,10000; } } 15176:18145:28441,{ bonus2 bSkillAtk,"AC_DOUBLE",50; bonus2 bSkillUseSP,"SC_TRIANGLESHOT",10; } 15177:20820:28608,{ bonus5 bAutoSpell,"MG_FIREBALL",max(5,getskilllv("MG_FIREBALL")),50,BF_MAGIC,1; autobonus3 "{ bonus bMatk,50; }",1000,60000,"PF_DOUBLECASTING","{ specialeffect2 EF_ENCHANCE; }"; } 15178:20821:28721,{ bonus2 bSkillAtk,"KO_BAKURETSU",20; bonus2 bSkillAtk,"KO_HAPPOKUNAI",50; } @@ -607,9 +678,13 @@ 15183:28467:28468,{ bonus bAtk,40; bonus2 bSubEle,Ele_All,4; bonus2 bSubEle,Ele_Neutral,-4; bonus2 bExpAddClass,Class_All,2; } 15184:28469:28470,{ bonus bAtk,50; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; bonus2 bExpAddClass,Class_All,2; } 15185:28471:28472,{ bonus bAtk,50; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; bonus2 bExpAddClass,Class_All,2; bonus bNoCastCancel; } +15189:20748,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus bBaseAtk,3*.@r; if (.@r >= 7) bonus bBaseAtk,5*(readparam(bStr)/10); if (.@r >= 8) bonus bBaseAtk,7*(readparam(bStr)/10); } +15189:20749,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus bBaseAtk,3*.@r; if (.@r >= 7) bonus bBaseAtk,5*(readparam(bStr)/10); if (.@r >= 8) bonus bBaseAtk,7*(readparam(bStr)/10); } +15189:4141,{ if (getequiprefinerycnt(EQI_ARMOR) >= 9) bonus2 bResEff,Eff_Curse,10000; } 15195:16063,{ .@matk = 100; .@recovery = 20; .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_ARMOR); if (.@weapon >= 7 && .@eq >= 7) { .@matk += 50; } if ((.@weapon + .@eq) >= 18) { .@recovery += 15; if ((.@weapon + .@eq) >= 22) { bonus bDelayrate,-15; } } bonus bMatk,.@matk; bonus bHealPower2,.@recovery; } 15195:19209,{ bonus bSpeedRate,25; /* unknown speed value */ bonus bHealPower,10; } 15212:22141,{ bonus bAspdRate,getequiprefinerycnt(EQI_SHOES); } +15205:4114,{ if (getequiprefinerycnt(EQI_ARMOR)>=9) { bonus2 bResEff,Eff_Freeze,10000; } } 15212:20856,{ bonus bDelayrate,-getequiprefinerycnt(EQI_GARMENT); } 15212:20856:22141,{ if ((getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)+getequiprefinerycnt(EQI_SHOES)) >= 39) { autobonus "{ bonus bIgnoreDefClass,Class_Normal; bonus bIgnoreDefClass,Class_Boss; }",50,5000; } } 15348:19366:20923:22192,{ bonus bVit,5; bonus bMaxSPrate,5; bonus bDef,5; bonus bMdef,15; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Wind,10; .@hp = 15; .@r[0] = getequiprefinerycnt(EQI_ARMOR); .@r[1] = getequiprefinerycnt(EQI_HEAD_TOP); .@r[2] = getequiprefinerycnt(EQI_GARMENT); .@r[3] = getequiprefinerycnt(EQI_SHOES); .@sum = .@r[0]+.@r[1]+.@r[2]+.@r[3]; if (.@r[0] >= 7 && .@r[1] >= 7 && .@r[2] >= 7 && .@r[3] >= 7) { .@hp += 10; } bonus bMaxHPrate,.@hp; if (.@sum >= 36) { bonus bFixedCast,-700; if (.@sum >= 40) { bonus bDelayrate,-20; } } } @@ -640,6 +715,7 @@ 18507:18539,{ bonus bUseSPrate,-3; } 18559:18560,{ bonus bCritAtkRate,5; } 18563:18564,{ bonus bFixedCastrate,-10; } +18652:32227,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r>=6) { bonus bDelayrate,-5; bonus bAspdRate,5; bonus2 bAddClass,Class_All,5; bonus2 bIgnoreDefClassRate,Class_All,25; } if (.@r>=8) { bonus bDelayrate,-10; bonus bAspdRate,10; bonus2 bAddClass,Class_All,5; bonus2 bIgnoreDefClassRate,Class_All,25; } } 18776:20710,{ bonus bBaseAtk,10; } 18776:22015,{ bonus bMatk,20; } 18823:19246,{ .@atk = 40; .@aspd = 3; .@dmg = 2; .@agi = readparam(bAgi); if (.@agi > 107) { .@atk += 60; .@aspd += 5; .@dmg += 2; } if (.@agi > 119) { .@atk += 80; .@aspd += 7; .@dmg += 4; } bonus bBaseAtk,.@atk; bonus bAspdRate,.@aspd; bonus2 bSubRace,RC_Player,.@dmg; bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Silence,10000; } @@ -647,25 +723,57 @@ 18823:28551,{ bonus2 bSkillDelay,"LG_OVERBRAND",-2000; bonus bLongAtkRate,getskilllv("LG_CANNONSPEAR") * 2; bonus bLongAtkRate,getskilllv("LG_OVERBRAND") * 2; bonus2 bSkillAtk,"LG_CANNONSPEAR",30; bonus2 bSkillAtk,"LG_OVERBRAND",20; } 18849:32237,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bFixedCast,-300; if (.@r > 0) { bonus bMatk,(10*.@r); if (.@r >= 7) { bonus2 bMagicAddRace,RC_DemiHuman,10; bonus2 bMagicAddRace,RC_Player,10; bonus2 bMagicAddRace,RC_Demon,10; if (.@r >= 9) { bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bMagicAtkEle,Ele_Wind,10; bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Fire,10; bonus2 bMagicAtkEle,Ele_Neutral,10; if (.@r >= 11) { bonus2 bMagicAddClass,Class_Boss,20; } } } } } 18867:1720,{ bonus bLongAtkRate,3+(getequiprefinerycnt(EQI_HAND_R) > 6 ? 5:0); } +18868:28320,{ bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Player,10; } +18933:19082,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bSkillAtk,"GN_SPORE_EXPLOSION",(5*.@r); } +18933:2268,{ bonus bDelayrate,-5; } +18933:4229,{ bonus bVariableCastrate,-10; } 18937:28302,{ bonus bInt,8; bonus bMaxSPrate,5;} 18937:28303,{ bonus bInt,8; bonus bBaseAtk,20;} 18937:28304,{ bonus bInt,8; bonus bFlee,15;} 18937:28305,{ bonus bInt,8; bonus bHit,10;} +18937:28352,{ bonus bMaxSPrate,5; if (BaseLevel>=20) { bonus bInt,(BaseLevel/20); } } +18937:28353,{ bonus bMaxHPrate,5; if (BaseLevel>=20) { bonus bStr,(BaseLevel/20); } } +18937:28357,{ bonus bAspdRate,5; if (BaseLevel>=20) { bonus bAgi,(BaseLevel/20); } } +18937:28359,{ bonus bVariableCastrate,-5; if (BaseLevel>=20) { bonus bDex,(BaseLevel/20); } } 18985:28321,{ bonus2 bSkillAtk,"HT_BLITZBEAT",100; } 18985:28321:28322,{ bonus2 bSkillAtk,"HT_BLITZBEAT",200; } 18985:28322,{ bonus2 bSkillAtk,"SN_FALCONASSAULT",50; } 18997:28326:28327,{ bonus bSpeedRate,10; bonus bBaseAtk,50; bonus bMatk,50; if(getequiprefinerycnt(EQI_HEAD_TOP)>=9){ bonus bMaxHPrate,10; bonus bMaxSPrate,50; } } +19024:19381,{ bonus bMdef,5; bonus bDef,50; bonus bAspdRate,5; bonus bVit,5; bonus2 bSubRace,RC_Player,3; if (readparam(bVit)>=108) { bonus bMdef,5; bonus bDef,50; bonus bAspdRate,5; bonus bVit,5; } if (readparam(bVit)>=120) { bonus bMdef,10; bonus bDef,100; bonus bVit,10; } } 19026:20756,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSPGainRace,RC_Fish,10; bonus3 bAddMonsterDropItem,544,RC_Fish,(5+.@r); bonus3 bAddMonsterDropItem,551,RC_Fish,(5+.@r); bonus2 bAddItemHealRate,544,5*(1+.@r); bonus2 bAddItemHealRate,551,5*(1+.@r); } 19026:22059,{ bonus2 bCriticalAddRace,RC_Fish,(10+getequiprefinerycnt(EQI_SHOES)); } 19038:19039,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP)+getequiprefinerycnt(EQI_HEAD_MID); if((.@r==7)||(.@r==8)){ bonus bCritical,12; bonus bHit,12; } if(.@r>=9){ bonus bMaxHP,1200; bonus bMaxSP,120; } } +19082:18933:2268,{ bonus2 bSkillUseSP,"GN_SPORE_EXPLOSION",20; } +19114:4226,{ bonus2 bSubSize,Size_All,10; } +19114:5548,{ bonus2 bSubSize,Size_All,5; } 19117:22101,{ bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5; if(getequiprefinerycnt(EQI_SHOES) >= 12) { bonus bFixedCast,-400; } } 19118:22101,{ bonus2 bDropAddRace,RC_All,4; bonus2 bExpAddRace,RC_All,4; if(getequiprefinerycnt(EQI_SHOES) >= 12) { bonus bFixedCast,-400; } } +19138:19327,{ .@cast = -(readparam(bInt)/8); .@sub = 2; .@heal = 5; if (.@i >= 120) { .@cast -= 10; .@sub += 6; .@heal += 25; } else if (.@i >= 108) { .@cast -= 4; .@sub += 2; .@heal += 10; } bonus bVariableCastrate,.@cast; bonus2 bSubRace,RC_DemiHuman,.@sub; bonus2 bSubRace,RC_Player,.@sub; bonus bHealPower,.@heal; bonus bAddItemHealRate,.@heal; bonus2 bVariableCastrate,"AB_CHEAL",-100; bonus2 bResEff,EFF_Bleeding,10000; bonus2 bResEff,Eff_Confusion,10000; } +19139:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bVit,4; bonus bVariableCastrate,-6; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; bonus2 bMagicAtkEle,Ele_Earth,20; bonus2 bMagicAtkEle,Ele_Wind,20; if (.@r>=7) { bonus bVit,4; bonus bVariableCastrate,-6; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; } if (.@r>=9) { bonus bVit,4; bonus bVariableCastrate,-6; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; } } +19139:20813,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus bFixedCastrate,-50; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; if (.@r>=5) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if (.@r>=7) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } } +19139:22170,{ bonus bVit,4; bonus bInt,5; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; } +19172:28500,{ bonus bDelayrate,-15; } +19172:4403,{ bonus bDelayrate,30; } 19247:28762,{ bonus bMatk,50; .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bVariableCastrate,-10; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if ((.@eq + .@weapon) >= 22) { autobonus "{ bonus bMatk,50; bonus2 bMagicAtkEle,Ele_Fire,20; }",5,10000,BF_MAGIC; /* unknown rate */ } } } +19272:4365,{ bonus bVariableCastrate,-100; bonus2 bSkillCooldown,"WL_TELEKINESIS_INTENSE",-120000; } +19299:4463,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); if (.@type == W_BOOK || .@type == W_STAFF || .@type == W_2HSTAFF) { bonus2 bMagicAddRace,RC_Player, getequiprefinerycnt(EQI_HAND_R)*2; } } +19299:5966,{ .@a = readparam(bDex); bonus bMatk,10; bonus bVariableCastrate,-2; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; if (.@a>=108) { bonus bMatk,20; bonus bVariableCastrate,-3; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if (.@a>=120) { bonus bMatk,30; bonus bVariableCastrate,-5; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; } } +19326:4187,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_DEMON,5; if (.@r>=6) bonus2 bExpAddRace,RC_DEMON,5; if (.@r>=8) bonus2 bExpAddRace,RC_DEMON,5; } +19326:4190,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_Undead,5; if (.@r>=6) bonus2 bExpAddRace,RC_Undead,5; if (.@r>=8) bonus2 bExpAddRace,RC_Undead,5; } +19326:4224,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_Brute,5; if (.@r>=6) bonus2 bExpAddRace,RC_Brute,5; if (.@r>=8) bonus2 bExpAddRace,RC_Brute,5; } +19326:4256,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_DemiHuman,5; if (.@r>=6) bonus2 bExpAddRace,RC_DemiHuman,5; if (.@r>=8) bonus2 bExpAddRace,RC_DemiHuman,5; } +19326:4262,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_PLANT,5; if (.@r>=6) bonus2 bExpAddRace,RC_PLANT,5; if (.@r>=8) bonus2 bExpAddRace,RC_PLANT,5; } +19326:4344,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_Insect,5; if (.@r>=6) bonus2 bExpAddRace,RC_Insect,5; if (.@r>=8) bonus2 bExpAddRace,RC_Insect,5; } +19326:4347,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_FISH,5; if (.@r>=6) bonus2 bExpAddRace,RC_FISH,5; if (.@r>=8) bonus2 bExpAddRace,RC_FISH,5; } +19326:4377,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_FORMLESS,5; if (.@r>=6) bonus2 bExpAddRace,RC_FORMLESS,5; if (.@r>=8) bonus2 bExpAddRace,RC_FORMLESS,5; } +19326:4385,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_DRAGON,5; if (.@r>=6) bonus2 bExpAddRace,RC_DRAGON,5; if (.@r>=8) bonus2 bExpAddRace,RC_DRAGON,5; } +19326:4391,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_ANGEL,5; if (.@r>=6) bonus2 bExpAddRace,RC_ANGEL,5; if (.@r>=8) bonus2 bExpAddRace,RC_ANGEL,5; } 19344:28244,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bAddClass,Class_All,10; if (.@weapon >= 7 && .@eq >= 7) { bonus bAspd,2; } if ((.@weapon + .@eq) >= 18) { bonus bLongAtkRate,10; if ((.@weapon + .@eq) >= 22) { bonus2 bSkillAtk,"GS_SPREADATTACK",30; } } } 19344:32301,{ bonus bBaseAtk,30; .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bAddClass,Class_All,5; } if ((.@eq + .@weapon) >= 18) { bonus2 bSubSize,Size_Small,20; bonus2 bSubSize,Size_Medium,20; if ((.@eq + .@weapon) >= 22) { autobonus3 "{ bonus bBaseAtk,100; bonus bLongAtkRate,15; }",5,10000,"RL_FIREDANCE"; /* unknown rate */ } } } 19428:20948:32238:32239,{ bonus bInt,5; bonus bMaxSPrate,10; bonus bDef,100; bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Neutral,10; .@head = getequiprefinerycnt(EQI_HEAD_TOP); .@garment = getequiprefinerycnt(EQI_GARMENT); if (.@head >= 7 && .@garment >= 7) { .@matk = 40; } if ((.@head + .@garment) >= 18) { .@matk += 40; bonus2 bMagicAtkEle,Ele_Ghost,15; bonus2 bMagicAtkEle,Ele_Wind,15; bonus2 bMagicAtkEle,Ele_Holy,15; if ((.@head + .@garment) >= 22) { bonus bMatkRate,10; bonus2 bIgnoreMdefRaceRate,RC_Formless,50; bonus2 bIgnoreMdefRaceRate,RC_Demon,50; bonus2 bIgnoreMdefRaceRate,RC_Brute,50; } } bonus bMatk,.@matk; } 20135:20136,{ bonus bAllStats,12; } 20701:2165,{ .@a = getequiprefinerycnt(EQI_GARMENT); .@b = getequiprefinerycnt(EQI_HAND_L); bonus2 bAddEle,Ele_Earth,.@b; bonus2 bSubRace,RC_Fish,.@a; } +20714:28320,{ .@val = min(12,getequiprefinerycnt(EQI_GARMENT)); bonus2 bAddRace,RC_DemiHuman,.@val; bonus2 bAddRace,RC_Player,.@val; } 20717:22000,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; } 20717:22001,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; } 20717:22002,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; } @@ -715,17 +823,60 @@ 20718:22117,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; } 20718:22118,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; } 20725:2189,{ .@a = getequiprefinerycnt(EQI_GARMENT); autobonus "{ bonus2 bHPLossRate,30,1000; bonus bMatk,5*("+.@a+"/3); }",30+.@a,10000,BF_MAGIC,"{ active_transform 1930,10000; specialeffect2 EF_POTION_BERSERK; /*Confirm Special Effect*/ }"; .@b = getequiprefinerycnt(EQI_HAND_L); if(.@b>=7) bonus2 bSubEle,Ele_All,2*.@b; } +20778:4606,{ bonus bSPGainValue,-1*(20+(getequiprefinerycnt(EQI_GARMENT)/2)); bonus bMaxSPrate,44; } 20783:4174,{ bonus2 bSubEle,Ele_Neutral,-50; } 20797:2339,{ bonus bInt,15; bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (getequiprefinerycnt(EQI_ARMOR) > 6) bonus bNoCastCancel; } 20797:4174,{ bonus2 bSubEle,Ele_All,50; bonus2 bSubEle,Ele_Neutral,-50; } +20799:1752:1730,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSkillAtk,"RA_ARROWSTORM",(5*.@r); bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",(5*.@r); if(getequiprefinerycnt(EQI_HAND_R)>=10) { bonus bAspd,1; } } +20799:1754:1731,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSkillAtk,"RA_ARROWSTORM",(5*.@r); bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",(5*.@r); if(getequiprefinerycnt(EQI_HAND_R)>=10) { bonus bAspd,1; } } +20799:1755:1733,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSkillAtk,"RA_ARROWSTORM",(5*.@r); bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",(5*.@r); if(getequiprefinerycnt(EQI_HAND_R)>=10) { bonus bAspd,1; } } +20799:1756:1732,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSkillAtk,"RA_ARROWSTORM",(5*.@r); bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",(5*.@r); if(getequiprefinerycnt(EQI_HAND_R)>=10) { bonus bAspd,1; } } +20800:4045,{ bonus bLongAtkDef,-35; } +20813:22170,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus bMatkRate,10; if (.@r>=7) { bonus2 bSubEle,Ele_Earth,15; bonus2 bSubEle,Ele_Wind,15; } if (.@r>=9) { bonus2 bSubEle,Ele_Earth,15; bonus2 bSubEle,Ele_Wind,15; } } +20813:4174,{ bonus2 bSubEle,Ele_Neutral,-30; } +20814:4588,{ bonus bBaseAtk,-5*readparam(bStr)/10; } 20819:5397,{ bonus bAspd,1; bonus bNoCastCancel; } +20831:4596,{ bonus bMatk,-5*(readparam(bInt)/10); } 20838:26109,{ bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",10; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"SO_EARTHGRAVE",40; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAtkEle,Ele_Neutral,10; bonus2 bMagicAtkEle,Ele_Earth,10; if ((.@eq + .@weapon) >= 22) { bonus2 bMagicAtkEle,Ele_Water,10; } } } 20840:28725,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@val = 80; if (.@weapon >= 7 && .@eq >= 7) { .@val += 80; } if ((.@weapon + .@eq) >= 18) { .@val += 40; } if ((.@weapon + .@eq) >= 22) { bonus2 bMagicAtkEle,Ele_Fire,15; } bonus bMatk,.@val; } +20846:22000,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bBaseAtk,30; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22001,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bMatk,30; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22002,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bAspdRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22003,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bAddItemHealRate,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22004,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bLongAtkRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22005,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bCritAtkRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22006,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bBaseAtk,30; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22007,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bAddItemHealRate,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22008,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bLongAtkRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22009,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bMatk,30; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22010,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bAspdRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } +20846:22011,{ bonus bMaxHPrate,15; bonus bMdef,10; bonus bCritAtkRate,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; } 20847:28745,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@val = 10; if (.@weapon >= 7 && .@eq >= 7) { bonus bCritAtkRate,15; } if ((.@weapon + .@eq) >= 18) { .@val += 15; if ((.@weapon + .@eq) >= 22) { skill "TF_DOUBLE",4; bonus bDoubleRate,20; } } bonus bAspdRate,.@val; } +20859:4121,{ bonus bPerfectHitAddRate,50; bonus2 bResEff,Eff_Stone,10000; } +20863:4593,{ bonus bLongAtkRate,-1*readparam(bDex)/10; } +20922:4306,{ bonus2 bSubEle,Ele_Neutral,20; bonus bMaxHPrate,10; bonus bMdef,10; } +20925:22035,{ bonus bAgi,10; bonus bInt,10; bonus bVariableCastrate,-10; bonus2 bSubRace,RC_Player,5; } +20925:22036,{ bonus bStr,10; bonus bDex,10; bonus bDelayrate,-20; bonus2 bSubRace,RC_Player,5; } +20925:22037,{ bonus bVit,10; bonus bLuk,10; bonus bHealPower,20; bonus2 bSubRace,RC_Player,5; bonus bUseSPrate,-10; } +20931:1752,{ bonus2 bSubEle,Ele_Fire,75; } +20931:1754,{ bonus2 bSubEle,Ele_Water,75; } +20931:1755,{ bonus2 bSubEle,Ele_Wind,75; } +20931:1756,{ bonus2 bSubEle,Ele_Earth,75; } 20933:22196,{ bonus bCritAtkRate,10; } 20933:22197,{ bonus bVariableCastrate,-10; } 20934:22196,{ bonus bLongAtkRate,10; } 20934:22197,{ bonus2 bMagicAtkEle,Ele_All,10; } +20935:22199,{ bonus bHit,5; } +20935:22199:15378,{ bonus2 bAddClass,Class_All,2; .@a = getequiprefinerycnt(EQI_GARMENT); .@b = getequiprefinerycnt(EQI_SHOES); .@c = getequiprefinerycnt(EQI_ARMOR); if (.@a>=7 && .@b>=7 &&.@c>=7) bonus2 bAddClass,Class_All,3; if (.@a+.@b+.@c >= 27) bonus bDelayrate,-20; } +20936:22200,{ bonus bCritAtkRate,5; } +20936:22200:15379,{ bonus2 bAddClass,Class_All,2; .@a = getequiprefinerycnt(EQI_GARMENT); .@b = getequiprefinerycnt(EQI_SHOES); .@c = getequiprefinerycnt(EQI_ARMOR); if (.@a>=7 && .@b>=7 &&.@c>=7) bonus2 bAddClass,Class_All,3; if (.@a+.@b+.@c >= 27) bonus bCritAtkRate,20; } +20937:22201,{ bonus bVariableCastrate,-5; } +20937:22201:15380,{ bonus bMatkRate,2; .@a = getequiprefinerycnt(EQI_GARMENT); .@b = getequiprefinerycnt(EQI_SHOES); .@c = getequiprefinerycnt(EQI_ARMOR); if (.@a>=7 && .@b>=7 &&.@c>=7) bonus bMatkRate,3; if (.@a+.@b+.@c >= 27) bonus2 bMagicAtkEle,Ele_Fire,15; } +20941:4197,{ bonus bFlee,20; bonus bMaxHPrate,10; bonus bMdef,10; } +20969:1752,{ bonus2 bSubEle,Ele_Fire,75; } +20969:1754,{ bonus2 bSubEle,Ele_Water,75; } +20969:1755,{ bonus2 bSubEle,Ele_Wind,75; } +20969:1756,{ bonus2 bSubEle,Ele_Earth,75; } 21050:22190,{ bonus bLongAtkRate,3; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bVariableCastrate,-10; } if ((.@eq + .@weapon) >= 18) { bonus bFixedCast,-500; if ((.@eq + .@weapon) >= 22) { bonus2 bSkillAtk,"RK_DRAGONBREATH",20; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",20; } } } 22069:2195,{ bonus2 bSubEle,Ele_Neutral,5; bonus2 bAddEle,Ele_Neutral,getequiprefinerycnt(EQI_HAND_L); } 22069:20753,{ bonus2 bAddEle,Ele_Neutral,5; .@r = getequiprefinerycnt(EQI_GARMENT); bonus bMaxHPrate,.@r; bonus bMaxSPrate,.@r; } @@ -735,7 +886,12 @@ 22101:29151,{ bonus bMaxHPRate,5; bonus bMaxSPRate,5; .@r = getequiprefinerycnt(EQI_SHOES); if(.@r >= 7) { bonus2 bSubEle,Ele_Neutral,2; } if(.@r >= 9) { bonus2 bSubEle,Ele_Neutral,3; } if(.@r >= 12) { bonus bDelayrate,-5; } } 22101:29152,{ bonus bMaxHPRate,5; bonus bMaxSPRate,5; .@r = getequiprefinerycnt(EQI_SHOES); if(.@r >= 7) { bonus bLongAtkRate,2; } if(.@r >= 9) { bonus bLongAtkRate,3; } if(.@r >= 12) { bonus bDelayrate,-5; } } 22101:29153,{ bonus bMaxHPRate,5; bonus bMaxSPRate,5; .@r = getequiprefinerycnt(EQI_SHOES); if(.@r >= 7) { bonus bCritAtkRate,2; } if(.@r >= 9) { bonus bCritAtkRate,3; } if(.@r >= 12) { bonus bDelayrate,-5; } } +22104:1646,{ .@r = getequiprefinerycnt(EQI_HAND_R); .@b = getskilllv("WZ_FROSTNOVA"); .@c = getskilllv("WZ_WATERBALL"); bonus2 bMagicAtkEle,Ele_Water,4*.@r; bonus2 bIgnoreMdefClassRate,Class_Normal,5*.@b; bonus2 bIgnoreMdefClassRate,Class_Boss,5*.@b; bonus2 bSkillAtk,"WZ_WATERBALL",(30*.@c)+(20*.@r); } +22106:1387,{ .@r = getequiprefinerycnt(EQI_SHOES); .@b = getequiprefinerycnt(EQI_HAND_R); if (.@r>=7) { bonus2 bSubRace,RC_DemiHuman,30; bonus2 bSubRace,RC_Player,30; if (.@b>=7) { bonus2 bSkillAtk,"WS_CARTTERMINATION",8; bonus2 bAddClass,Class_Boss,20; } if (.@b>=9) { bonus2 bSkillAtk,"WS_CARTTERMINATION",12; bonus2 bAddClass,Class_Boss,30; } } } +22106:1490,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,40; bonus2 bSubRace,RC_Player,40; bonus4 bAutoSpellOnSkill,"LK_SPIRALPIERCE","RK_SONICWAVE",getskilllv("RK_SONICWAVE"),10000; if (.@r>=7) { bonus2 bSkillAtk,"RK_SONICWAVE",20; bonus2 bSkillAtk,"LK_SPIRALPIERCE",20; bonus2 bSubClass,Class_Boss,20; } if (.@r>=9) { bonus2 bSkillAtk,"RK_SONICWAVE",30; bonus2 bSkillAtk,"LK_SPIRALPIERCE",30; bonus2 bSubClass,Class_Boss,30; } } +22106:18122,{ .@r = getequiprefinerycnt(EQI_SHOES); .@b = getequiprefinerycnt(EQI_HAND_R); if (.@r>=7) { bonus bLongAtkRate,3*(readparam(bStr)/10); if (.@b>=7) { bonus2 bSkillAtk,"RA_ARROWSTORM",20; bonus2 bSkillAtk,"RA_AIMEDBOLT",20; bonus2 bAddClass,Class_Boss,20; } if (.@b>=9) { bonus2 bSkillAtk,"RA_ARROWSTORM",30; bonus2 bSkillAtk,"RA_AIMEDBOLT",30; bonus2 bAddClass,Class_Boss,30; } } } 22106:2160,{ .@r = getequiprefinerycnt(EQI_SHOES); if (.@r > 6) { bonus2 bSubSize,Size_Large,2; bonus2 bSubClass,Class_Boss,2; } if (.@r > 8) { bonus2 bSubSize,Size_Large,2; bonus2 bSubClass,Class_Boss,2; } } +22120:1631,{ .@r = getequiprefinerycnt(EQI_HAND_R); .@cast = -5*getskilllv("AB_ORATIO"); bonus2 bVariableCastrate,"AB_JUDEX",.@cast; bonus2 bVariableCastrate,"AB_ADORAMUS",.@cast; if (.@r >= 7) { .@magic = 30; if (.@r >= 9) { .@magic += 20; .@dmg = 20; } bonus2 bMagicAddRace,RC_Demon,.@magic; bonus2 bMagicAddRace,RC_Undead,.@magic; bonus2 bMagicAddEle,Ele_Undead,.@magic; bonus2 bMagicAddEle,Ele_Dark,.@magic; } bonus2 bSkillAtk,"AB_ADORAMUS",.@dmg + 10*(getskilllv("AB_LAUDAAGNUS")+getskilllv("AB_LAUDARAMUS")+getskilllv("AB_CLEARANCE")); } 22122:28443:28444,{ bonus bAspdRate,4; bonus bHit,4; } 22123:28445:28446,{ bonus bAspdRate,8; bonus bHit,8; } 22124:28447:28448,{ bonus bAspdRate,8; bonus bHit,8; bonus2 bExpAddClass,Class_All,2; } @@ -753,6 +909,12 @@ 22126:28471:28472,{ bonus bAspdRate,10; bonus bHit,10; bonus2 bExpAddClass,Class_All,2; bonus bSpeedAddRate,25; } 22133:26007,{ bonus bAspdRate,8; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus bLongAtkRate,10; if ((.@eq + .@weapon) >= 22) { .@val += 30; } } if (.@val) { bonus2 bSkillAtk,"LG_BANISHINGPOINT",.@val; } } 22133:32005,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus2 bAddClass,Class_All,10; if ((.@eq + .@weapon) >= 22) { .@val += 20; } } if (.@val) { bonus2 bSkillAtk,"RK_HUNDREDSPEAR",.@val; } } +22138:20815,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; bonus2 bSubEle,Ele_Holy,30-(2*getskilllv("CR_TRUST")); bonus2 bSubEle,Ele_Dark,30; bonus bFixedCastrate,-50; if (.@r > 8) .@val = 20; else if (.@r > 6) .@val = 10; bonus2 bMagicAtkEle,Ele_Fire,.@val; bonus2 bMagicAtkEle,Ele_Neutral,.@val; bonus2 bMagicAtkEle,Ele_Dark,.@val; } +22138:20815:1643,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; bonus2 bMagicAtkEle,Ele_Fire,4*getskilllv("WZ_FIREPILLAR"); bonus2 bMagicAtkEle,Ele_Neutral,6*getskilllv("HW_GRAVITATION"); if (.@r > 8) .@val = 2; else if (.@r > 6) .@val = 1; bonus2 bSkillAtk,"WL_HELLINFERNO",100*.@val; bonus2 bMagicAddRace,RC_DemiHuman,20*.@val; bonus2 bMagicAddRace,RC_Player,20*.@val; } +22138:4876,{ bonus2 bMagicAtkEle,Ele_Fire,-50; bonus2 bMagicAtkEle,Ele_Neutral,-50; bonus2 bMagicAtkEle,Ele_Dark,-50; } +22170:1618,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; bonus2 bIgnoreMdefClassRate,Class_All,50; if (.@r>=10) { bonus2 bMagicAtkEle,Ele_Neutral,80; bonus2 bMagicAddRace,RC_Demihuman,20; bonus2 bMagicAddRace,RC_Player,20; bonus2 bSkillCooldown,"WL_EARTHSTRAIN",-2400; bonus2 bSkillCooldown,"WL_CHAINLIGHTNING",-1000; autobonus "{ bonus2 bSkillAtk,\"WL_CHAINLIGHTNING\",100; }",60,5000,BF_MAGIC; } } +22170:1620,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; bonus2 bIgnoreMdefClassRate,Class_All,50; if (.@r>=10) { bonus2 bMagicAtkEle,Ele_Neutral,80; bonus2 bMagicAddRace,RC_Demihuman,20; bonus2 bMagicAddRace,RC_Player,20; bonus2 bSkillCooldown,"WL_EARTHSTRAIN",-2400; bonus2 bSkillCooldown,"WL_CHAINLIGHTNING",-1000; autobonus "{ bonus2 bSkillAtk,\"WL_CHAINLIGHTNING\",100; }",60,5000,BF_MAGIC; } } +22170:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Wind,10; if (.@r>=7) { bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Wind,10; } if (.@r>=9) { bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Wind,10; } } 22171:13345,{ autobonus "{ bonus bStr,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ } //22171:26154,{ autobonus "{ bonus bInt,20; bonus bMatkRate,15; }",20,7000,BF_MAGIC; /* unknown rate */ } 22171:26155,{ autobonus "{ bonus bLuk,20; bonus bMatkRate,15; bonus2 bAddClass,Class_All,15; }",20,7000,BF_MAGIC|BF_WEAPON; /* unknown rate */ } @@ -763,6 +925,8 @@ //22171:28631,{ autobonus "{ bonus bStr,20; bonus2 bAddClass,Class_All,15; }",3,7000,BF_WEAPON; /* unknown rate */ } 22171:28763:28764,{ autobonus "{ bonus bStr,20; bonus2 bAddClass,Class_All,10; }",20,7000,BF_WEAPON; /* unknown rate */ } 22171:32302,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ } +22172:15042,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bSpeedRate,25; bonus bCritAtkRate,4*(readparam(bluk)/20); if (.@r>=7) { bonus bAspdRate,8; bonus2 bSubRace,RC_DemiHuman,8; bonus2 bSubRace,RC_Player,8; bonus2 bSkillAtk,"HT_BLITZBEAT",40; bonus2 bSkillAtk,"SN_SHARPSHOOTING",50; } if (.@r>=9) { bonus bAspdRate,4; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; bonus2 bSkillAtk,"HT_BLITZBEAT",20; bonus2 bSkillAtk,"SN_SHARPSHOOTING",25; } } +22172:15043,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bHPGainValue,500; bonus bSpeedRate,25; bonus2 bSkillAtk,"RA_CLUSTERBOMB",30*(readparam(bint)/20); bonus2 bSkillUseSP,"RA_ELECTRICSHOCKER",30; if (.@r>=7) { bonus bFlee2,6; bonus2 bSubRace,RC_DemiHuman,8; bonus2 bSubRace,RC_Player,8; bonus2 bSkillAtk,"RA_CLUSTERBOMB",400; bonus2 bSkillAtk,"RA_AIMEDBOLT",20; } if (.@r>=9) { bonus bFlee2,3; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; bonus2 bSkillAtk,"RA_CLUSTERBOMB",200; bonus2 bSkillAtk,"RA_AIMEDBOLT",10; } } 22190:28254,{ bonus2 bAddClass,Class_All,10; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bLongAtkRate,5; } if ((.@eq + .@weapon) >= 18) { bonus2 bSkillAtk,"RL_FIRE_RAIN",20; bonus2 bSkillCooldown,"RL_FIRE_RAIN",-2000; if ((.@eq + .@weapon) >= 22) { autobonus3 "{ bonus bBaseAtk,50; bonus2 bAddRace,RC_Brute,50; bonus2 bAddRace,RC_Demon,50; }",5,10000,"RL_R_TRIP"; /* unknown rate */ } } } 24012:24013:24014:24015:24016:24017,{ bonus bAllStats,3; } 24018:24019:24020,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L) + getequiprefinerycnt(EQI_SHADOW_WEAPON) >= 23) { bonus2 bAddClass,Class_All,1; } } @@ -947,12 +1111,46 @@ 28022:28509,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,10; if (.@r >= 9) { bonus bCritAtkRate,10; if (.@r >= 11) { bonus2 bAddRace,RC_Brute,25; } } } 28315:28317,{ bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; } 28316:28318,{ bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; } +28320:22016,{ .@val = min(12,getequiprefinerycnt(EQI_SHOES)); bonus2 bAddRace,RC_DemiHuman,.@val; bonus2 bAddRace,RC_Player,.@val; } 28321:28322,{ bonus bUseSPrate,-(getskilllv("HT_BEASTBANE") * 2); } 28326:28327,{ bonus bInt,8; bonus bStr,8; } 28358:18521,{ skill "AS_CLOAKING",1; } +28430:4803,{ bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,3; bonus2 bSkillUseSP,"AB_EPICLESIS",100; bonus2 bSkillCooldown,"AB_EPICLESIS",-10000; } +28430:4804,{ bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,3; bonus2 bVariableCastrate,"AB_CHEAL",-100; bonus2 bSkillUseSP,"AB_CHEAL",20; } +28430:4805,{ bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,3; bonus2 bVariableCastrate,"AB_HIGHNESSHEAL",-100; } +28430:4850,{ bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,3; bonus2 bSkillCooldown,"AB_HIGHNESSHEAL",-1000; } +28433:4817,{ bonus bCritAtkRate,10; } +28433:4818,{ bonus bCritAtkRate,10; } +28434:4810,{ bonus bMaxSP,100; bonus2 bAddClass,Class_All,5; } +28434:4811,{ bonus bMaxSP,100; bonus2 bAddClass,Class_All,5; } +28437:4814,{ bonus bVariableCastrate,-5; bonus2 bMagicAddRace,RC_All,5; } +28437:4815,{ bonus bVariableCastrate,-5; bonus2 bMagicAddRace,RC_All,5; } +28438:4832,{ bonus bDelayrate,-5; bonus bLongAtkRate,5; } +28438:4833,{ bonus bDelayrate,-5; bonus bLongAtkRate,5; } +28491:4817,{ bonus bHit,15; bonus bCriticalLong,10; } +28491:4818,{ bonus bHit,15; bonus bCriticalLong,10; } 28499:28920,{ bonus bFlee2,10; } +28501:4807,{ bonus bAspd,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Brute,1; bonus2 bSubRace,RC_Fish,1; bonus2 bSubRace,RC_Player,1; bonus2 bSubRace,RC_Demon,1; bonus2 bSubRace,RC_Undead,1; } +28501:4842,{ bonus bAspd,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Brute,1; bonus2 bSubRace,RC_Fish,1; bonus2 bSubRace,RC_Player,1; bonus2 bSubRace,RC_Demon,1; bonus2 bSubRace,RC_Undead,1; } +28502:2201,{ .@a = (readparam(bStr)+readparam(bLuk))/80; .@b = (readparam(bAgi)+readparam(bVit))/80; .@c = (readparam(bInt)+readparam(bDex))/80; bonus bMaxHPrate,5*.@b; bonus2 bAddClass,Class_All,6*.@a; bonus bMatk,120*.@c; bonus bCritical,5*.@a; bonus bAspdRate,5*.@b; bonus bVariableCastrate,-3*.@c; bonus bCritAtkRate,10*.@a; bonus2 bSubRace,RC_DemiHuman,((2*.@b)+2); bonus2 bSubRace,RC_Player,((2*.@b)+2); bonus bHealPower,10*.@c; } +28502:2202,{ .@a = (readparam(bStr)+readparam(bLuk))/80; .@b = (readparam(bAgi)+readparam(bVit))/80; .@c = (readparam(bInt)+readparam(bDex))/80; bonus bMaxHPrate,5*.@b; bonus2 bAddClass,Class_All,6*.@a; bonus bMatk,120*.@c; bonus bCritical,5*.@a; bonus bAspdRate,5*.@b; bonus bVariableCastrate,-3*.@c; bonus bCritAtkRate,10*.@a; bonus2 bSubRace,RC_DemiHuman,((2*.@b)+2); bonus2 bSubRace,RC_Player,((2*.@b)+2); bonus bHealPower,10*.@c; } +28502:2203,{ .@a = (readparam(bStr)+readparam(bLuk))/80; .@b = (readparam(bAgi)+readparam(bVit))/80; .@c = (readparam(bInt)+readparam(bDex))/80; bonus bMaxHPrate,5*.@b; bonus2 bAddClass,Class_All,6*.@a; bonus bMatk,120*.@c; bonus bCritical,5*.@a; bonus bAspdRate,5*.@b; bonus bVariableCastrate,-3*.@c; bonus bCritAtkRate,10*.@a; bonus2 bSubRace,RC_DemiHuman,((2*.@b)+2); bonus2 bSubRace,RC_Player,((2*.@b)+2); bonus bHealPower,10*.@c; } +28502:2204,{ .@a = (readparam(bStr)+readparam(bLuk))/80; .@b = (readparam(bAgi)+readparam(bVit))/80; .@c = (readparam(bInt)+readparam(bDex))/80; bonus bMaxHPrate,5*.@b; bonus2 bAddClass,Class_All,6*.@a; bonus bMatk,120*.@c; bonus bCritical,5*.@a; bonus bAspdRate,5*.@b; bonus bVariableCastrate,-3*.@c; bonus bCritAtkRate,10*.@a; bonus2 bSubRace,RC_DemiHuman,((2*.@b)+2); bonus2 bSubRace,RC_Player,((2*.@b)+2); bonus bHealPower,10*.@c; } +28506:1414,{ .@r = getequiprefinerycnt(EQI_HAND_R); if (.@r>=7) { .@val = 30; if (.@r>=9) { @val += 20; bonus2 bAddClass,Class_Boss,.@val; bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddRace,RC_Fish,.@val; bonus2 bAddRace,RC_Insect,.@val; bonus2 bSkillAtk,"RK_WINDCUTTER",.@val; if (.@r>=10) { bonus2 bVariableCastrate,"RK_WINDCUTTER",-50; } } } } +28506:1449,{ .@r = getequiprefinerycnt(EQI_HAND_R); if (.@r>=7) { .@val = 30; if (.@r>=9) { @val += 20; bonus2 bAddClass,Class_Boss,.@val; bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddRace,RC_Fish,.@val; bonus2 bAddRace,RC_Insect,.@val; bonus2 bSkillAtk,"RK_WINDCUTTER",.@val; if (.@r>=10) { bonus2 bVariableCastrate,"RK_WINDCUTTER",-50; } } } } +28506:15037,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; if (.@r>=7) { bonus bMaxHPrate,15; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if (.@r>=9) { bonus bMaxHPrate,15; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } } +28506:15037:2476:2575:2884,{ autobonus3 "{bonus bDelayrate,-70;}",1000,10000,"LK_AURABLADE","{specialeffect2 EF_ENHANCE;}"; } +28506:2476,{ .@r = getequiprefinerycnt(EQI_SHOES); bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; if (.@r>=7) { bonus bAspdRate,10; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; } if (.@r>=9) { bonus bAspdRate,10; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; } } +28506:2575,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSkillUseSP,"RK_WINDCUTTER",18; bonus2 bSubRace,RC_Player,3; if (.@r>=7) { bonus bLongAtkDef,10; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; } if (.@r>=9) { bonus bLongAtkDef,10; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; } } +28506:2884,{ bonus2 bAddClass,Class_All,5; bonus bMaxSPrate,5; bonus bAspdRate,5; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player,4; } 28508:28612,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,8; bonus bCritAtkRate,(5*(.@r/2)); if (.@r >= 9) { bonus bCritical,15; bonus2 bResEff,Eff_Curse,10000; if (.@r >= 11) { bonus bBaseAtk,100; } } } 28509:28626,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,8; bonus bCritAtkRate,(5*(.@r/2)); if (.@r >= 9) { bonus bCritical,15; if (.@r >= 11) { bonus bBaseAtk,100; } } } +28594:4875,{ bonus bStr,40; bonus bMaxHPrate,10; } +28594:4876,{ bonus bInt,40; bonus bMaxSPrate,10; } +28594:4877,{ bonus bDelayrate,-30; bonus bFlee,40; } +28594:4878,{ bonus bMdef,40; bonus bVariableCastrate,-20; } +28594:4879,{ bonus bDex,40; bonus bHit,50; } +28594:4880,{ bonus bLuk,40; bonus bCritAtkRate,30; } 28763:28764,{ .@r = getequiprefinerycnt(EQI_HAND_R) + getequiprefinerycnt(EQI_HAND_L); bonus bBaseAtk,10*(.@r/3); bonus2 bAddClass,Class_All,2*(.@r/5); if (.@r >= 14) { .@val = 25; if (.@r >= 16) { bonus2 bSkillCooldown,"KO_JYUMONJIKIRI",-2000; if (.@r >= 18) { .@lvl = max(getskilllv("KG_KAGEHUMI"),getskilllv("OB_ZANGETSU")); skill "KG_KAGEHUMI",.@lvl; skill "OB_ZANGETSU",.@lvl; if (.@r >= 20) { .@val += 25; } } } bonus2 bSkillAtk,"KO_JYUMONJIKIRI",.@val; } } 28906:2998,{ bonus bLongAtkRate,10; } 28907:2998,{ bonus bSpeedRate,25; } @@ -964,4 +1162,10 @@ 32231:15388:15389,{ bonus bMaxHPrate,5; bonus bDelayrate,-5; } 32232:15388:15389,{ bonus bAspdRate,3; bonus bCritical,7; } 32233:15388:15389,{ bonus bLongAtkRate,7; bonus bAspd,1; } +32204:2027,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bInt,2*.@r; bonus2 bSkillAtk,"WL_CRIMSONROCK",.@r; if (.@r>=9) { bonus bMagicHPGainValue,500; bonus bHPGainValue,500; autobonus "{ bonus2 bMagicAtkEle,Ele_Fire,50; }",10,10000,BF_MAGIC,"{ specialeffect2 255; }"; } } +32204:21018,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bCritAtkRate,3*.@r; if (.@r>=9) { bonus bCritical,50; bonus2 bAddClass,Class_Boss,25; } } +32204:28010,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bAddClass,Class_All,5*.@r; if (.@r>=9) bonus4 bAutoSpellOnSkill,"GC_ROLLINGCUTTER","AB_ORATIO",10,100; } +32222:15093,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus5 bAutoSpell,"AL_HEAL",10,-(50+.@r),BF_SHORT,0; bonus5 bAutoSpell,"WZ_STORMGUST",10,-(50+.@r),BF_SHORT,1; bonus2 bSkillAtk,"RK_STORMBLAST",5*.@r; bonus2 bSkillAtk,"LG_BANISHINGPOINT",5*.@r; } +32222:15095,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus5 bAutoSpell,"PR_KYRIE",10,-(50+.@r),BF_SHORT,0; bonus2 bSkillAtk,"AB_JUDEX",5*.@r; bonus2 bSkillAtk,"AB_ADORAMUS",5*.@r; bonus2 bSkillAtk,"SR_DRAGONCOMBO",5*.@r; bonus2 bSkillAtk,"SR_SKYNETBLOW",5*.@r; bonus2 bSkillAtk,"SR_EARTHSHAKER",5*.@r; } +32222:15096,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bAllStats,2*.@r; bonus3 bAddEff,Eff_Stun,.@r*50,ATF_SHORT; bonus3 bAddEff,Eff_Curse,.@r*50,ATF_SHORT; bonus3 bAddEff,Eff_Poison,.@r*50,ATF_SHORT; bonus3 bAddEff,Eff_Silence,.@r*50,ATF_SHORT; /* Unknow rates */ } 32238:32239,{ bonus bVariableCastrate,-10; bonus bMatkRate,10; } diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 5734f630a34..f884e8168cb 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -5,9 +5,9 @@ // // Healing Items //============================================================= -501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(45,65),0; },{},{} -502,Orange_Potion,Orange Potion,0,200,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(105,145),0; },{},{} -503,Yellow_Potion,Yellow Potion,0,550,,130,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(175,235),0; },{},{} +501,Red_Potion,Red Potion,0,10,,70,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(45,65),0; },{},{} +502,Orange_Potion,Orange Potion,0,50,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(105,145),0; },{},{} +503,Yellow_Potion,Yellow Potion,0,180,,130,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(175,235),0; },{},{} 504,White_Potion,White Potion,0,1200,,150,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(325,405),0; },{},{} 505,Blue_Potion,Blue Potion,0,5000,,150,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal 0,rand(40,60); },{},{} 506,Green_Potion,Green Potion,0,40,,70,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_end SC_POISON; sc_end SC_SILENCE; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_HALLUCINATION; },{},{} @@ -81,7 +81,7 @@ 576,Prickly_Fruit,Prickly Fruit,0,540,,60,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(150,300),rand(20,30); },{},{} 577,Grain,Bag of Grain,0,200,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(60,70),0; },{},{} 578,Strawberry,Strawberry,0,200,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal 0,rand(16,28); },{},{} -579,Delicious_Fish,Fresh Fish,0,250,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(100,150),0; },{},{} +579,Delicious_Fish,Fresh Fish,0,700,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(100,150),0; },{},{} 580,Bread,Bread,0,150,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(50,90),0; },{},{} 581,Mushroom,Edible Mushroom,0,40,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(20,30),0; },{},{} 582,Orange,Orange,0,300,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(10,20),rand(10,20); },{},{} @@ -147,12 +147,12 @@ 640,Shining_Stone,Shining Stone,2,3000,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1155; },{},{} 641,Contracts_In_Shadow,Contract in Shadow,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1109; },{},{} 642,Book_Of_Devil,Book of the Devil,2,1800,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1101; },{},{} -643,Pet_Incubator,Pet Incubator,2,3000,,30,,,,,0xFFFFFFFF,63,2,,,,,,{ bpet; },{},{} +643,Pet_Incubator,Pet Incubator,2,10000,,30,,,,,0xFFFFFFFF,63,2,,,,,,{ bpet; },{},{} 644,Gift_Box,Gift Box,2,1000,,200,,,,,0xFFFFFFFF,63,2,,,,,,{ getrandgroupitem(IG_GiftBox,1); },{},{} //ASPD in RE they give a fixed +4/+6/+9 ASPD -645,Center_Potion,Concentration Potion,2,800,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,4; },{},{} -656,Awakening_Potion,Awakening Potion,2,1500,,150,,,,,0xFFF7FEEF,63,2,,,40,,,{ sc_start SC_ASPDPOTION1,1800000,6; },{},{} -657,Berserk_Potion,Berserk Potion,2,3000,,200,,,,,0x41E646A6,63,2,,,85,,,{ sc_start SC_ASPDPOTION2,1800000,9; },{},{} +645,Center_Potion,Concentration Potion,2,1200,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,4; },{},{} +656,Awakening_Potion,Awakening Potion,2,2200,,150,,,,,0xFFF7FEEF,63,2,,,40,,,{ sc_start SC_ASPDPOTION1,1800000,6; },{},{} +657,Berserk_Potion,Berserk Potion,2,4500,,200,,,,,0x41E646A6,63,2,,,85,,,{ sc_start SC_ASPDPOTION2,1800000,9; },{},{} 658,Union_Of_Tribe,Union of Tribe,2,2,,500,,,,,0xFFFFFFFF,63,2,,,,,,{ guildgetexp rand(600000,1200000); },{},{} 659,Heart_Of_Her,Her Heart,2,500,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1188; },{},{} 660,Prohibition_Red_Candle,Forbidden Red Candle,2,20000,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1200; },{},{} @@ -321,7 +321,7 @@ 966,Flesh_Of_Clam,Clam Flesh,3,158,,10,,,,,,,,,,,,,{},{},{} 967,Turtle_Shell,Turtle Shell,3,680,,10,,,,,,,,,,,,,{},{},{} 968,Voucher_Of_Orcish_Hero,Heroic Emblem,3,3000,,10,,,,,,,,,,,,,{},{},{} -969,Gold,Gold,3,200000,,200,,,,,,,,,,,,,{},{},{} +969,Gold,Gold,3,150000,,200,,,,,,,,,,,,,{},{},{} 970,Alchol,Alcohol,3,400,,30,,,,,,,,,,,,,{},{},{} 971,Detrimindexta,Detrimindexta,3,400,,30,,,,,,,,,,,,,{},{},{} 972,Karvodailnirol,Karvodailnirol,3,400,,30,,,,,,,,,,,,,{},{},{} @@ -416,7 +416,7 @@ 1062,Pumpkin_Head,Jack o' Pumpkin,3,374,,10,,,,,,,,,,,,,{},{},{} 1063,Sharpened_Cuspid,Fang,3,680,,10,,,,,,,,,,,,,{},{},{} 1064,Reins,Reins,3,802,,10,,,,,,,,,,,,,{},{},{} -1065,Booby_Trap,Trap,3,100,,10,,,,,,,,,,,,,{},{},{} +1065,Booby_Trap,Trap,3,75,,10,,,,,,,,,,,,,{},{},{} 1066,Tree_Of_Archer_1,Fine-grained Trunk,3,2,,10,,,,,,,,,,,,,{},{},{} 1067,Tree_Of_Archer_2,Solid Trunk,3,2,,10,,,,,,,,,,,,,{},{},{} 1068,Tree_Of_Archer_3,Barren Trunk,3,2,,10,,,,,,,,,,,,,{},{},{} @@ -788,6 +788,7 @@ 1443,Crimson_Spear,Crimson Spear,5,20,,900,90,,3,2,0x00004082,63,2,2,3,70,1,4,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{} 1446,Requiem_Spear,Requiem Spear,5,20,,1000,130,,3,,0x00004080,63,2,2,4,100,1,4,{ .@r = getrefine(); .@b = 40; bonus bUnbreakableWeapon; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b; },{},{} 1447,Poison_Forged_Spear,Poison Forged Spear,5,0,,500,150,,3,3,0x00004080,58,2,2,4,100,1,4,{ bonus bAtkEle,Ele_Poison; bonus bCritical,10; skill "TF_DOUBLE",5; bonus bDoubleRate,25; bonus2 bAddEff,Eff_Poison,1000; bonus2 bAddEff2,Eff_Poison,300; },{},{} +1449,Gelerdria_,Gelerdria,5,20,,700,145,,3,3,0x00004082,63,2,2,4,48,1,4,{ bonus bAtkEle,Ele_Earth; bonus bMaxHP,800; bonus bMaxSP,-50; },{},{} //=================================================================== // 2-Handed Spears //=================================================================== @@ -990,7 +991,7 @@ 1636,Thorn_Staff,Thorn Staff of Darkness,5,20,,700,60:160,,1,0,0x00018314,18,2,2,4,75,1,10,{ bonus bAtkEle,Ele_Dark; bonus bInt,3; bonus bDex,3; .@r = getrefine(); bonus2 bIgnoreMdefClassRate,Class_Normal,.@r; bonus2 bIgnoreMdefClassRate,Class_Boss,.@r; bonus bDelayRate,-(.@r*3/2); },{},{} 1637,Eraser,Eraser,5,20,,500,80:170,,1,0,0x00018314,18,2,2,4,70,1,10,{ bonus bInt,3; bonus bDex,2; bonus bSPrecovRate,8; bonus5 bAutoSpell,"NPC_WIDESOULDRAIN",(getrefine()>9?3:1),5,BF_MAGIC,0; },{},{} 1638,Healing_Staff_C,Staff Of Healing,5,20,,0,10:125,,1,0,0x00008110,63,2,2,3,1,1,10,{ bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bHealPower,(getrefine()*3/2); },{},{} -1639,N_Rod,Novice Rod,5,0,,0,15:32,,1,3,0x00818315,63,2,2,1,1,0,10,{ bonus bMatkRate,16; },{},{} +1639,N_Rod,Novice Rod,5,0,,0,15:32,,1,3,0x00818315,63,2,2,1,1,0,10,{},{},{} 1640,Krieger_Onehand_Staff1,Glorious Arc Wand,5,20,,0,70:135,,1,0,0x00818314,63,2,2,4,80,1,10,{ bonus2 bMagicAddRace,RC_DemiHuman,15; bonus2 bMagicAddRace,RC_Player,15; .@r = getrefine(); bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,25 + ((.@r > 5) ? 5 : 0); bonus2 bIgnoreMdefRaceRate,RC_Player,25 + ((.@r > 5) ? 5 : 0); bonus bUnbreakableWeapon; if(.@r > 8) { bonus bMatkRate,5; bonus bVariableCastrate,-5; bonus bDelayRate,-5; } },{},{} 1641,Krieger_Onehand_Staff2,Glorious Cure Wand,5,20,,0,70:135,,1,0,0x00818314,63,2,2,4,80,1,10,{ bonus bHealPower,14; bonus bDelayRate,-10; bonus bUnbreakableWeapon; .@r = getrefine(); if(.@r > 5) { bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreMdefRaceRate,RC_Player,5; bonus bHealPower,5+(min(14,.@r)-5)*2; } if(.@r > 8) bonus5 bAutoSpellOnSkill,"AL_HEAL","AL_HEAL",10,100,1; if(.@r > 9) { bonus bHealPower,10; } },{},{} 1642,Staff_Of_Darkness,Staff Of Darkness,5,20,,0,100:120,,1,0,0x00818314,63,2,2,2,0,0,10,{ bonus bVariableCastrate,-5; bonus bMatkRate,15; bonus bInt,2; },{},{} @@ -1307,6 +1308,7 @@ 2030,Unity_Two-Handed_Staff,Unity Two-Handed Staff,5,20,,500,95:135,,1,1,0x800200,63,2,34,3,1,1,23,{ bonus bMatk,pow(getrefine(),2)*125/100; },{},{} 2032,Requiem_Wizardry_Staff,Requiem Wizardry Staff,5,20,,500,100:230,,1,,0xFFFFFFFF,63,2,2,4,100,1,10,{ .@r = getrefine(); .@b = 40; .@c = 5; if(.@r>=5){ .@b += (.@r-5)*15+20; .@c += .@r-5; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; bonus2 bIgnoreMdefRace2Rate,RC2_BioLab,(.@r-5)*10; },{},{} 2039,Illusion_Wizardry_Staff,Illusion Wizardry Staff,5,0,,2400,150:250,,1,2,0x00810204,58,2,34,4,100,1,23,{ .@val = min(getrefine(),10)/2; bonus bInt,(6+.@val); bonus bDex,(2+.@val); },{},{} +2049,Blue_Flame_Cane,Blue Flame Cane,5,20,,800,110:300,,1,2,0x00818314,63,2,34,4,175,1,23,{ .@r = getrefine; bonus bInt,7; bonus bMatkRate,.@r/2; bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; if (.@r>=11) bonus2 bSubSize,Size_All,20; if (.@r>=13) bonus bDelayrate,-15; bonus2 bMagicAtkEle,Ele_Fire,.@val; bonus2 bMagicAtkEle,Ele_Earth,.@val; bonus2 bMagicAtkEle,Ele_Water,.@val; bonus2 bMagicAtkEle,Ele_Holy,.@val; },{},{} 2051,Illusion_Survivor's_Staff,Illusion Survivor's Staff,5,0,,1200,100:240,,1,2,0x00818314,63,2,34,4,120,1,23,{ .@r = getrefine(); bonus bDex,2; bonus bInt,2; bonus bMaxHP,600; bonus bUnbreakableWeapon; bonus bMatkRate,(.@r/2); if (.@r >= 7) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if (.@r >= 9) { bonus2 bSubSize,Size_Small,15; bonus2 bSubSize,Size_Medium,15; if (.@r >= 11) { bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubDefEle,Ele_Wind,15; bonus2 bSubDefEle,Ele_Earth,15; bonus2 bSubDefEle,Ele_Fire,15; } } } },{},{} //=================================================================== // Shields @@ -1667,7 +1669,7 @@ 2453,Freyja_SSandal60,Freyja Sprit Sandals,4,20,,400,,5,,0,0xFFFFFFFF,63,2,64,,20,0,0,{ bonus bMaxHPrate,8; bonus bMaxSPrate,8; },{},{} 2454,Freyja_SSandal90,Freyja Sprit Sandals,4,20,,400,,5,,0,0xFFFFFFFF,63,2,64,,20,0,0,{ bonus bMaxHPrate,8; bonus bMaxSPrate,8; },{},{} 2455,Time_Keepr_Boots,Time Keeper's Boots,4,30000,,0,,17,,0,0xFFFFFFFF,63,2,64,,0,1,0,{ bonus bMdef,1; bonus bMaxHP,100; bonus bHPrecovRate,10; bonus bSPrecovRate,10; },{},{} -2456,Para_Team_Boots1,Eden Team Boots I,4,0,,0,,14,,0,0xFFFFFFFF,63,2,64,,12,0,0,{ bonus bHPrecovRate,10; bonus bSPrecovRate,2; },{},{} +2456,Para_Team_Boots1,Eden Team Boots I,4,0,,0,,14,,0,0xFFFFFFFF,63,2,64,,7,0,0,{ bonus bHPrecovRate,10; bonus bSPrecovRate,2; },{},{} 2457,Para_Team_Boots2,Eden Team Boots II,4,0,,0,,16,,0,0xFFFFFFFF,63,2,64,,26,0,0,{ bonus bHPrecovRate,12; bonus bSPrecovRate,4; },{},{} 2458,Para_Team_Boots3,Eden Team Boots III,4,0,,0,,18,,0,0xFFFFFFFF,63,2,64,,40,0,0,{ bonus bHPrecovRate,14; bonus bSPrecovRate,6; },{},{} 2459,Upg_Shoes,Upg Shoes,4,20,,200,,15,,1,0xFFFFFFFE,63,2,64,,0,1,0,{ bonus bMaxHPrate,3; },{},{} @@ -1772,7 +1774,7 @@ 2557,Freyja_SScarf60,Freyja Soul Scarf,4,20,,400,,4,,0,0xFFFFFFFF,63,2,4,,20,0,0,{ bonus bFlee,15; bonus2 bSubEle,Ele_Neutral,15; },{},{} 2558,Freyja_SScarf90,Freyja Soul Scarf,4,20,,400,,4,,0,0xFFFFFFFF,63,2,4,,20,0,0,{ bonus bFlee,15; bonus2 bSubEle,Ele_Neutral,15; },{},{} 2559,Time_Keepr_Manteau,Time Keeper's Manteau,4,30000,,0,,9,,0,0xFFFFFFFF,63,2,4,,1,1,0,{ bonus bMdef,1; bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,10; },{},{} -2560,Para_Team_Manteau,Eden Team Manteau I,4,0,,0,,14,,0,0xFFFFFFFF,63,2,4,,12,0,0,{ bonus2 bSubEle,Ele_Neutral,10; },{},{} +2560,Para_Team_Manteau,Eden Team Manteau I,4,0,,0,,14,,0,0xFFFFFFFF,63,2,4,,7,0,0,{ bonus2 bSubEle,Ele_Neutral,10; },{},{} 2561,Upg_Hood,Upg Hood,4,0,,100,,9,,1,0xFFFFFFFF,63,2,4,,0,1,0,{ bonus bMaxHPrate,3; },{},{} 2562,Upg_Muffler,Upg Muffler,4,20,,200,,13,,1,0xFFFFFFFE,63,2,4,,0,1,0,{ bonus bMaxHPrate,3; },{},{} 2563,Upg_Manteau,Upg Manteau,4,20,,300,,18,,1,0x006654E2,63,2,4,,0,1,0,{ bonus bMaxHPrate,3; },{},{} @@ -2140,6 +2142,7 @@ 2926,Vit_Glove_,Vit Glove,4,75000,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHP,100; bonus bMaxSP,20; bonus bMaxHP,(readparam(bVit)/10)*50; if(readparam(bVit)>=110) bonus bMaxHPrate,1; },{},{} 2927,Dex_Glove_,Dex Glove,4,75000,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHP,100; bonus bMaxSP,20; bonus bHit,(readparam(bDex)/10); if(readparam(bDex)>=110) bonus bLongAtkRate,1; },{},{} 2928,Luk_Glove_,Luk Glove,4,75000,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHP,100; bonus bMaxSP,20; bonus bCritical,(readparam(bLuk)/10); if(readparam(bLuk)>=110) bonus bCritAtkRate,1; },{},{} +2935,Sprint_Gloves,Sprint Gloves,4,20,,100,,0,,1,0x000FDF80,58,2,136,,1,0,0,{ bonus bVariableCastrate,-1; bonus bDelayrate,-1; },{},{} 2936,Recovery_Ring,Recovery Ring,4,20,,100,,5,,1,0xFFFFFFFF,63,2,136,,10,0,0,{ bonus bVit,1; bonus bMaxHP,250; bonus bMaxHPrate,5; bonus bHealPower2,5; },{},{} 2940,Ninja_Manual,Ninja Manual,4,0,,100,,0,,0,0x00000001,63,2,136,,0,0,0,{ bonus bMaxSP,100; skill "NJ_UTSUSEMI",1; skill "NJ_KOUENKA",1; skill "NJ_SYURIKEN",1; },{},{} 2941,Gunslinger_Manual,Gunslinger Manual,4,0,,100,,0,,0,0x00000001,63,2,136,,0,0,0,{ bonus bMaxSP,100; skill "GS_GLITTERING",1; skill "GS_ADJUSTMENT",1; skill "GS_MADNESSCANCEL",1; skill "GS_INCREASING",1; },{},{} @@ -3507,7 +3510,7 @@ 5327,Orc_Hero_Helm_C,Refined Helmet of Orc Hero,4,1,,0,,10,,0,0xFFFFFFFE,63,2,768,,0,0,178,{ bonus bStr,5; bonus bVit,3; },{},{} 5328,Evil_Wing_Ears_C,Evil Wing Ears C,4,1,,0,,4,,0,0xFFFFFFFF,63,2,512,,0,0,152,{ bonus bStr,1; },{},{} 5329,Dark_Blindfold_C,Dark Blindfold C,4,1,,0,,1,,0,0xFFFFFFFF,63,2,512,,0,0,187,{ bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Stun,500; },{},{} -5330,kRO_Drooping_Kitty_C,kRO Drooping Kitty C,4,1,,0,,9,,0,0xFFFFFFFE,63,2,256,,0,0,142,{ bonus bMdef,15; bonus2 bResEff,Eff_Curse,4000; bonus2 bResEff,Eff_Curse,1000; },{},{} +5330,kRO_Drooping_Kitty_C,kRO Drooping Kitty C,4,1,,0,,9,,0,0xFFFFFFFE,63,2,256,,0,0,142,{ bonus bMdef,15; bonus2 bResEff,Eff_Curse,4000; bonus2 bResEff,Eff_Stun,1000; },{},{} 5331,Corsair_C,Corsair C,4,1,,0,,14,,0,0xFFFFFFFE,63,2,256,,0,0,105,{ bonus bVit,3; bonus bInt,3; },{},{} 5332,Loki_Mask,Loki Mask,4,0,,200,,2,,0,0xFFFFFFFF,63,2,513,,20,0,346,{ bonus bFlee2,3; },{},{} 5333,Radio_Antenna,Radio Antenna,4,0,,1500,,2,,0,0xFFFFFFFF,63,2,256,,50,1,347,{ bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; skill "MG_LIGHTNINGBOLT",1; bonus4 bAutoSpellWhenHit,"MG_THUNDERSTORM",5,30,1; },{},{} @@ -3683,8 +3686,8 @@ 5503,Rabbit_Magic_Hat,Magic Rabit Hat,4,0,,800,,4,,0,0xFFFFFFFF,63,2,256,,0,1,497,{ bonus bDex,2; bonus bAgi,2; bonus bMdef,1; bonus bAspdRate,5; bonus bDelayRate,-4; },{},{} 5504,China_Wedding_Veil,Wedding Weil,4,20,,500,,5,,0,0xFFFFFFFF,63,2,768,,70,1,489,{ bonus bMdef,10; },{},{} 5505,Asara_Fairy_Hat,Asara Fairy Hat,4,0,,500,,2,,0,0xFFFFFFFF,63,2,768,,50,1,492,{ skill "DC_DONTFORGETME",1; bonus bDex,2; bonus bLuk,2; },{},{} -5506,Blue_Pajamas_Hat,Blue Night Cap,4,0,,100,,4,,0,0xFFFFFFFF,63,2,256,,0,1,501,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} -5507,Pink_Pajamas_Hat,Pink Night Cap,4,0,,100,,4,,0,0xFFFFFFFF,63,2,256,,0,1,502,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} +5506,Blue_Pajamas_Hat,Blue Night Cap,4,0,,100,,4,,0,0xFFFFFFFF,63,2,256,,0,1,501,{ bonus bAtkRate,5; bonus bMatkRate,5; },{},{} +5507,Pink_Pajamas_Hat,Pink Night Cap,4,0,,100,,4,,0,0xFFFFFFFF,63,2,256,,0,1,502,{ bonus bAtkRate,5; bonus bMatkRate,5; },{},{} 5508,Shark_Hat,Shark Hat,4,20,,500,,3,,0,0xFFFFFFFF,63,2,256,,0,1,503,{ bonus bStr,1; bonus bAgi,2; bonus bMdef,1; bonus2 bAddEle,Ele_Water,5; bonus2 bSubDefEle,Ele_Water,10; },{},{} 5509,Sting_Hat,Sting hat,4,20,,1000,,10,,0,0xFFFFFFFF,63,2,256,,0,1,504,{ bonus bStr,2; bonus bVit,1; bonus bMdef,3; bonus2 bAddEle,Ele_Fire,5; bonus2 bSubDefEle,Ele_Earth,5; bonus3 bAutoSpell,"WZ_EARTHSPIKE",1,10; },{},{} 5510,Shower_Cap,Shower Cap,4,20,,0,,4,,0,0xFFFFFFFF,63,2,256,,0,1,507,{ bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,RC_Fish,10; },{},{} @@ -3709,7 +3712,7 @@ 5529,Evil's_Bone_Hat,Satanic Bone Helm,4,20,,600,,6,,1,0xFFFFFFFF,63,2,768,,70,1,523,{ bonus bStr,2; bonus bInt,2; bonus bMdef,2; bonus2 bSubEle,Ele_Neutral,5; skill "WZ_FROSTNOVA",1; },{},{} 5530,Raven_Cap,Raven Cap,4,20,,100,,6,,1,0xFFFFFFFF,63,2,256,,30,1,524,{},{},{} 5531,B_Dragon_Hat,Baby Dragon Hat,4,45000,,100,,1,,1,0xFFFFFFFF,63,2,256,,0,1,525,{ bonus bDex,2; .@bonus = max(getskilllv("TF_DOUBLE"), 5); skill "TF_DOUBLE",.@bonus; bonus bDoubleRate,.@bonus * 5; },{},{} -5532,Pirate_Dagger_J,Pirate Dagger,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,0,1,327,{ bonus bShortWeaponDamageReturn,1; },{},{} +5532,Pirate_Dagger_J,Pirate Dagger,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,0,0,327,{ bonus bShortWeaponDamageReturn,1; },{},{} 5533,Emperor_Wreath_J,Emperor Wreath,4,20,,800,,3,,1,0xFFFFFFFF,63,2,256,,80,1,261,{ bonus bAllStats,1; },{},{} 5534,Fox_Hat_J,Fox Hat,4,20,,100,,1,,0,0xFFFFFFFF,63,2,513,,70,0,403,{ bonus bAgi,1; bonus bFlee2,2; },{},{} 5535,Side_Cap,Side Cap,4,20,,500,,6,,0,0xFFFFFFFF,63,2,256,,0,1,529,{ bonus bVit,1; bonus bDex,1; bonus bMdef,3; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3; },{},{} @@ -3725,7 +3728,7 @@ 5545,Aries_Diadem,Aries Diadem,4,20,,400,,3,,1,0xFFFFFFFF,63,2,256,,1,1,531,{ bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; } },{},{} 5546,Aries_Crown,Aries Crown,4,20,,400,,3,,1,0xFFFFFFFF,63,2,256,,1,1,532,{ bonus bLuk,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,2; bonus bLuk,1; } },{},{} 5547,RJC_Katusa,RJC Katusa Flower,4,20,,200,,1,,1,0xFFFFFFFF,63,2,256,,0,1,533,{ bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,"WZ_EARTHSPIKE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bVariableCastrate,"WZ_HEAVENDRIVE",-25; bonus2 bVariableCastrate,"WZ_EARTHSPIKE",-25; },{},{} -5548,Scarlet_Rose,Scarlet Rose,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,1,1,534,{ bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bMaxSP,30; },{},{} +5548,Scarlet_Rose,Scarlet Rose,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,1,0,534,{ bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bMaxSP,30; },{},{} 5549,Taurus_Diadem,Taurus Diadem,4,20,,300,,6,,0,0xFFFFFFFF,63,2,256,,70,1,535,{ bonus bDex,2; bonus bMatkRate,2; bonus bDelayRate,-2; if (getrefine()>6) { bonus bMatkRate,1; bonus bDex,1; } },{},{} 5550,Taurus_Crown,Taurus Crown,4,20,,300,,6,,0,0xFFFFFFFF,63,2,256,,70,1,536,{ bonus bAgi,2; bonus2 bSubClass,Class_All,2; bonus bDelayRate,-2; bonus2 bAddEff,Eff_Stun,2000; if(getrefine()>6) { bonus2 bSubClass,Class_All,1; bonus bStr,1; } },{},{} 5551,Holy_Egg_Hat,Holy Egg Hat,4,20,,0,,1,,0,0xFFFFFFFF,63,2,256,,0,1,537,{},{},{} @@ -3760,7 +3763,7 @@ 5580,Red_Beret,Red Beret,4,20,,100,,3,,0,0xFFFFFFFF,63,2,256,,0,0,559,{ bonus bAllStats,3; bonus bMdef,3; },{},{} 5581,Cancer_Diadem,Cancer Diadem,4,20,,300,,3,,0,0xFFFFFFFF,63,2,256,,70,1,560,{ bonus bInt,2; bonus2 bSubEle,Ele_Water,5; if(getrefine()>6) { bonus bMdef,1; bonus bHealPower,3; bonus bMatkRate,2; } },{},{} 5582,Cancer_Crown,Cancer Crown,4,20,,300,,3,,0,0xFFFFFFFF,63,2,256,,70,1,561,{ bonus bStr,2; bonus2 bSubEle,Ele_Water,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; bonus bFlee,10; } },{},{} -5583,Para_Team_Hat,Eden Team Hat I,4,0,,0,,5,,0,0xFFFFFFFF,63,2,256,,12,1,465,{},{},{} +5583,Para_Team_Hat,Eden Team Hat I,4,0,,0,,5,,0,0xFFFFFFFF,63,2,256,,7,1,465,{},{},{} 5584,Majestic_Evil_Horn,Majestic Evil Horns,4,0,,400,,2,,0,0xFFFFFFFF,63,2,256,,1,1,562,{ bonus2 bSubRace,RC_Demon,3; bonus2 bHPDrainRate,3,15; bonus2 bSPDrainRate,1,7; /*Gold PC Room bonus bSPGainValue,2; bonus bMagicSPGainValue,2; bonus2 bSubRace,RC_Demon,2;*/ },{},{} 5585,Rune_Hairband,Rune Cloth Circlet,4,20,,400,,1,,1,0xFFFFFFFF,63,2,768,,1,1,564,{ bonus2 bSubEle,Ele_Neutral,3; bonus bHit,5; bonus2 bHPDrainRate,30,10; bonus2 bSPDrainRate,10,5; },{},{} 5586,Mosquito_Coil,Mosquito Coil,4,20,,100,,1,,1,0xFFFFFFFF,63,2,256,,1,1,563,{ bonus2 bAddDamageClass,1627,100; bonus2 bAddDamageClass,1095,20; bonus2 bAddDamageClass,1160,20; bonus2 bAddDamageClass,1105,20; bonus2 bAddDamageClass,1097,20; bonus2 bAddDamageClass,1051,20; bonus2 bAddDamageClass,1053,20; bonus2 bAddDamageClass,1054,20; bonus2 bAddDamageClass,1048,20; },{},{} @@ -3920,7 +3923,7 @@ 5740,Sagittarius_Diadem,Sagittarius Diadem,4,20,,300,,3,,1,0xFFFFFFFF,63,2,256,,1,1,618,{ bonus bDex,2; bonus bMdef,3; bonus2 bSubEle,Ele_Fire,7; .@r = getrefine(); if (.@r>6) { bonus bVariableCastrate,-3; } if (.@r>7) { bonus5 bAutoSpell,"WZ_SIGHTRASHER",10,5,BF_MAGIC,0; } if (.@r>8) { bonus bVariableCastrate,-2; } if (.@r>9) { bonus bMatkRate,4; } },{},{} 5741,Im_Egg_Shell_Hat,Eternal Egg Shell,4,20,,0,,1,,0,0xFFFFFFFF,63,2,256,,10,1,101,{ bonus2 bAddItemGroupHealRate,IG_Potion,10; bonus bHealPower2,10; },{},{} 5742,Rudolf_Santa_Hat,Rudolph Santa Hat,4,20,,400,,5,,0,0xFFFFFFFF,63,2,256,,10,1,619,{ bonus2 bAddMonsterDropItem,538,100; bonus2 bAddMonsterDropItem,539,100; bonus2 bAddItemHealRate,538,100; bonus2 bAddItemHealRate,539,100; },{},{} -5743,Orange_Stem_Hat,Orange Stem Hat,4,20,,100,,0,,0,0x00000000,63,2,256,,1,0,620,{ bonus bLuk,3; },{},{} +5743,Orange_Stem_Hat,Orange Stem Hat,4,20,,100,,0,,0,0xFFFFFFFF,63,2,256,,1,0,620,{ bonus bLuk,3; },{},{} 5744,Capricorn_Crown,Capricorn Crown,4,20,,300,,3,,1,0xFFFFFFFF,63,2,256,,1,1,621,{ bonus bVit,2; bonus bDex,2; if (getrefine()>6) { bonus3 bAutoSpell,"TK_SEVENWIND",1,500; } },{},{} 5745,Capricorn_Diadem,Capricorn Diadem,4,20,,300,,3,,0,0xFFFFFFFF,63,2,256,,1,1,622,{ bonus bDex,2; bonus bMdef,5; bonus2 bSubEle,Ele_Earth,5; .@r = getrefine(); if (.@r>6) { bonus bInt,2; } if (.@r>7) { bonus bVariableCastrate,-3; } if (.@r>8) { bonus bHealPower2,4; } if (.@r>9) { bonus3 bAutoSpell,"BS_HAMMERFALL",5,5; } },{},{} 5746,Rune_Circlet,Rune Circlet,4,20,,100,,12,,1,0x00000080,56,2,256,,100,1,623,{ bonus bStr,1; bonus bInt,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,10; bonus bMatk,5; } },{},{} @@ -3932,7 +3935,7 @@ 5752,Midas_Whisper,Midas Whispers,4,20,,100,,12,,1,0x00040000,56,2,256,,100,1,629,{ bonus bStr,1; bonus bDex,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,5; bonus bAspd,1; } },{},{} 5753,Magic_Stone_Hat,Magic Stone Hat,4,20,,100,,12,,1,0x00000200,56,2,256,,100,1,630,{ bonus bInt,1; bonus bDex,1; bonus bMdef,5; if(readparam(bDex)>=120){ bonus bMatk,10; bonus bVariableCastrate,-2; } },{},{} 5754,Blazing_Soul,Burning Spirit,4,20,,100,,12,,1,0x00008000,56,2,256,,100,1,631,{ bonus bStr,1; bonus bVit,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,10; bonus bHit,3; } },{},{} -5755,Silent_Executer,Silent Enforcer,4,20,,100,,12,,0,0x00001000,56,2,513,,100,1,632,{ bonus bAgi,1; bonus bMdef,5; if(readparam(bAgi)>=120){ bonus bBaseAtk,10; bonus bFlee2,5; } },{},{} +5755,Silent_Executer,Silent Enforcer,4,20,,100,,12,,0,0x00001000,56,2,513,,100,0,632,{ bonus bAgi,1; bonus bMdef,5; if(readparam(bAgi)>=120){ bonus bBaseAtk,10; bonus bFlee2,5; } },{},{} 5756,Wind_Whisper,Wispers of Wind,4,20,,100,,12,,1,0x00010000,56,2,256,,100,1,633,{ bonus bInt,1; bonus bDex,1; bonus bMdef,5; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bFlee,3; } },{},{} 5757,Schmidt_Helm,Reissue Schmitz Helm,4,20,,100,,12,,1,0x00004000,56,2,768,,100,1,634,{ bonus bVit,2; bonus bInt,1; bonus bMdef,5; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bDef,5; } },{},{} 5758,Dying_Swan,Resting Swan,4,20,,100,,17,,1,0x00080000,56,0,256,,100,1,635,{ bonus bInt,1; bonus bLuk,1; bonus bMdef,5; bonus bLongAtkRate,5; bonus2 bSkillUseSP,"WA_SWING_DANCE",10; bonus2 bSkillUseSP,"WA_SYMPHONY_OF_LOVER",10; },{},{} @@ -4069,7 +4072,11 @@ 5918,Gambler_Seal,Gambler Seal,4,0,,500,,,,0,0xFFFFFFFF,63,2,512,,70,0,1202,{ .@dex = readparam(bDex); .@luk = readparam(bLuk); .@critical = 3 + (.@luk / 10); .@critical_dmg = 3 - (.@dex/10) * 2; .@sub_arrowstorm = 10; .@sub_gateofhell = 10; bonus bBaseAtk,(.@luk/10)*2; bonus bMatk,(.@luk / 10) * 2; if (.@luk > 107) { .@critical += 5; .@critical_dmg += 10; } if (.@luk > 119) { .@critical += 10; .@critical_dmg += 17; .@sub_arrowstorm += 30; .@sub_gateofhell += 30; } bonus bCritical,.@critical; bonus bCritAtkRate,.@critical_dmg; bonus2 bSubSkill,"RA_ARROWSTORM",.@sub_arrowstorm; bonus2 bSubSkill,"SR_GATEOFHELL",.@sub_gateofhell; },{},{} 5919,Camellia_Hair_Pin,Camellia Hair Pin,4,0,,1000,,,,1,0xFFFFFFFF,63,2,256,,50,1,1203,{ bonus bMdef,20; bonus3 bAutoSpell,"AL_PNEUMA",1,30+getrefine()*5; hateffect(HAT_EF_CAMELLIA_HAIR_PIN,true); /* CONFIRM The Rate*/ },{},{ hateffect(HAT_EF_CAMELLIA_HAIR_PIN,false); } 5920,Medical_Boots,Medical Boots,4,0,,300,,10,,0,0xFFFFFFFF,63,2,64,,10,1,,{ .@r = getrefine(); bonus bHealPower,10+((.@r/2) * 2); bonus2 bSkillUseSP,"AB_CHEAL",(.@r * 5); },{},{} +5933,Crow_Tengu_Mask,Crow Tengu Mask,4,20,,300,,0,,0,0xFFFFFFFF,63,2,512,,80,0,1287,{ bonus2 bAddSize,Size_All,1; bonus bLongAtkRate,2; if(readparam(bStr)>=108) { bonus2 bAddSize,Size_All,1; bonus bLongAtkRate,2; } if(readparam(bStr)>=120) { bonus2 bAddSize,Size_All,2; bonus bLongAtkRate,3; } },{},{} +5937,Flying_Helmet,Flying Helmet,4,1,,300,,5,,1,0xFFFFFFFF,63,2,256,,20,1,820,{ bonus bMdef,5; bonus bHPGainValue,100; bonus2 bSPGainRace,RC_Dragon,5; .@r = getrefine(); if (.@r>=5) { bonus2 bSubRace,RC_Dragon,5; } if (.@r>=7) { bonus2 bSubRace,RC_Dragon,5; } },{},{} +5938,Octopus_Hat_,Octopus Hat,4,20,,880,,8,,1,0xFFFFFFFF,63,2,256,,60,1,538,{ bonus bMdef,8; bonus bUnbreakableHelm,1; bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; .@r = getrefine(); if (.@r>=5) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; } if (.@r>=6) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; } if (.@r>=7) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; } },{},{} 5943,Owlviscount_Silk_Hat,Owl Viscount Silk Hat,4,0,,500,,15,,1,0xFFFFFFFF,63,2,256,,70,1,1323,{ bonus bInt,1; bonus bAspdRate,10; .@r = getrefine(); bonus bMatk,7*.@r; autobonus "{ .@r = getrefine(); bonus bAspdRate,(.@r >= 9 ? 40 : ((.@r >= 7) ? 10 : ((.@r >= 5) ? 5 : 1))); }",.@r*20,30000,BF_MAGIC,"{ specialeffect2 EF_SPELLBREAKER; }"; },{},{} +5945,Well_Chewed_Pencil,Well-Chewed Pencil,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,30,0,931,{ bonus bStr,1; autobonus "{ bonus bAtkEle,Ele_Fire; }",50,60000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; /* Unknow rate and specialeffect */ },{},{} 5966,KarduiEar,KarduiEar,4,0,,300,,,,0,0xFFFFFFFF,63,2,512,,70,0,1357,{ .@dex = readparam(bDex); bonus bMatk,(.@dex > 10) ? .@dex/10*2 : 0; if (.@dex > 107) { bonus bVariableCastrate,-10; bonus bMatk,60; } if (.@dex > 119) { bonus bVariableCastrate,-5; bonus bMatk,100; } },{},{} 5967,FlyingGalapago,Flying Galapago,4,0,,500,,,,0,0xFFFFFFFF,63,2,1,,110,0,1358,{ set .@bblvl,max(getskilllv("HT_BLITZBEAT"),1); set .@luk,min(readparam(bLuk),120); bonus bAgi,1; bonus3 bAutoSpell,"HT_BLITZBEAT",.@bblvl,50 + (.@luk / 3) + (.@bblvl * 2); bonus2 bSkillAtk,"HT_BLITZBEAT",getskilllv("HT_STEELCROW") * 40; },{},{} 5968,DVAngelNurseCap,DVAngelNurseCap,4,0,,500,,10,,1,0xFFFFFFFF,63,2,256,,50,1,1359,{ if (BaseClass == Job_Acolyte) bonus bHealPower,3; bonus bNoCastCancel; .@r = getrefine(); bonus bHealPower,(.@r > 8) ? 12 : ((.@r > 6) ? 9 : ((.@r > 4) ? 6 : 0)); },{},{} @@ -4180,7 +4187,7 @@ 6094,Traditional_Cookie,Traditional Sweets,3,20,,10,,,,,,,,,,,,,{},{},{} 6095,Flavored_Alcohol,Flavored Alcohol,3,1000,,10,,,,,,,,,,,,,{},{},{} 6096,Fish_With_Blue_Back,Fish With Blue Back,3,20,,10,,,,,,,,,,,,,{},{},{} -6097,Pumpkin_Pie_,Pumpkin Pie,3,20,,10,,,,,,,,,,,,,{},{},{} +6097,Pumpkin_Pie_,Pumpkin Pie,3,1000,,10,,,,,,,,,,,,,{},{},{} 6098,Small_Snow_Flower,Small Snow Flower,3,1000,,10,,,,,,,,,,,,,{},{},{} 6099,Grilled_Rice_Cake,Grilled Rice Cake,3,20,,10,,,,,,,,,,,,,{},{},{} 6100,Damp_Darkness,Damp Darkness,3,1000,,10,,,,,,,,,,,,,{},{},{} @@ -4190,7 +4197,7 @@ 6104,Big_Cell,Big Cell,3,1000,,10,,,,,,,,,,,,,{},{},{} 6105,Morning_Dew,Morning Dew,3,20,,10,,,,,,,,,,,,,{},{},{} 6106,Well_Ripened_Berry,Well Ripened Berry,3,20,,10,,,,,,,,,,,,,{},{},{} -6107,Sunset_On_The_Rock,Sunset On The Rock,3,20,,10,,,,,,,,,,,,,{},{},{} +6107,Sunset_On_The_Rock,Sunset On The Rock,3,1000,,10,,,,,,,,,,,,,{},{},{} 6108,Apple_Pudding,Apple Pudding,3,1000,,10,,,,,,,,,,,,,{},{},{} 6109,Plant_Neutrient,Plant Neutrient,3,20,,10,,,,,,,,,,,,,{},{},{} 6110,Vital_Flower,Vital Flower,3,1000,,10,,,,,,,,,,,,,{},{},{} @@ -5421,12 +5428,12 @@ 7449,Bloody_Page,Bloody Page,3,681,,10,,,,,,,,,,,,,{},{},{} 7450,Piece_Of_Bone_Armor,Skeletal Armor Piece,3,2050,,10,,,,,,,,,,,,,{},{},{} 7451,Scale_Of_Red_Dragon,Fire Dragon Scale,3,1852,,10,,,,,,,,,,,,,{},{},{} -7452,Yellow_Spice,Yellow Spice,3,1000,,10,,,,,,,,,,,,,{},{},{} -7453,Sweet_Sauce,Sweet Sauce,3,700,,10,,,,,,,,,,,,,{},{},{} -7454,Plain_Sauce,Savory Sauce,3,700,,10,,,,,,,,,,,,,{},{},{} -7455,Hot_Sauce,Spicy Sauce,3,700,,10,,,,,,,,,,,,,{},{},{} -7456,Red_Spice,Red Spice,3,1000,,10,,,,,,,,,,,,,{},{},{} -7457,Cooking_Oil,Cooking Oil,3,500,,10,,,,,,,,,,,,,{},{},{} +7452,Yellow_Spice,Yellow Spice,3,750,,10,,,,,,,,,,,,,{},{},{} +7453,Sweet_Sauce,Sweet Sauce,3,525,,10,,,,,,,,,,,,,{},{},{} +7454,Plain_Sauce,Savory Sauce,3,525,,10,,,,,,,,,,,,,{},{},{} +7455,Hot_Sauce,Spicy Sauce,3,525,,10,,,,,,,,,,,,,{},{},{} +7456,Red_Spice,Red Spice,3,750,,10,,,,,,,,,,,,,{},{},{} +7457,Cooking_Oil,Cooking Oil,3,375,,10,,,,,,,,,,,,,{},{},{} 7458,Baphomet's_Horn,Fortune Horn,3,2,,10,,,,,,,,,,,,,{},{},{} 7459,RAMADAN_,Idul Fitri Card,3,2,,10,,,,,,,,,,,,,{},{},{} 7460,Niflheim_Ticket,Niflheim Express Ticket,3,2,,10,,,,,,,,,,,,,{},{},{} @@ -5451,7 +5458,7 @@ 7479,Cookbook08,Level 8 Cookbook,3,1000,,10,,,,,,,,,,,,,{},{},{} 7480,Cookbook09,Level 9 Cookbook,3,1000,,10,,,,,,,,,,,,,{},{},{} 7481,Cookbook10,Level 10 Cookbook,3,1000,,10,,,,,,,,,,,,,{},{},{} -7482,Pot,Pot,3,200,,10,,,,,,,,,,,,,{},{},{} +7482,Pot,Pot,3,150,,10,,,,,,,,,,,,,{},{},{} 7483,Key_Of_Seal,Key of the Seal,3,0,,0,,,,,,,,,,,,,{},{},{} 7484,Warrior_Symbol,Symbol of a Brave Warrior,3,0,,10,,,,,,,,,,,,,{},{},{} 7485,2nd_Floor_Pass,Cloud General,3,0,,10,,,,,,,,,,,,,{},{},{} @@ -5760,7 +5767,7 @@ 7821,Green_Apple,Green Apple,3,20,,10,,,,,,,,,,,,,{},{},{} 7822,Whole_Barbecue,Whole Barbecue,3,20,,10,,,,,,,,,,,,,{},{},{} 7823,Meat_Veg_Skewer,Meat Veg Skewer,3,20,,10,,,,,,,,,,,,,{},{},{} -7824,Spirit_Liquor,Spirit Liquor,3,20,,10,,,,,,,,,,,,,{},{},{} +7824,Spirit_Liquor,Spirit Liquor,3,1000,,10,,,,,,,,,,,,,{},{},{} 7825,Heroic_Stone,Heroic Stone,3,20,,10,,,,,,,,,,,,,{},{},{} 7826,Continental_Guard_Paper,Continental Guard Paper,3,0,,0,,,,,,,,,,,,,{},{},{} 7827,Mineral_Report,Mineral Evals,3,0,,0,,,,,,,,,,,,,{},{},{} @@ -6047,6 +6054,12 @@ 9113,Skelion_Egg,Skelion Egg,7,20,,0,,,,,,,,,,,,,{},{},{} 9114,Pouring_Egg,Pouring Egg,7,20,,0,,,,,,,,,,,,,{},{},{} 9115,Bacsojin2_Egg_,Bacsojin Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9116,Rigid_Nightmare_Terror_Egg,Rigid Nightmare Terror Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9117,Contaminated_Wanderer_Egg,Contaminated Wanderer Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9118,Aliot_Egg,Aliot Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9119,Alicel_Egg,Alicel Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9120,Aliza_Egg,Aliza Egg,7,20,,0,,,,,,,,,,,,,{},{},{} +9121,Orc_Hero_Egg_,Orc Hero Egg,7,20,,0,,,,,,,,,,,,,{},{},{} //=================================================================== // Pet Accessories //=================================================================== @@ -6258,6 +6271,10 @@ 11602,Catnip_Fruit,Catnip Fruit,0,15,,1,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(10,40),0; },{},{} 11601,Delicious_Anchovy,Delicious Anchovy,0,20,,30,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(30,46),0; },{},{} 11605,Cookies_Bat,Cookie Bat,0,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(50,100),0; /*TODO*/ },{},{} +11621,Red_Syrup,Red Syrup,0,800,400,7,,,,,0xFFFFFFFF,63,2,,,60,,,{ itemheal 325,0; },{},{} +11622,Yellow_Syrup,Yellow Syrup,0,1200,600,10,,,,,0xFFFFFFFF,63,2,,,60,,,{ itemheal 900,0; },{},{} +11623,White_Syrup,White Syrup,0,1500,750,14,,,,,0xFFFFFFFF,63,2,,,60,,,{ itemheal 1800,0; },{},{} +11624,Blue_Syrup,Blue Syrup,0,7000,3500,10,,,,,0xFFFFFFFF,63,2,,,60,,,{ itemheal 0,180; },{},{} // 11701,Girl_Bunch_Of_Flower,Girl's Bouquet,0,20,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(105,145),0; },{},{} 11702,Moon_Cookie,Moon Cookie,0,0,,300,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} @@ -8700,7 +8717,7 @@ 15006,Freyja_SRobe90,Freyja Soul Robe90,4,0,,300,,7,,0,0xFFFFFFFF,63,2,16,,20,0,0,{ bonus bMaxHP,700; },{},{} 15007,Time_Keepr_Robe,Time Keeper Robe,4,30000,,0,,62,,0,0xFFFFFFFF,63,2,16,,1,1,0,{ bonus bMdef,1; bonus bStr,2; bonus bMaxHP,200; },{},{} 15008,Flame_Sprits_Armor__,Flame Sprits Armor,4,20,,1000,,25,,0,0xFFFFFFFF,63,2,16,,1,1,0,{ bonus bMdef,1; bonus bDefEle,Ele_Fire; bonus2 bSubDefEle,Ele_Earth,4; },{},{} -15009,Para_Team_Uniform1,Eden Team Uniform I,4,0,,0,,35,,0,0xFFFFFFFF,63,2,16,,12,0,0,{ bonus bMaxHP,100; bonus bMaxSP,10; },{},{} +15009,Para_Team_Uniform1,Eden Team Uniform I,4,0,,0,,35,,0,0xFFFFFFFF,63,2,16,,7,0,0,{ bonus bMaxHP,100; bonus bMaxSP,10; },{},{} 15010,Para_Team_Uniform2,Eden Team Uniform II,4,0,,0,,46,,0,0xFFFFFFFF,63,2,16,,26,0,0,{ bonus bMaxHP,200; bonus bMaxSP,20; },{},{} 15011,Para_Team_Uniform3,Eden Team Uniform III,4,0,,0,,58,,0,0xFFFFFFFF,63,2,16,,40,0,0,{ bonus bMaxHP,300; bonus bMaxSP,30; bonus bMdef,5; },{},{} 15012,Puente_Robe,Puente Robe,4,12000,,400,,42,,1,0xFFFFFFFF,63,2,16,,22,1,0,{ bonus bFixedCastrate,-3; bonus bHealPower,5; },{},{} @@ -8761,8 +8778,11 @@ 15068,Im_Angel's_Protection,Advanced Angelic Protection,4,10000,,600,,40,,1,0x00000001,63,2,16,,99,1,0,{ bonus bMdef,30; },{},{} 15069,Suit_Of_Sid,Suit Of Sid,4,20,,1000,,30,,0,0xFFFFFFFF,63,2,16,,0,1,0,{},{},{} 15070,Clothes_of_Happiness,Clothes of Happiness,4,10,,1000,,5,,1,0xFFFFFFFF,63,2,16,,1,1,,{ bonus bMdef,5; bonus bLuk,getrefine(); },{},{} +15071,Valkyrian_Robe,Valkyrian Robe,4,20,,2800,,55,,1,0x000FFF80,58,2,16,,1,1,0,{ bonus bAllStats,1; bonus bUnbreakableArmor,1; if(BaseClass==Job_Mage||BaseClass==Job_Archer||BaseClass==Job_Acolyte) bonus2 bResEff,Eff_Silence,5000; else if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief) bonus2 bResEff,Eff_Stun,5000; },{},{} +15072,Nectar_Suit,Nectar Suit,4,20,,300,,35,,1,0xFFFFFFFF,63,2,16,,1,1,0,{ bonus bVit,3; bonus bMdef,5; bonus bMaxHPrate,(getrefine()/2); bonus bMaxSPrate,(getrefine()/2); },{},{} 15073,Anti_Magic_Suit,Anti-Magic Suits,4,10,,1500,,50,,1,0xFFFFFFFF,63,2,16,,99,1,0,{ .@r = getrefine(); bonus bMaxHPrate,5+((.@r >= 9) ? 2 : 0); bonus bMdef,10+((.@r >= 7) ? 5 : 0); },{},{} 15074,Geffen_Mage_Robe,Geffen Magic Robe,4,10,,1000,,40,,1,0xFFFFFFFF,63,2,16,,99,1,0,{ .@r = getrefine(); bonus bUseSPrate,-10-((.@r>=7) ? 5: 0); bonus bVariableCastrate,15-((.@r>=9) ? 5: 0); bonus bNoCastCancel2; },{},{} +15087,Azure_Dragon_Armor,Azure Dragon Armor,4,20,,500,,55,,1,0xFFFFFFFF,63,2,16,,70,1,0,{ bonus bDefEle,Ele_Water; bonus bMdef,5; bonus2 bAddEle,Ele_Water,10; },{},{} 15088,School_Uniform,School Uniform,4,20,,500,,25,,1,0xFFFFFFFF,63,2,16,,0,1,0,{ bonus bAgi,1; bonus bLuk,1; bonus bMaxHP,BaseLevel*3; bonus bMaxSP,BaseLevel/2; },{},{} 15089,Menswear,Menswear,4,10,,300,,40,,0,0xFFFFFFFE,63,2,16,,80,1,,{ .@r = getrefine(); bonus bAspdRate,3+((.@r>=7)?2:0); bonus bDelayrate,-3-((.@r>=7)?2:0); bonus bVariableCastrate,-3-((.@r>=7)?2:0); },{},{} 15090,Armor_Of_Gray,Armor of Gray,4,10,,2400,,90,,1,0x000654E2,56,2,16,,120,1,0,{ bonus bMdef,10; bonus2 bSubEle,Ele_Holy,10+getrefine()*2; },{},{} @@ -8775,20 +8795,26 @@ 15098,Hero_Taget_Suits,Hero Target Suit,4,10,,200,,60,,1,0x00080808,56,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; .@r = getrefine(); bonus bAllStats,1; bonus5 bAutoSpell,"AC_CONCENTRATION",10,(5+.@r)*5,BF_WEAPON,0; bonus5 bAutoSpell,"AC_DOUBLE",10,(5+.@r)*5,BF_WEAPON,1; },{},{} 15100,Frozen_Breastplate,Frozen Breastplate,4,20,,1500,,20,,1,0xFFFFFFFF,63,2,16,,130,1,0,{ bonus bDefEle,Ele_Water; },{},{} 15101,Harden_Breastplate,Hardened Breastplate,4,20,,1500,,20,,1,0xFFFFFFFF,63,2,16,,130,1,0,{ bonus bDefEle,Ele_Earth; },{},{} +15102,Hunter_Mail,Hunter Mail,4,20,,500,,30,,1,0xFFFFFFFF,63,2,16,,50,1,0,{ .@r = getrefine(); if (.@r>5) .@a = (.@r-5); else .@a = 0; bonus2 bAddRace,RC_Brute,3+.@a; bonus2 bMagicAddRace,RC_Brute,3+.@a; },{},{} 15103,Kirin_Armor,Kirin Armor,4,10,,500,,55,,1,0xFFFFFFFF,63,2,16,,70,,,{ bonus bDefEle,Ele_Holy; },{},{} 15104,FishingMan_Mail,FishingMan Mail,4,10,,500,,30,,1,0xFFFFFFFF,63,2,16,,50,,,{ bonus2 bAddRace,RC_Fish,10; bonus2 bMagicAddRace,RC_Fish,10; .@r = getrefine(); if(.@r>5){ bonus2 bAddRace,RC_All,.@r; bonus2 bMagicAddRace,RC_All,.@r; } },{},{} 15105,Kaftan,Kaftan,4,20,,400,,13,,1,0xFFFFFFFF,63,2,16,,0,1,0,{ bonus bMdef,3; bonus2 bSubRace,RC_Demon,5; bonus2 bSubRace,RC_Undead,5; },{},{} +15106,Engineer_Mail,Engineer Mail,4,20,,500,,30,,1,0xFFFFFFFF,63,2,16,,50,1,0,{ .@r = getrefine(); bonus2 bAddRace,RC_Formless,3; bonus2 bMagicAddRace,RC_Formless,3; if (.@r>5) { bonus2 bAddRace,RC_Formless,.@r-5; bonus2 bMagicAddRace,RC_Formless,.@r-5; } },{},{} +15108,Venomous_Insect_Armor,Venomous Insect Armor,4,20,,500,,55,,1,0xFFFFFFFF,63,2,16,,70,1,0,{ bonus bDefEle,Ele_Poison; bonus bMdef,5; bonus2 bAddEle,Ele_Poison,10; },{},{} 15110,Supplement_Part_Str,Supplement Part Str,4,25000,,2000,,80,,,0x00000400,56,2,16,,100,1,0,{ bonus2 bAddClass,Class_All,5+getrefine()/4; },{},{} 15111,Upgrade_Part_Plate,Reinforced Parts - Gloves,4,10,,3000,,110,,,0x00000400,56,2,16,,100,1,,{ bonus bUnbreakableArmor; bonus2 bSubSize,0,10; bonus2 bSubSize,1,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubSize,2,10; }; if(.@r>=9){ bonus2 bSubSize,0,5; bonus2 bSubSize,1,5; } },{},{} 15116,Airship_Armor,Airship's Armor,4,10,,700,,100,,0,0xFFFFFFFF,63,2,16,,125,0,,{ bonus bMaxHP,1000; bonus bMaxSP,100; bonus bMdef,10; bonus bAllStats,1; },{},{} 15117,Felock_Armor,Felrock's Armor,4,10,,750,,70,,0,0xFFFFFFFF,63,2,16,,125,1,,{ bonus bMaxHP,500; bonus bMaxSP,50; bonus bMdef,10; bonus bAllStats,1; .@r = getrefine(); if(.@r>=7) { bonus bMaxHP,500; bonus bMaxSP,50; } if(.@r>=9) { bonus bMaxHP,200; bonus bMaxSP,20; } if(.@r>=12) { bonus bMaxHP,300; bonus bMaxSP,30; } },{},{} 15121,Robe_Of_Sarah,Sarah's Battle Robe,4,10,,800,,35,,1,0xFFFFFFFF,63,2,16,,145,1,,{ autobonus "{ bonus bMatk,getrefine()*8; }",3,10000,BF_MAGIC; },{},{} 15123,Whikebain_Suit,Whikebain Suit,4,0,,900,,56,,1,0x00001000,56,2,16,,105,1,,{ .@r = getrefine(); bonus bCritAtkRate,(.@r>=7)?(6):((.@r>=5)?(4):(0)); bonus3 bAutoSpell,"DC_WINKCHARM",1,10; /* Confirm: Success rate */ },{},{} +15125,Female_Diver_Suit,Female Diver's Suit,4,20,,300,,20,,1,0xFFFFFFFF,63,2,16,,80,1,0,{ bonus2 bAddMonsterDropItem,579,500+(getrefine()*100); if (getrefine()>=7) { bonus bHPrecovRate,-100; bonus bHPGainValue,100; } },{},{} 15126,Female_Poring_Balloon,Private Doram Suits,4,20,,700,,80,,1,0x80000000,7,2,16,,100,1,,{ bonus bMaxHP,500; bonus bMaxSP,100; .@r = getrefine()/3; bonus bDex,.@r; bonus bInt,.@r; },{},{} 15128,Excelion_Suit,Excelion Suit,4,20,,1000,,100,,0,0xFFFFFFFF,63,2,16,,99,1,,{ bonus bVit,6 + (BaseLevel > 129 ? 4 : 0); bonus bMaxHPrate,(getrefine() / 3) * 4; bonus bUnbreakableArmor; },{},{} 15129,Blue_Bellflower_Hat,Luxury Doram Suit,4,20,,800,,100,,1,0x80000000,7,2,16,,140,1,,{ bonus bMaxHPrate,10; bonus bMaxSPrate,10; .@r = getrefine()/2; bonus bDex,.@r; bonus bInt,.@r; },{},{} 15138,Aegir_Armor,Aegir Armor,4,10,,1600,,25,,1,0xFFFFFFFF,63,2,16,,40,1,,{ bonus bMaxHP,500; bonus bMaxSP,50; bonus bUnbreakableArmor; },{},{} 15141,Rift_Ancient_Armor,Rift Ancient Armor,4,10,,500,,30,,1,0xFFFFFFFF,63,2,16,,100,1,,{ .@r = getrefine(); bonus bMaxHP,(.@r >= 9 ? 1500 : .@r >= 7 ? 900 : 500); bonus bMaxSP,-100; },{},{} +15143,Vermin_Cloth,Vermin Cloth,4,10,,1200,,30,,1,0xFFFFFFFF,63,2,16,,70,1,0,{ .@r = getrefine(); bonus bMdef,5+.@r; bonus2 bSubRace,RC_Plant,(5+.@r); },{},{} +15144,Agriculture_Clothes,Agriculture Clothes,4,10,,1200,,30,,1,0xFFFFFFFF,63,2,16,,70,1,0,{ .@r = getrefine(); bonus bMdef,5+.@r; bonus2 bSubRace,RC_Insect,5+.@r; },{},{} 15145,EvilDragon_Armor,Evil Dragon Armor,4,0,,4000,,60,,1,0xFFFFFFFF,63,2,16,,,1,,{ .@r = getrefine(); bonus2 bHPDrainRate,100,(.@r>=10)?(3):((.@r>=9)?(4):((.@r>=8)?(6):(0))); bonus2 bSPDrainRate,100,(.@r>=10)?(5):((.@r>=9)?(3):((.@r>=8)?(2):(0))); /* Confirm: Success rate and it says no effect if with Rideword, Vanargandr Helm, or Piece Of Angent Skin */ },{},{} 15146,Flattery_Robe,Flattery Robe,4,20,,100,,0,,1,0xFFFFFFFF,63,2,16,,100,1,,{ skill "SM_ENDURE",1; .@i = BaseLevel; bonus bMatk,(.@i>=140)?(150):((.@i>=120)?(100):(50)); },{},{} 15147,Invective_Robe,Invective Robe,4,20,,100,,0,,1,0xFFFFFFFF,63,2,16,,100,1,,{ skill "AC_CONCENTRATION",1; .@i = getrefine()*4; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,.@i; bonus2 bIgnoreDefRaceRate,RC_Demon,.@i; bonus2 bIgnoreDefRaceRate,RC_Undead,.@i; },{},{} @@ -8802,7 +8828,11 @@ 15162,Lounge_Suit,Lounge Suit,4,20,,300,,40,,1,0xFFFFFFFE,63,2,16,,80,1,,{ bonus bAspdRate,3; bonus bCastrate,-3; bonus bDelayrate,-3; if(getrefine() > 6) { bonus bAspdRate,2; bonus bCastrate,-2; bonus bDelayrate,-2; } },{},{} 15163,Fictitious_Robe,Agenda Robe,4,20,,100,,0,,1,0xFFFFFFFF,63,2,16,,100,1,,{ skill "SA_SPELLBREAKER",1; if (BaseLevel >= 140) { .@val = 14; } else if (BaseLevel >= 120) { .@val = 9; } else { .@val = 5; } bonus bMatkRate,.@val; },{},{} 15164,Consultative_Robe,Consultation Robe,4,20,,100,,0,,1,0xFFFFFFFF,63,2,16,,100,1,,{ .@r = getrefine(); bonus bVit,5; skill "PA_SACRIFICE",1; bonus2 bSubEle,Ele_Dark,.@r*3; bonus2 bSubEle,Ele_Fire,.@r*3; },{},{} +15165,Pure_White_Marching_Hat,Pure White Marching Hat,4,20,,300,,0,,1,0xFFFFFFFF,63,2,256,,60,1,1470,{ .@r = getrefine(); bonus bStr,2; autobonus "{ bonus bAtkEle,Ele_Ghost; }",5+.@r,60000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; /* Unknow Rates */ },{},{} +15166,Rosary_Necklace,Rosary Necklace,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,60,0,1471,{ bonus bFlee2,2; bonus bHealPower,3; },{},{} +15169,Kardui_Robe,Kardui Robe,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,90,1,0,{ bonus bMatk,10; bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; if(getrefine()>=7) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(getrefine()>=8) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; bonus bUnbreakableArmor,1; } if(getrefine()>=9) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } },{},{} 15174,Surfer_Swimsuit,Surfer Swimsuit,4,20,,100,,1,,1,0xFFFFFFFF,63,2,16,,40,1,,{ bonus bMaxHPrate,(getrefine()/3)+5; bonus bMaxSPrate,(getrefine()/3)+5; },{},{} +15175,Flame_Dragon_Armor,Flame Dragon Armor,4,20,,400,,100,,1,0xFFFFFFFF,63,2,16,,90,1,0,{ .@r = getrefine(); if (.@r>=9) .@val = 20; else if (.@r>=7) .@val = 10; bonus bAllStats,1; bonus bHit,10+.@val; bonus2 bAddClass,Class_Boss,.@val; },{},{} 15176,Vigilante_Suit,Vigilante Suit,4,0,,500,,50,,0,0x00020000,56,2,16,,100,1,0,{ .@r = getrefine(); bonus bDex,5; bonus bLongAtkRate,3*(.@r/2); if (.@r>=9) bonus2 bSkillAtk,"SC_TRIANGLESHOT",20; },{},{} 15177,Elemental_Robe,Elemental Robe,4,0,,500,,40,,0,0x00010000,56,2,16,,100,1,0,{ .@r = getrefine(); bonus bAspdRate,10; bonus bMatk,5*(.@r/2); if (.@r>=9) bonus3 bAutoSpell,"MG_THUNDERSTORM",max(5,getskilllv("MG_THUNDERSTORM")),50; },{},{} 15178,Golden_Ninja_Suit,Golden Ninja Suit,4,0,,500,,50,,0,0x20000000,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bflee,5*(.@r/2); if (.@r>=9) bonus2 bSkillAtk,"KO_HAPPOKUNAI",20; },{},{} @@ -8815,12 +8845,27 @@ 15185,Para_Team_Uniform160,Awakened Eden Group Uniform V,4,20,,0,,100,,0,0xFFFFFFFF,63,2,16,,160,,,{ bonus bAllStats,2; bonus bMaxHP,1500; bonus bMaxSP,150; bonus bMdef,15; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; },{},{} 15186,Kafra_Uniform,Kafra Uniform,4,20,,500,,40,,1,0xFFFFFFFF,63,2,16,,1,1,,{ bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; .@r = getrefine(); bonus bMaxHP,100*.@r; bonus bMaxSP,20*.@r; bonus bMaxHPrate,(3*(.@r>=7)+5*(.@r>=9)); bonus bMaxSPrate,(3*(.@r>=7)+5*(.@r>=9)); if(.@r>=12){ bonus bHPrecovRate,100; bonus bSPrecovRate,100; } },{},{} 15189,Einherjar_Armor,Einherjar Armor,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,90,1,,{ bonus bMdef,5; bonus bBaseAtk,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=8){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=9){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } },{},{} +15191,Khalitzburg_Knight_Armor,Khalitzburg Knight Armor,4,20,,100,,45,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ bonus bLongAtkRate,2*getrefine(); bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; },{},{} 15195,Illusion_Puente_Robe,Illusion Puente Robe,4,20,,400,,52,,1,0xFFFFFFFF,63,2,16,,99,1,0,{ bonus bFixedCastrate,-3; .@r = getrefine(); bonus bHealPower2,(5+.@r); bonus bAddItemHealRate,(5+.@r); },{},{} +15204,Abyss_Dress,Abyss Dress,4,10,,400,,120,,0,0xFFFFFFFF,63,2,16,,90,1,0,{ .@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_dark; if (.@r>=5) { .@val = 10; if (.@r>=7) { .@val += 15; if (.@r>=9) { .@val += 15; } } bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bMagicAddEle,Ele_Dark,.@val; bonus2 bMagicAddEle,Ele_Undead,.@val; bonus2 bAddRace,RC_Undead,.@val; bonus2 bAddRace,RC_Demon,.@val; bonus2 bMagicAddRace,RC_Undead,.@val; bonus2 bMagicAddRace,RC_Demon,.@val; } },{},{} +15205,Medical_Scrubs,Medical Scrubs,4,20,,1000,,50,,1,0xFFFFFFFF,63,2,16,,100,1,,{ .@r = getrefine(); bonus bMdef,10; bonus bDelayrate,-10; .@val = 1; if (.@r >= 7) { .@def = 50; bonus bUnbreakableArmor,1; .@val += 2; if (.@r >= 8) { .@def += 100; .@val += 3; bonus2 bSubRace,RC_DemiHuman,7; bonus2 bSubRace,RC_Player,7; if (.@r >= 9) { .@def += 150; .@val += 4; bonus2 bResEff,Eff_Stone,5000; } } bonus bDef,.@def; } bonus bHealPower,2*.@val; bonus bHealPower2,.@val; bonus bAddItemHealRate,.@val; },{},{} +15209,Drake_Coat,Drake Coat,4,20,,1200,,60,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bMaxHP,500; bonus bMaxSP,50; bonus bMdef,10; bonus2 bAddClass,Class_All,3; if (.@r>=7) { bonus bMaxHP,1000; bonus bMaxSP,100; bonus2 bAddClass,Class_All,3; } if (.@r>=9) { bonus bMaxHP,1500; bonus bMaxSP,150; bonus2 bAddClass,Class_All,4; bonus bNoSizeFix; } },{},{} 15212,YSF01_Plate,YSF01 Plate,4,0,,2100,,78,,1,0xFFFFFFFF,63,2,16,,170,1,0,{ .@r = getrefine(); if (.@r >= 13) { .@val = 11; } else if (.@r >= 11) { .@val = 7; } else if (.@r >= 8) { .@val = 5; } if (readparam(bStr) >= 125) { .@val += .@r; } if (.@val) { bonus2 bAddClass,Class_All,.@val; } },{},{} 15280,S_Cri_Hit_Armor,Critical Hit Shadow Armor,12,0,,0,,,,0,0xFFFFFFFF,63,2,65536,,1,1,,{ .@r = getrefine(); .@val = 7; bonus bBaseAtk,15; if (.@r > 1) { bonus bCritAtkRate,(.@r/2); if (.@r >= 7) { .@val += 7; } } bonus bCritical,.@val; },{},{} +15283,Mighty_Black_Threaded_Armor,Mighty Black Threaded Armor,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bBaseAtk,10; bonus2 bIgnoreDefClassRate,Class_All,10; if (.@r>=7) { bonus bBaseAtk,20; bonus2 bIgnoreDefClassRate,Class_All,20; } if (.@r>=8) { bonus bBaseAtk,20; bonus2 bIgnoreDefClassRate,Class_All,20; bonus bUnbreakableArmor; } if (.@r>=9) { bonus bBaseAtk,30; bonus2 bIgnoreDefClassRate,Class_All,20; } },{},{} 15348,Illusion_Goibne_Armor,Illusion Goibne Armor,4,0,,3500,,158,,1,0xFFFFFFFE,63,2,16,,130,1,0,{ bonus bMaxHPrate,10; .@r = getrefine(); if (.@r >= 9) { bonus bDef,150; } else if (.@r >= 7) { bonus bDef,50; } },{},{} +15352,Nature_Dress,Nature Dress,4,10,,400,,120,,0,0xFFFFFFFF,63,2,16,,90,1,0,{ .@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_Earth; if (.@r>8) .@a = 40; else if (.@r>6) .@a = 25; else if (.@r>=5) .@a = 10; bonus2 bAddEle,Ele_Earth,.@a; bonus2 bAddEle,Ele_Wind,.@a; bonus2 bMagicAddEle,Ele_Earth,.@a; bonus2 bMagicAddEle,Ele_Wind,.@a; bonus2 bAddRace,RC_Demihuman,.@a; bonus2 bAddRace,RC_Brute,.@a; bonus2 bMagicAddRace,RC_Demihuman,.@a; bonus2 bMagicAddRace,RC_Brute,.@a; bonus2 bAddRace,RC_Player,.@a; bonus2 bMagicAddRace,RC_Player,.@a; },{},{} 15376,Illusion_Armor_A-type,Illusion Armor A-type,4,0,,1000,,105,,1,0xFFFFFFFF,63,2,16,,130,1,0,{ .@r = getrefine(); bonus bBaseAtk,(100+10*(.@r/2)); if (.@r >= 7) { bonus bAspdRate,10; } },{},{} 15377,Illusion_Armor_B-type,Illusion Armor B-type,4,0,,1000,,105,,1,0xFFFFFFFF,63,2,16,,130,1,0,{ .@r = getrefine(); bonus bMatk,(100+10*(.@r/2)); if (.@r >= 7) { bonus bVariableCastrate,-10; } },{},{} +15378,Lava_Leather_Armor,Lava Leather Armor,4,20,,1500,,85,,1,0xFFFFFFFF,63,2,16,,175,1,0,{ .@r = getrefine(); bonus bBaseAtk,100; if (.@r>=7) bonus bDef,100; if (.@r>=9) bonus bDef,50; },{},{} +15379,Lava_Leather_Suit,Lava Leather Suit,4,20,,1000,,70,,1,0xFFFFFFFF,63,2,16,,175,1,0,{ .@r = getrefine(); bonus bBaseAtk,100; if (.@r>=7) bonus bBaseAtk,50; if (.@r>=9) bonus bCritAtkRate,10; },{},{} +15380,Lava_Leather_Robe,Lava Leather Robe,4,20,,750,,55,,1,0xFFFFFFFF,63,2,16,,175,1,0,{ .@r = getrefine(); bonus bMatk,100; if (.@r>=7) bonus bMatk,50; if (.@r>=9) bonus bMatk,25; },{},{} +15384,Ritual_Robes,Ritual Robes,4,10,,400,,0,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bHealPower,5; bonus bDelayrate,-10; bonus bMaxHPrate,5; if (.@r>=7) { bonus bMaxHPrate,5; bonus bHealPower,5; } if (.@r>=8) { bonus bMaxHPrate,5; bonus bHealPower,10; bonus bUseSPrate,-10; bonus2 bResEff,Eff_Sleep,10000; } if (.@r>=9) { bonus bMaxHPrate,5; bonus bHealPower,10; } },{},{} +15405,Fafnir_Scale,Fafnir Scale,4,20,,1500,,120,,0,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bMdef,15; bonus bUnbreakableArmor; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSkillAtk,"RK_DRAGONBREATH",50; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",50; bonus bDelayrate,-2*getskilllv("RK_DRAGONBREATH_WATER"); bonus bLongAtkRate,2*getskilllv("RK_DRAGONBREATH"); if (.@r>=5) { bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bDelayrate,-5; } if (.@r>=7) { bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bDelayrate,-5; } },{},{} +15409,Bloody_Doll's_Dress,Bloody Doll's Dress,4,10,,500,,40,,1,0xFFFFFFFF,63,2,16,,90,1,0,{ .@r = getrefine(); bonus bMdef,5; bonus bMatk,10; bonus bDex,3; bonus2 bSubRace,RC_Player,7; if (.@r>=7) { bonus bAspdRate,10; bonus bDelayrate,-10; } if (.@r>=8) bonus bUnbreakableArmor; },{},{} +15417,Armor_of_Purple_Thread,Armor of Purple Thread,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bBaseAtk,10; bonus bPerfectHitAddRate,5; if (.@r>=7) { bonus bBaseAtk,20; bonus bPerfectHitAddRate,5; } if (.@r>=8) { bonus bBaseAtk,20; bonus bPerfectHitAddRate,10; } if (.@r>=9) { bonus bBaseAtk,30; bonus bPerfectHitAddRate,10; } },{},{} +15419,Mighty_White_Threaded_Armor,Mighty White Threaded Armor,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,100,1,0,{ .@r = getrefine(); bonus bMatk,10; bonus2 bIgnoreMdefRaceRate,RC_All,10; if (.@r>=7) { bonus bMatk,20; bonus2 bIgnoreMdefRaceRate,RC_All,20; } if (.@r>=8) { bonus bMatk,20; bonus2 bIgnoreMdefRaceRate,RC_All,20; bonus bUnbreakableArmor; } if (.@r>=9) { bonus bMatk,30; bonus2 bIgnoreMdefRaceRate,RC_All,20; } },{},{} +15420,Ice_Prison_Dress,Ice Prison Dress,4,10,,400,,120,,0,0xFFFFFFFF,63,2,16,,90,1,0,{ .@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_Water; if (.@r>8) .@a = 40; else if (.@r>6) .@a = 25; else if (.@r>=5) .@a = 10; bonus2 bAddEle,Ele_Fire,.@a; bonus2 bAddEle,Ele_Water,.@a; bonus2 bMagicAddEle,Ele_Fire,.@a; bonus2 bMagicAddEle,Ele_Water,.@a; bonus2 bAddRace,RC_Demihuman,.@a; bonus2 bAddRace,RC_Formless,.@a; bonus2 bMagicAddRace,RC_Demihuman,.@a; bonus2 bMagicAddRace,RC_Formless,.@a; bonus2 bAddRace,RC_Player,.@a; bonus2 bMagicAddRace,RC_Player,.@a; },{},{} //=================================================================== // More Maces //=================================================================== @@ -8870,7 +8915,7 @@ 16041,Mace_of_Vicious_Mind,Mace of Vicious Mind,5,20,,1300,130,,1,1,0x0004C5B3,63,2,2,4,160,1,8,{ bonus bAtk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon; },{},{} 16043,Meteor_Strike,Meteor Strike,5,0,,20000,1,,1,2,0x00000001,63,2,2,4,110,1,8,{ bonus bBaseAtk,10*getskilllv("BS_WEAPONRESEARCH"); bonus bBaseAtk,30*getskilllv("MO_IRONHAND"); .@s = getskilllv("AM_AXEMASTERY"); bonus bBaseAtk,7*.@s; bonus bHit,5*.@s; bonus bBaseAtk,10*getrefine(); if (getskilllv("MC_PUSHCART") > 9) skill "MC_CARTREVOLUTION",1; if (getskilllv("SM_SWORD") > 0) skill "KN_BOWLINGBASH",1; .@str = readparam(bStr); if (.@str > 119) bonus bUseSPrate,-30; else if (.@str > 107) bonus bUseSPrate,-20; },{},{} 16048,Unity_Mace,Unity Mace,5,20,,400,76,,1,1,0x0004C5B3,63,2,2,3,1,1,8,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{} -16051,Valkyrie_Hammer,Valkyrie Hammer,5,0,,100,50,,1,4,0x0004C3B3,63,2,2,1,70,1,8,{ if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) { bonus bUseSPrate,-5; .@r = getrefine(); bonus bVit,.@r; bonus bMaxHP,200; bonus bFlee2,1; bonus bAspdRate,1; bonus bVariableCast,.@r/2; } else if ((eaclass()&EAJ_BASEMASK) == EAJ_SWORDMAN) { bonus bVit,getrefine(); bonus bMaxHP,500; bonus bMaxSP,100; } else if ((eaclass()&EAJL_2) == EAJ_PRIEST) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,getrefine(); } else if ((eaclass()&EAJL_2) == EAJ_MONK) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,getrefine(); } else if ((eaclass()&EAJ_BASEMASK) == EAJ_MERCHANT) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCast,getrefine()/2; } },{},{} +16051,Valkyrie_Hammer_,Valkyrie Hammer,5,0,,100,50,,1,4,0x0004C5B3,63,2,2,4,70,1,8,{ .@r = getrefine(); bonus bMatk,50; if (BaseJob==Job_Novice) { bonus bBaseAtk,150; bonus bMatk,200; bonus bUseSPrate,-5; bonus bHit,10; bonus bMaxHP,500+(200*.@r); bonus bMaxSP,400; bonus bVit,.@r; bonus bFlee2,.@r; bonus bAspdRate,.@r; bonus bVariableCastrate,-.@r/2; } if (BaseClass==Job_Swordman) { bonus bVit,.@r; bonus bMaxHP,500; bonus bMaxSP,100; } if (BaseJob==Job_Priest) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,.@r; } if (BaseJob==Job_Monk) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,.@r; } if (BaseClass==Job_Merchant) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCastrate,-.@r/2; } },{},{} 16060,Liquor_Bottle,Liquor Bottle,5,0,,700,120,,1,3,0x0004C5B3,63,2,2,3,100,1,8,{ bonus bUnbreakableWeapon; bonus2 bAddEff,Eff_Stun,(300*getrefine()); },{},{} 16063,Illusion_Long_Mace,Illusion Long Mace,5,20,,800,185,,3,2,0x00008110,63,2,2,4,99,1,8,{ bonus bLongAtkDef,(10+3*(getrefine()/2)); },{},{} 16065,Illusion_Iron_Driver,Illusion Iron Driver,5,0,,2000,210,,2,2,0x00000100,56,2,2,4,120,1,8,{ .@r = getrefine(); bonus bAspd,(.@r/2); bonus2 bSkillAtk,"AB_DUPLELIGHT",(3*.@r); },{},{} @@ -9886,6 +9931,7 @@ 18782,Butterfly_Wing_Ear_J,Butterfly Wing Ear,4,20,,100,,0,,0,0xFFFFFFFF,63,2,512,,0,0,695,{ bonus bDex,2; bonus bUnbreakableHelm; },{},{} 18785,King_Poring_Hat,King Poring Hat,4,20,,600,,10,,1,0xFFFFFFFF,63,2,256,,10,1,905,{ bonus bDex,1; bonus bLuk,1; .@r = getrefine(); if(.@r>=3){ bonus bDex,(.@r-4); bonus bLuk,(.@r-4); } },{},{} 18786,Anemos_Mask,Anemos Mask,4,20,,200,,0,,0,0xFFFFFFFF,63,2,512,,10,0,906,{ bonus bUnbreakableHelm; bonus2 bMagicAtkEle,Ele_Wind,4; },{},{} +18787,Goal_Tender_Mask,Goal Tender Mask,4,20,,200,,5,,0,0xFFFFFFFF,63,2,513,,50,0,336,{ bonus2 bAddRace,RC_DemiHuman,8; bonus2 bAddRace,RC_Player,8; },{},{} 18790,Rainbow_Poring_Hat,Rainbow Poring Hat,4,20,,100,,3,,1,0xFFFFFFFF,63,2,256,,0,1,900,{},{},{} 18791,Shrine_Maiden_Hat,Shrine Maiden Hat,4,20,,200,,30,,1,0xFFFFFFFF,63,2,256,,,,908,{},{},{} 18792,Idn_Sakkat,Indonesian Independence Sakkat,4,10,,400,,,,0,0xFFFFFFFE,63,2,256,,45,1,901,{ bonus bVit,10; bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus2 bSubRace,RC_DemiHuman,10; },{},{} @@ -9977,6 +10023,7 @@ 18930,Gorilla_Model_Hat,Gorilla Model Hat,4,10,,300,,10,,1,0xFFFFFFFF,63,2,256,,30,1,1066,{ bonus bStr,2+((getrefine()>=11) ? 3 : 0); bonus3 bAutoSpell,"KN_BOWLINGBASH",1,50; },{},{} 18931,Lion_Model_Hat,Lion Model Hat,4,10,,300,,10,,1,0xFFFFFFFF,63,2,256,,30,1,1067,{ .@r = getrefine(); bonus bInt,2+((.@r >= 2 && .@r <= 8) ? 1 : ((.@r > 8) ? (.@r/8): 0)); bonus3 bAutoSpellWhenHit,"WZ_METEOR",5,50; },{},{} 18932,Rhino_Model_Hat,Rhino Model Hat,4,10,,300,,10,,1,0xFFFFFFFF,63,2,256,,30,1,1068,{ .@r = getrefine(); bonus bVit,2+((.@r >= 11) ? (.@r/11) : 0); bonus3 bAutoSpellWhenHit,"WZ_VERMILION",1,50; },{},{} +18933,Mechanical_Plant_Hat,Mechanical Plant Hat,4,20,,500,,10,,1,0xFFFFFFFF,63,2,256,,45,1,1069,{ .@r = getrefine()/2; bonus bDex,2; bonus bMdef,7; bonus2 bSkillAtk,"GN_SPORE_EXPLOSION",5+(5*.@r); },{},{} 18934,Fox_Ears_Bell_Ribbon,Fox Ears Bell Ribbon,4,0,,400,,4,,1,0xFFFFFFFF,63,2,256,,50,1,1070,{ bonus bAgi,2; bonus bAspdRate,10; .@r = getrefine(); autobonus "{ .@r = getrefine(); bonus bCritical,100; bonus bLongAtkRate,5+(.@r > 6 ? .@r : 0); }",50+(.@r*2),5000,BF_NORMAL,"{ active_transform 1150,5000; }"; },{},{} 18936,Golden_Fish,Golden Fish In Mouth,4,1,,10,,1,,0,0xFFFFFFFF,63,2,1,,1,0,1081,{ bonus bAllStats,2; bonus bBaseAtk,10; bonus bMatk,10; bonus2 bExpAddRace,RC_Fish,2; bonus2 bSubRace,RC_Fish,2; },{},{} 18937,Memories_Of_Lovers,Memories Of Lovers,4,0,,100,,,,0,0xFFFFFFFF,63,2,512,,,1,1072,{ bonus bMdef,7; bonus bMaxHPrate,2; },{},{} @@ -9991,7 +10038,7 @@ 18971,Old_Rune_Circlet,Old Rune Circlet,4,10,,100,,10,,1,0x00000080,56,2,256,,170,1,623,{ bonus bAllStats,1; bonus bMdef,5; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"RK_IGNITIONBREAK",20*.@r/2; bonus2 bSkillAtk,"RK_HUNDREDSPEAR",15*.@r/2; },{},{} 18972,Old_Mitra,Old Mitra,4,10,,100,,10,,1,0x00000100,56,2,256,,170,1,624,{ bonus bAllStats,1; bonus bMdef,5; .@r = getrefine(); bonus bMatk,2*.@r; bonus bBaseAtk,4*.@r; bonus bHealPower,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"AB_JUDEX",20*.@r/2; bonus2 bSkillAtk,"PR_MAGNUS",10*.@r/2; },{},{} 18973,Old_Driver_Band_R,Old Driver Band,4,10,,100,,10,,1,0x00000400,56,2,256,,170,1,626,{ bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_POWERSWING",20*.@r/2; bonus2 bSkillAtk,"NC_AXETORNADO",20*.@r/2; },{},{} -18974,Old_Driver_Band_Y,Old Driver Band(Yellow),4,10,,100,,10,,1,0x00000400,56,2,256,,170,1,637,{ bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_ARMSCANNON",20*.@r/2; bonus2 bSkillAtk,"NC_SELFDESTRUCTION",20*.@r/4; },{},{} +18974,Old_Driver_Band_Y,Old Driver Band(Yellow),4,10,,100,,10,,1,0x00000400,56,2,256,,170,1,637,{ bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_ARMSCANNON",5*(.@r/2); bonus2 bSkillCooldown,"NC_SELFDESTRUCTION",-10000*(.@r/4); },{},{} 18975,Old_Shadow_Handicraft,Old Shadow Handicraft,4,10,,100,,10,,1,0x00020000,56,2,256,,170,1,627,{ bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bMatk,4*.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*.@r/2; if (.@r>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (.@r>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (.@r>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"SC_GROOMY",-1000; } },{},{} 18976,Old_Minstrel_Song_Hat,Old Minstrel Song's Hat,4,10,,100,,10,,1,0x00080000,56,1,256,,170,1,628,{ bonus bAllStats,1; .@r = getrefine(); bonus bLongAtkRate,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"CG_ARROWVULCAN",20*.@r/2; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",5*.@r/2; },{},{} 18977,Old_Midas_Whisper,Old Midas Whisper,4,10,,100,,10,,1,0x00040000,56,2,256,,170,1,629,{ bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bLongAtkRate,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"GN_CARTCANNON",15*.@r/2; },{},{} @@ -10022,6 +10069,8 @@ 19051,Warrior_Moon_Cat,Warrior Moon Cat,4,20,,100,,5,,1,0xFFFFFFFF,63,2,256,,1,1,1308,{ /*Enables use of Level 1 Monster's Cry*/ bonus bAllStats,3; bonus2 bHPDrainRate,40,5; bonus2 bSPDrainRate,10,2; },{},{} 19052,Sigruns_Wing,Rental Sigrun's Wing,4,10,,0,,2,,0,0xFFFFFFFF,63,2,512,,1,0,568,{ if (Class == Job_Swordman || Class == Job_Thief || Class == Job_Merchant || Class == Job_Taekwon || Class == Job_Star_Gladiator || Class == Job_Star_Gladiator2) bonus bAspd,1; else if (Class == Job_Mage || Class == Job_Acolyte || Class == Job_Ninja || Class == Job_Soul_Linker) { bonus bMatk,5; bonus bHealPower,2; } else if (Class == Job_Archer || Class == Job_Gunslinger) bonus bLongAtkRate,2; else if (Class == Job_Novice || Class == Job_SuperNovice) { bonus bMaxHP,120; bonus bMaxSP,60; } },{},{} 19053,Fighter_Moon_Cat,Fighter Moon Cat,4,20,,100,,5,,1,0xFFFFFFFF,63,2,256,,1,1,1308,{ /*Enables use of Level 1 Monster's Cry*/ .@r = getrefine(); bonus bAllStats,3; bonus2 bAddEff,Eff_Stun,500+(.@r*100); },{},{} +19079,Celestial_Woman's_Flower,Celestial Woman's Flower,4,20,,300,,5,,1,0xFFFFFFFF,63,2,256,,20,1,438,{ bonus bHPGainValue,100; bonus bMdef,5; bonus2 bSPGainRace,RC_Undead,5; if (getrefine()>=5) { bonus2 bSubRace,RC_Undead,5; } if (getrefine()>=7) { bonus2 bSubRace,RC_Undead,5; } },{},{} +19081,Faceworm_Egg_Shell,Faceworm Egg Shell,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,30,1,1356,{ bonus bHit,20; bonus2 bAddRace2,RC2_FACEWORM,5; bonus2 bMagicAddRace2,RC2_FACEWORM,5; bonus2 bSubRace2,RC2_FACEWORM,5; .@r = getrefine(); if (.@r>=5) { bonus2 bAddRace2,RC2_FACEWORM,10; bonus2 bMagicAddRace2,RC2_FACEWORM,10; bonus2 bSubRace2,RC2_FACEWORM,10; } if (.@r>=7) { bonus2 bAddRace2,RC2_FACEWORM,15; bonus2 bMagicAddRace2,RC2_FACEWORM,15; bonus2 bSubRace2,RC2_FACEWORM,15; } if (.@r>=9) { bonus2 bAddRace2,RC2_FACEWORM,20; bonus2 bMagicAddRace2,RC2_FACEWORM,20; bonus2 bSubRace2,RC2_FACEWORM,20; } },{},{} 19082,Bio_Protector,Bio Protector,4,0,,500,,3,,0,0xFFFFFFFF,63,2,512,,50,1,1366,{ bonus bHit,10; bonus bVariableCastrate,-5; bonus bPerfectHitRate,5; },{},{} 19083,Mask_of_Hero,Mask of Hero,4,20,,200,,0,,0,0xFFFFFFFF,63,2,512,,70,0,1367,{ bonus bVit,10; bonus bMdef,10; bonus bShortWeaponDamageReturn,1; },{},{} 19084,Parfaille_Vigilante_Hat,Parfaille Vigilante Hat,4,0,,100,,2,,0,0x80000000,63,2,256,,20,1,1368,{ bonus bLuk,1; bonus3 bAutoSpell,"AL_BLESSING",3,100; },{},{} @@ -10036,12 +10085,17 @@ 19093,Spinning_Eyes_,Geek Glasses,4,20000,,100,,1,,1,0xFFFFFFFF,63,2,512,,0,0,27,{ bonus2 bResEff,Eff_Blind,800; },{},{} 19094,Mr_Smile_,Mr. Smile,4,60,,100,,1,,1,0xFFFFFFFF,63,2,513,,0,0,65,{},{},{} 19095,Happy_Balloon,Happy Balloon,4,0,,10,,0,,0,0xFFFFFFFF,63,2,1,,1,0,1289,{ bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5; },{},{} +19101,Glastheim_Observer,Glastheim Observer,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,80,1,1041,{ bonus2 bAddClass,Class_All,2; bonus bDelayrate,-5; },{},{} +19102,Pale_Moon_Hat,Pale Moon Hat,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,30,1,913,{ bonus bFlee,20; bonus2 bAddRace2,RC2_THANATOS,5; bonus2 bSubRace2,RC2_THANATOS,5; bonus2 bMagicAddRace2,RC2_THANATOS,5; if(getrefine()>4) { bonus2 bAddRace2,RC2_THANATOS,10; bonus2 bSubRace2,RC2_THANATOS,10; bonus2 bMagicAddRace2,RC2_THANATOS,10; } if(getrefine()>6) { bonus2 bAddRace2,RC2_THANATOS,15; bonus2 bSubRace2,RC2_THANATOS,15; bonus2 bMagicAddRace2,RC2_THANATOS,15; } if(getrefine()>8) { bonus2 bAddRace2,RC2_THANATOS,20; bonus2 bSubRace2,RC2_THANATOS,20; bonus2 bMagicAddRace2,RC2_THANATOS,20; } /* skill 3044,1; */ },{},{} 19109,Valhalla_Idol,Valhalla Idol,4,0,,300,,2,,0,0xFFFFFFFF,63,2,512,,70,0,1423,{ bonus bMaxSP,50; bonus4 bAutoSpellWhenHit,"MG_SAFETYWALL",10,50,0; hateffect(HAT_EF_VALHALLA_IDOL,true); },{},{ hateffect(HAT_EF_VALHALLA_IDOL,false); } 19111,Laser_Of_Eagle,Laser of Eagle,4,0,,400,,5,,1,0xFFFFFFFF,63,2,256,,100,1,1424,{ bonus bDex,2; bonus bLongAtkRate,10; bonus5 bAutoSpell,"PR_LEXAETERNA",1,50,BF_LONG,1; /*TODO: Chance to transform become Shechil while attacking.*/ },{},{} +19112,Tengu_Scroll,Tengu Scroll,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,40,0,1445,{ bonus2 bHPDrainRate,30,5; },{},{} +19114,Sting_Silk_Ribbon,Sting Silk Ribbon,4,20,,300,,15,,1,0xFFFFFFFF,63,2,256,,70,1,1457,{ bonus bUnbreakableHelm; bonus2 bSubEle,Ele_Earth,20; if(getrefine()>4) { bonus2 bSubSize,Size_All,2; } if(getrefine()>6) { bonus2 bSubSize,Size_All,3; } },{},{} 19115,Republic_Hat,Republic Hat,4,0,,400,,3,,1,0xFFFFFFFF,63,2,256,,100,1,1458,{ .@r = getrefine(); .@val = 6; if (.@r >= 7) { .@val += 2; } if (.@r >= 9) { .@val += 4; } bonus bLongAtkRate,.@val; },{},{} 19116,Red_Baby_Dragon,Red Baby Dragon,4,0,,700,,,1,1,0xFFFFFFFF,63,2,256,,90,1,1463,{ .@r=getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"RK_DRAGONBREATH",(.@r>=8?45:(.@r>=6?30:15)); bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",(.@r>=8?45:(.@r>=6?30:15)); },{},{} 19117,Poring_Sunglasses_,Poring Sunglasses,4,0,,10,,0,,0,0xFFFFFFFF,63,2,512,,1,0,954,{ bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5; },{},{} 19118,Poring_Sunglasses__,Poring Sunglasses,4,0,,10,,0,,1,0xFFFFFFFF,63,2,512,,1,0,954,{ bonus2 bDropAddRace,RC_All,4; bonus2 bExpAddRace,RC_All,4; },{},{} +19125,Cylinder_Hairband,Cylinder Hairband,4,20,,300,,12,,1,0xFFFFFFFF,63,2,256,,90,1,1477,{ bonus bStr,5; bonus bInt,5; bonus2 bVariableCastrate,"GN_CARTCANNON",-100; bonus2 bSkillUseSP,"GN_CARTCANNON",30; bonus2 bSkillUseSP,"GN_CART_TORNADO",5; bonus2 bSkillAtk,"GN_CARTCANNON",10; bonus2 bSkillAtk,"GN_CART_TORNADO",5; if (getrefine()>=5) { bonus2 bSkillAtk,"GN_CARTCANNON",20; bonus2 bSkillAtk,"GN_CART_TORNADO",10; } if (getrefine()>=8) { bonus2 bSkillAtk,"GN_CARTCANNON",30; bonus2 bSkillAtk,"GN_CART_TORNADO",20; } },{},{} 19126,Shadow_Booster_,Magical Booster,4,10,,300,,,,1,0xFFFFFFFF,63,2,512,,1,1,873,{ bonus bAspd,1; bonus bDelayrate,-1; },{},{} 19128,Ifrit's_Ear_,Ears Of Ifrit,4,20,,300,,0,,1,0xFFFFFFFE,63,2,512,,50,0,422,{ bonus bStr,1; bonus bMdef,3; bonus bInt,1; bonus2 bSkillAtk,"MG_FIREBOLT",3; bonus2 bSkillAtk,"WZ_FIREPILLAR",3; bonus2 bSkillAtk,"WZ_METEOR",3; bonus2 bSkillAtk,"SM_BASH",4; bonus2 bSkillAtk,"SM_MAGNUM",4; bonus2 bSkillAtk,"KN_PIERCE",3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Water,-3; },{},{} 19129,Chick_Hat_,Chick Hat,4,20,,100,,2,,1,0xFFFFFFFF,63,2,256,,10,0,311,{ bonus bLuk,2; bonus bMaxHP,50; bonus bMaxSP,50; skill "TF_DOUBLE",2; bonus bDoubleRate,10; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; },{},{} @@ -10050,7 +10104,8 @@ 19132,Masquerade_,Masquerade,4,20,,100,,0,,1,0xFFFFFFFE,63,2,512,,0,0,78,{ bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3; },{},{} 19133,Odin_Mask_,Odin's Mask,4,20,,100,,1,,1,0xFFFFFFFF,63,2,513,,1,0,480,{ bonus2 bSubClass,Class_Boss,2; },{},{} 19134,Wickebines_Black_Cat_Ears,Wickebine's Black Cat Ears,4,20,,200,,4,,1,0xFFFFFFFE,63,2,256,,45,1,368,{ bonus bFlee,10; bonus bCritAtkRate,10; autobonus "{ bonus2 bIgnoreMdefRaceRate,RC_ALL,25; }",50,5000,BF_MAGIC,"{ specialeffect2 EF_AGIUP; }"; },{},{} -19138,Seraphim_Coronet,Seraphim Coronet,4,20,,300,,0,,0,0xFFFFFFFF,63,2,512,,70,0,1487,{ bonus bStr,2; .@int = readparam(bInt); bonus bBaseAtk,(.@int/8)*5; bonus bHealPower,.@int/8; bonus bVariableCastrate,.@int/8; if ((.@int>108)) { bonus bBaseAtk,50; bonus bHealPower,5; bonus bVariableCastrate,4; } if ((.@int>120)) { bonus bBaseAtk,75; bonus bHealPower,5; bonus bVariableCastrate,2; } },{},{} +19137,Strawberry_Mouth_Guard,Strawberry Mouth Guard,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,80,0,861,{ bonus bVit,2; bonus bLongAtkDef,5; bonus bShortWeaponDamageReturn,5; if (Baselevel>=100) { bonus bMaxHP,2000; } else { bonus bMaxHP,200; } },{},{} +19138,Seraphim_Coronet,Seraphim Coronet,4,20,,300,,0,,0,0xFFFFFFFF,63,2,512,,70,0,1487,{ bonus bStr,2; .@int = readparam(bInt); bonus bBaseAtk,(.@int/8)*5; bonus bHealPower,.@int/8; bonus bVariableCastrate,.@int/8; if ((.@int>=108)) { bonus bBaseAtk,50; bonus bHealPower,5; bonus bVariableCastrate,4; } if ((.@int>=120)) { bonus bBaseAtk,125; bonus bHealPower,10; bonus bVariableCastrate,6; } },{},{} 19139,SurviveOrb,Survive Orb,4,0,,300,,,,0,0xFFFFFFFF,63,2,1,,50,0,1488,{ skill "TF_HIDING",1; bonus2 bAddClass,Class_All,2; bonus bMatkRate,2; bonus bVariableCastrate,-3; },{},{} 19140,Squirrel_Ear_Hat,Squirrel Ear Hat,4,0,,200,,10,,1,0xFFFFFFFF,63,2,256,,100,1,1486,{ .@r = getrefine(); bonus bAspd,1; bonus bCriticalLong,5; bonus bCritAtkRate,10; bonus2 bIgnoreDefRaceRate,RC_All,10; if (.@r > 4) { bonus bAspd,1; bonus bCriticalLong,10; bonus bCritAtkRate,2; bonus2 bIgnoreDefRaceRate,RC_All,20; } if (.@r > 6) { bonus bAspd,1; bonus bCriticalLong,15; bonus bCritAtkRate,6; bonus2 bIgnoreDefRaceRate,RC_All,30; } if (.@r > 8) { bonus bAspd,1; bonus bCriticalLong,20; bonus bCritAtkRate,12; bonus2 bIgnoreDefRaceRate,RC_All,40; autobonus "{ bonus bCritAtkRate,100; }",70,5000; } },{},{} 19141,Dolor_Thanatos_Mask,Dolor Thanatos Mask,4,20,,200,,6,,0,0xFFFFFFFF,63,2,513,,100,0,666,{ bonus bMdef,8; bonus bAllStats,1; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,1; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Earth,5; },{},{} @@ -10077,6 +10132,9 @@ 19165,Para_Team_Hat160,Awakened Eden Group Hat II,4,20,,0,,10,,1,0xFFFFFFFF,63,2,256,,160,1,1530,{ autobonus "{ bonus bBaseAtk,30; }",70,5000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; autobonus "{ bonus bMatk,30; }",50,5000,BF_MAGIC,"{ specialeffect2 EF_SPELLBREAKER; }"; .@r = getrefine(); if(.@r >= 7){ bonus bAtk,15; bonus bMatk,15; if(.@r >= 9){ bonus bAllStats,2; if(.@r >= 12){ bonus2 bRegenPercentHP,2,10000; bonus2 bRegenPercentSP,1,10000; } } } },{},{} 19166,RO_Celebration_Hat,RO Celebration Hat,4,20,,140,,14,,1,0xFFFFFFFF,63,2,256,,14,1,1541,{ bonus bMaxSP,140; bonus2 bSPRegenRate,6,4000; },{},{} 19168,Band_Of_Kafra_,Kafra Staff Headband,4,20,,500,,0,,1,0xFFFFFFFF,63,2,256,,,1,106,{ bonus2 bSubClass,Class_All,5; .@r = getrefine()*10; bonus2 bAddMonsterDropItem,23177,10+.@r; bonus2 bAddMonsterDropItem,7059,10+.@r; bonus2 bAddMonsterDropItem,7060,10+.@r; },{},{} +19171,Magician_Knit_Hat,Magician Knit Hat,4,20,,500,,10,,1,0xFFFFFFFF,63,2,256,,10,1,854,{ .@r = getrefine(); bonus bMdef,10; bonus2 bAddRace,RC_Undead,5; bonus2 bMagicAddRace,RC_Undead,5; bonus2 bSubRace,RC_Undead,2; bonus bSPGainValue,5; bonus bLongSPGainValue,5; bonus bMagicSPGainValue,5; if (.@r>=7) { bonus bMdef,5; bonus2 bAddRace,RC_Undead,10; bonus2 bMagicAddRace,RC_Undead,10; bonus2 bSubRace,RC_Undead,3; bonus bSPGainValue,10; bonus bLongSPGainValue,10; bonus bMagicSPGainValue,10; } if (.@r>=9) { bonus bMdef,5; bonus2 bAddRace,RC_Undead,10; bonus2 bMagicAddRace,RC_Undead,10; bonus2 bSubRace,RC_Undead,5; bonus bSPGainValue,10; bonus bLongSPGainValue,10; bonus bMagicSPGainValue,10; } },{},{} +19172,Sitting_Pope_Casual,Sitting Pope Casual,4,1000,,400,,5,,1,0xFFFFFFFF,63,2,256,,100,1,1553,{ bonus bInt,2; bonus bDelayrate,-10; .@r = getrefine(); if (.@r>=7) bonus bDelayrate,-10; if (.@r>=9) bonus bDelayrate,-10; },{},{} +19173,Floating_Ice,Floating Ice,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,90,0,1562,{ bonus2 bAddItemHealRate,536,100; },{},{} 19176,Fallen_Angel_Blessing_,Fallen Angel Blessing,4,20,,200,,1,,1,0xFFFFFFFF,63,2,512,,10,0,1250,{ bonus2 bAddRace,RC_Angel,5; bonus2 bSubRace,RC_Angel,5; },{},{} 19177,Elemental_Crown_,Elemental Crown,4,0,,500,,10,,0,0xFFFFFFFF,63,2,256,,50,1,1219,{ .@r = getrefine(); bonus bDex,3 + (.@r/2); bonus bLongAtkRate,4; },{},{} 19178,Elemental_Crown__,Elemental Crown,4,0,,500,,10,,1,0xFFFFFFFF,63,2,256,,50,1,1219,{ .@r = getrefine(); bonus bDex,3 + (.@r/2); bonus bLongAtkRate,4; },{},{} @@ -10090,10 +10148,32 @@ 19247,Illusion_Fancy_Flower,Illusion Fancy Flower,4,0,,100,,0,,1,0xFFFFFFFF,63,2,256,,120,0,4,{ bonus bMatkRate,1; bonus bMatk,(2*getrefine()); },{},{} // 19246,Royal_Guard_Necklace,Royal Guard Necklace,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,1629,{ bonus bAspd,1; },{},{} +19269,Happy_Flapping_Wings,Happy Flapping Angel Wings,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,30,1,1251,{ .@r = getrefine(); .@a = 15; if (.@r >= 7) .@a += 15; if (.@r>=8) bonus2 bResEff,Eff_Stone,10000; if (.@r>=9) .@a += 20; bonus2 bAddRace2,RC2_CLOCKTOWER,.@a; bonus2 bMagicAddRace2,RC2_CLOCKTOWER,.@a; bonus2 bSubRace2,RC2_CLOCKTOWER,.@a; bonus2 bAddMonsterDropItem,1061,500; /* Unofficial rates, info get from bRO itemdescription */ },{},{} +19272,Garden_of_Eden,Garden of Eden,4,20,,400,,5,,1,0xFFFFFFFF,63,2,256,,100,1,1653,{ .@r = getrefine(); bonus bInt,5; bonus bDex,5; bonus2 bIgnoreMdefRaceRate,RC_All,20; bonus2 bMagicAtkEle,Ele_All,10; if (.@r>=7) { bonus2 bIgnoreMdefRaceRate,RC_All,30; bonus2 bMagicAtkEle,Ele_All,15; } if (.@r>=9) { bonus2 bIgnoreMdefRaceRate,RC_All,50; bonus bVariableCastrate,-15; } },{},{ sc_end SC_TELEKINESIS_INTENSE; } +19273,Gemini_Red_Eyes,Gemini Red Eyes,4,20,,100,,0,,0,0xFFFFFFFF,63,2,512,,100,0,1654,{ .@val = 100*(readparam(bVit)>89?50:10); bonus2 bResEff,Eff_Sleep,.@val; bonus2 bResEff,Eff_Stone,.@val; },{},{} +19274,Open_Air_Headset,Open Air Headset,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,90,0,1655,{ bonus bDelayrate,-5; bonus bUseSPrate,-5; bonus bSPGainValue,5; bonus bMagicSPGainValue,5; bonus bLongSPGainValue,5; },{},{} +19285,Siegfried's_Helmet,Siegfried's Helmet,4,20,,500,,0,,1,0xFFFFFFFF,63,2,256,,100,1,1055,{ .@r = getrefine(); bonus2 bSubClass,Class_Boss,5; bonus bUnbreakableHelm; if (.@r>=6) { bonus bFlee2,5; bonus2 bSubClass,Class_Boss,5; } if (.@r>=8) { bonus bFlee2,5; bonus2 bSubClass,Class_Boss,10; bonus bNoKnockback; } },{},{} +19299,Tree_Sprout,Tree Sprout,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,848,{ bonus bVariableCastrate,-5; },{},{} 19306,Gambler_Card,Heart Card in Mouth,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,1679,{ bonus bCritAtkRate,5; },{},{} +19326,Book_of_Soyga,Book of Soyga,4,20,,1000,,0,,1,0xFFFFFFFF,63,2,256,,90,1,423,{},{},{} +19327,Seraphim_Feather,Seraphim Feather,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,1704,{ bonus bHealPower,5; },{},{} +19329,Devil's_Hand,Devil's Hand,4,10,,1000,,18,,0,0xFFFFFFFF,63,2,256,,100,1,1018,{ .@r = getrefine(); .@a = getskilllv("SR_RIDEINLIGHTNING"); .@b = getskilllv("SR_EARTHSHAKER"); .@c = getskilllv("SR_RAMPAGEBLASTER"); bonus bNoCastCancel; bonus bAspdRate,10; bonus2 bFixedCastrate,"SR_HOWLINGOFLION",-100; bonus2 bSkillAtk,"SR_HOWLINGOFLION",20; if (.@r>=7) { bonus2 bSkillAtk,"SR_HOWLINGOFLION",30; bonus bAspdRate,5; } if (.@r>=9) { bonus2 bSkillAtk,"SR_HOWLINGOFLION",50; bonus bAspdRate,5; } if (.@r>=10) bonus bIgnoreDefClass,Class_All; if (.@r>=10 && .@a==5) { bonus2 bVariableCastrate,"SR_HOWLINGOFLION",-50; bonus2 bVariableCastrate,"MO_STEELBODY",-50; bonus2 bVariableCastrate,"MO_CALLSPIRITS",-50; } if (.@r>=10 && .@b==5) bonus2 bSkillCooldown,"SR_HOWLINGOFLION",-9500; if (.@r>=10 && .@c==5) bonus2 bAddClass,Class_Boss,50; },{},{} +19337,Safety_Glasses,Safety Glasses,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,40,1,1721,{ .@r = getrefine(); bonus2 bSubEle,Ele_Poison,10; if (.@r<7) .@a = 15; else if (.@r<9) .@a = 30; else if (.@r>=9) .@a = 50; if (.@r>=8) bonus2 bSubEle,Ele_Poison,15; /* bonus2 bAddRace2,RC2_HEARTHUNTER,.@a; bonus2 bMagicAddRace2,RC2_HEARTHUNTER,.@a; bonus2 bSubRace2,RC2_HEARTHUNTER,.@a; Hearthunter Warbase is not implemented yet */ },{},{} +19342,Bull_Hat,Bull Hat,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,130,1,819,{ .@r = getrefine(); bonus2 bSubEle,Ele_Wind,10; if (.@r<7) .@a = 15; if (.@r>=7 && .@r<9) .@a = 30; if (.@r>=8) bonus2 bSubEle,Ele_Wind,15; if (.@r>=9) .@a = 50; bonus2 bAddRace2,RC2_ROCKRIDGE,.@a; bonus2 bMagicAddRace2,RC2_ROCKRIDGE,.@a; bonus2 bSubRace2,RC2_ROCKRIDGE,.@a; },{},{} +19343,Circlet_Of_Phoenix,Circlet Of Phoenix,4,0,,1000,,18,,0,0xFFFFFFFF,63,2,256,,100,1,1056,{ .@r = getrefine(); .@mdef = 15; .@hp = 10; .@dmg = 10; .@cast = -10; bonus2 bFixedCastrate,"LG_OVERBRAND",-100; if (.@r>=7) { .@cast -= 5; .@dmg += 15; if (.@r>=9) { .@cast -= 5; .@dmg += 25; if (.@r>=10) { bonus2 bIgnoreDefClassRate,Class_All,100; } } } if (getskilllv("LG_KINGS_GRACE")>=5) { bonus2 bSkillCooldown,"LG_INSPIRATION",-10000; bonus2 bSkillVariableCast,"LG_INSPIRATION",-2000; } if (getskilllv("LG_MOONSLASHER")>=5) { bonus2 bSkillVariableCast,"LG_OVERBRAND",-1000; } if (getskilllv("LG_FORCEOFVANGUARD")>=5) { .@hp += 10; .@mdef += 15; bonus bMaxSPrate,10; bonus bDef,150; } bonus bMdef,.@mdef; bonus bMaxHPrate,.@hp; bonus2 bSkillAtk,"LG_OVERBRAND",.@dmg; bonus bVariableCastrate,.@cast; },{},{} 19344,Illusion_Hot_blooded_Headband,Illusion Hot-blooded Headband,4,0,,100,,3,,1,0xFFFFFFFE,63,2,256,,120,1,154,{ .@r = getrefine(); bonus bStr,2; bonus bBaseAtk,(10*(.@r/2)); if (.@r >= 7) { bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Wind,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Neutral,10; if (.@r >= 9) { bonus2 bAddSize,Size_Small,15; bonus2 bAddSize,Size_Large,15; } } },{},{} 19366,Illusion_Goibne_Helm,Illusion Goibne Helm,4,0,,1000,,25,,1,0xFFFFFFFE,63,2,256,,130,1,258,{ .@r = getrefine(); .@vit = 3; if (.@r >= 7) { .@vit += 5; if (.@r >= 9) { bonus bDelayrate,-12; } } bonus bVit,.@vit; bonus bMdef,3; },{},{} +19379,Striking_Hat,Striking Hat,4,20,,400,,5,,1,0xFFFFFFFF,63,2,256,,100,1,1759,{ .@r = getrefine(); bonus bDex,5; bonus bAgi,5; bonus bLongAtkRate,5; bonus bAspdRate,10; bonus bPerfectHitAddRate,10; bonus bHit,2*.@r; bonus bDelayrate,-2*.@r; if (.@r>=7) { bonus bPerfectHitAddRate,20; bonus bLongAtkRate,10; } if (.@r>=9) { bonus bPerfectHitAddRate,20; bonus bLongAtkRate,10; } },{},{} +19380,Floating_Ball,Floating Ball,4,10,,200,,,,0,0xFFFFFFFF,63,2,512,,100,,1760,{ bonus bMatk,35; bonus2 bMagicAddClass,Class_Boss,2; if (readparam(bDex)>=90) { bonus bMatk,70; bonus2 bMagicAddClass,Class_Boss,3; } if (readparam(bDex)>=125) { bonus bMatk,140; bonus2 bMagicAddClass,Class_Boss,5; } },{},{} +19381,Protect_Cloth,Protect Cloth,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,90,0,848,{ bonus bMdef,5; bonus bMaxHPrate,5; },{},{} +19387,Experimental_Goat_Cap,Experimental Goat Cap,4,20,,500,,2,,1,0xFFFFFFFF,63,2,256,,40,1,1768,{ .@r = getrefine(); .@sub = 10; .@dmg = 15; if (.@r >= 7) { .@dmg += 15; if (.@r >= 8) { .@sub += 15; if (.@r >= 9) { .@dmg += 20; } } } bonus2 bSubEle,Ele_Earth,.@val; /*bonus2 bAddRace2,RC2_WERNER_LAB,.@dmg; bonus2 bMagicAddRace2,RC2_WERNER_LAB,.@dmg; bonus2 bSubRace2,RC2_WERNER_LAB,.@dmg; Werner's Central lab is not implemented yet */ },{},{} +19391,Eyes_Of_Illusion,Eyes Of Illusion,4,20,,500,,2,,0,0xFFFFFFFF,63,2,512,,100,0,1779,{ bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSubRace,RC_Player,5; bonus2 bResEff,Eff_Blind,10000; if (getskilllv("GN_ILLUSIONDOPING")==5) skill "SA_DISPELL",5; if (getskilllv("GN_MANDRAGORA")==5) bonus2 bFixedCastrate,"GN_MANDRAGORA",-70; },{},{} +19407,Work_Cap,Work Cap,4,200,,1000,,18,,0,0xFFFFFFFF,63,2,256,,100,1,1793,{ .@r = getrefine(); bonus bMdef,15; bonus bVit,10; bonus2 bSkillAtk,"NC_AXETORNADO",20; bonus2 bVariableCastrate,"BS_GREED",-100; if (getskilllv("NC_MAGICDECOY") >= 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("NC_AXEBOOMERANG") >= 5) bonus bBaseAtk,100; if (getskilllv("NC_MAGMA_ERUPTION") >= 5) bonus2 bAddMonsterDropItem,732,10; if (.@r>=7) bonus2 bSkillAtk,"NC_AXETORNADO",30; if (.@r>=9) bonus2 bSkillAtk,"NC_AXETORNADO",50; if (.@r>=10) bonus bIgnoreDefClass,Class_All; },{},{} +19409,Black_Feather_Hat,Black Feather Hat,4,20,,1000,,18,,0,0xFFFFFFFF,63,2,256,,100,1,731,{ .@r = getrefine(); bonus bSPGainValue,50; bonus bLongSPGainValue,50; bonus bMagicSPGainValue,50; bonus bMdef,15; bonus bDex,10; bonus2 bSkillAtk,"SC_FEINTBOMB",10; if (getskilllv("SC_INVISIBILITY") >= 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("SC_MAELSTROM") >= 3) skill "TK_JUMPKICK",7; if (getskilllv("SC_REPRODUCE") >= 10) bonus bUseSPrate,-30; if (.@r>=7) { bonus2 bSkillAtk,"SC_FEINTBOMB",15; bonus bHit,30; } if (.@r>=9) { bonus2 bSkillAtk,"SC_FEINTBOMB",25; bonus bHit,20; } if (.@r>=10) bonus bIgnoreDefClass,Class_All; },{},{} +19426,Spirit_King's_Crown,Spirit King's Crown,4,20,,600,,12,,0,0xFFFFFFFF,63,2,256,,100,1,1118,{ .@r = getrefine(); bonus bMdef,15; bonus bFixedCastrate,-7*.@r; bonus bDelayrate,-10; bonus2 bSkillAtk,"SO_EARTHGRAVE",10; bonus2 bSkillAtk,"SO_DIAMONDDUST",10; bonus bVariableCastrate,-6*getskilllv("SO_EL_SYMPATHY"); if (getskilllv("SO_WARMER") >= 5) { bonus2 bSkillCooldown,"SO_EARTHGRAVE",-1000; bonus2 bSkillCooldown,"SO_DIAMONDDUST",-1000; bonus2 bSkillCooldown,"SO_VARETYR_SPEAR",-1000; } if (getskilllv("SO_ELEMENTAL_SHIELD") >= 5) bonus2 bMagicAddClass,Class_Boss,25; if (.@r>=7) { bonus2 bSkillAtk,"SO_EARTHGRAVE",15; bonus2 bSkillAtk,"SO_DIAMONDDUST",15; bonus bDelayrate,-5; } if (.@r>=9) { bonus bDelayrate,-5; bonus2 bSkillAtk,"SO_EARTHGRAVE",25; bonus2 bSkillAtk,"SO_DIAMONDDUST",25; } if (.@r>=10) bonus2 bIgnoreMdefClassRate,Class_All,100; },{},{} 19428,Illusion_Morpheus's_Hood,Illusion Morpheus's Hood,4,20,,200,,15,,1,0xFFFFFFFF,63,2,256,,130,1,256,{ .@r = getrefine(); bonus bInt,10; bonus bMdef,15; bonus bMaxSPrate,20; bonus bVariableCastrate,-(3*(.@r/2)); if (.@r >= 7) { bonus bMatk,30; if (.@r >= 9) { bonus bNoCastCancel; } } },{},{} +19453,Jeje_Cap,Jeje Cap,4,20,,1000,,18,,0,0xFFFFFFFF,63,2,256,,100,1,1011,{ .@r = getrefine(); .@dmg = 10; .@delay = -15-6*getskilllv("GN_CRAZYWEED"); bonus bMdef,15; bonus bNoCastCancel; bonus2 bVariableCastrate,"GN_CRAZYWEED",-50; bonus2 bVariableCastrate,"CR_ACIDDEMONSTRATION",-50; bonus2 bVariableCastrate,"CR_FULLPROTECTION",-50; if (.@r>=7) { .@dmg += 15; if (.@r>=9) { .@dmg += 25; if (.@r>=10) { bonus bIgnoreDefClass,Class_All; } } } if (getskilllv("GN_FIRE_EXPANSION") == 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("GN_CRAZYWEED") == 5) { .@delay -= 25; bonus2 bSkillCooldown,"GN_CRAZYWEED",-4500; } bonus2 bSkillAtk,"CR_ACIDDEMONSTRATION",.@dmg; bonus2 bSkillAtk,"GN_CRAZYWEED",.@dmg; bonus bDelayrate,.@delay; },{},{} +19469,Saint_Crown,Saint Crown,4,20,,600,,12,,0,0xFFFFFFFF,63,2,256,,100,1,1117,{ .@r = getrefine(); .@a = 5*(getskilllv("AB_LAUDAAGNUS")+getskilllv("AB_LAUDARAMUS")); .@dmg = 20; .@aspd = 10; bonus bMdef,15; bonus2 bSkillUseSP,"AB_JUDEX",15; bonus2 bSkillUseSP,"AB_ADORAMUS",15; bonus2 bVariableCastrate,"AB_JUDEX",-5*getskilllv("AB_ORATIO"); bonus2 bVariableCastrate,"AB_ADORAMUS",-5*getskilllv("AB_ORATIO"); if (getskilllv("AB_CLEARANCE") >= 5) { bonus2 bMagicAddClass,Class_Boss,25; } bonus2 bMagicAddEle,Ele_Undead,.@a; bonus2 bMagicAddEle,Ele_Ghost,.@a; bonus2 bMagicAddEle,Ele_Earth,.@a; bonus2 bMagicAddEle,Ele_Neutral,.@a; bonus2 bMagicAddRace,RC_DemiHuman,2*.@r; bonus2 bMagicAddRace,RC_Player,2*.@r; if (.@r >= 7) { .@dmg += 30; .@aspd += 5; if (.@r >= 9) { .@dmg += 50; .@aspd += 5; if (.@r >= 10) { bonus bNoGemStone; } } } bonus bAspdRate,.@aspd; bonus2 bSkillAtk,"AB_JUDEX",.@dmg; bonus2 bSkillAtk,"AB_ADORAMUS",.@dmg; },{},{} //=================================================================== // Costume System //=================================================================== @@ -10645,7 +10725,7 @@ 20128,C_Remover_Hat,Costume Remover Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,655,{},{},{} 20129,C_Poporing_Cap,Costume Poporing Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,361,{},{},{} 20130,C_Whisper_Tall_Hat,Costume Whisper Tall Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1265,{},{},{} -20131,C_C_Tower_Manager_Incom,Costume Clock Tower Manager,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,,0,1266,{},{},{} +20131,C_C_Tower_Manager_Incom,Costume Clock Tower Manager,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1266,{},{},{} 20132,C_Subject_Aura,Costume Aura Vicious Mind,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1267,{},{},{} 20133,C_Poring_Mascot_Costume,Costume Poring Mascot,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1268,{},{},{} 20134,C_Helm_Of_Abyss_White,Costume White Helm Of Abyss,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1269,{},{},{} @@ -10668,7 +10748,7 @@ 20151,C_Poison_Spore_Hat,Costume Poison Spore Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,899,{},{},{} 20152,C_Straw_Rice_Bag,Costume Straw Rice Bag,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,0,1273,{},{},{} 20153,C_Monochrome_Cap,Costume Monochrome Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1274,{},{},{} -20154,C_Maple_Which_Falls,Costume Maple Which Falls,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,,0,1275,{},{ sc_start SC_MAPLE_FALLS,INFINITE_TICK,0; },{ sc_end SC_MAPLE_FALLS; } +20154,C_Maple_Which_Falls,Costume Maple Which Falls,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1275,{},{ sc_start SC_MAPLE_FALLS,INFINITE_TICK,0; },{ sc_end SC_MAPLE_FALLS; } 20155,C_Ladys_Feather_Hat,Costume Lady's Feather Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,,0,1276,{},{},{} 20156,C_Fan_in_Mouth,Costume Fan in Mouth,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,857,{},{},{} 20157,C_Fish_On_Head,Costume Evolved Blue Fish,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,149,{},{},{} @@ -10685,7 +10765,7 @@ 20168,C_Skull_Hood,Costume Skull Hood,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,0,598,{},{},{} 20169,C_Long_Tongue,Costume Long Tongue,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,773,{},{},{} 20170,C_Brown_Deviruchi_Cap,Costume Brown Deviruchi Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,273,{},{},{} -20171,C_Sepia_Cap,Costume Sepia Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,,0,1280,{},{},{} +20171,C_Sepia_Cap,Costume Sepia Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1280,{},{},{} 20172,C_Pumpkin_Head,Costume Pumpkin Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1281,{},{},{} 20173,C_Lude_Hood,Costume Lude Hood,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1282,{},{},{} 20174,C_Halloween_Hat_Orange,Costume Orange Halloween Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1283,{},{},{} @@ -10709,7 +10789,7 @@ 20192,C_Green_Foxtail,Costume Green Foxtail,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1058,{},{},{} 20193,C_Foxtail,Costume Foxtail,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,711,{},{},{} 20194,C_Lion_Mask,Costume Lion Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,202,{},{},{} -20195,C_Scratching_Cat,Costume Scratching Cat,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,,0,1292,{},{},{} +20195,C_Scratching_Cat,Costume Scratching Cat,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,0,1292,{},{},{} 20196,C_Leopard_Ear_Hat,Costume Leopard Ear Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1293,{},{},{} 20197,C_Amistr_Beret,Costume Amistr Beret,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1294,{},{},{} 20198,C_Misty_Ears,Costume Misty Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1295,{},{},{} @@ -10826,7 +10906,7 @@ 20320,C_Red_Bandana,Costume Red Bandana,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,62,{},{},{} 20321,C_Pterios_Fins,Costume Pterios Fins,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1009,{},{},{} 20322,C_Seal_Hat,Costume Seal Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,540,{},{},{} -20323,C_Sparkling_Sound,Costume Sparkling Sound,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1074,{},{},{} +20323,C_Sparkling_Sound,Costume Sparkling Sound,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1074,{},{ sc_start SC_DECORATION_OF_MUSIC,INFINITE_TICK,0; },{ sc_end SC_DECORATION_OF_MUSIC; } 20324,C_Pigeon_Hat,Costume Pigeon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1362,{},{},{} 20325,C_Little_Aquarium,Costume Little Aquarium,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1363,{},{},{} 20326,C_Sailor_Collar,Costume Sailor Collar,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1364,{},{},{} @@ -10885,18 +10965,19 @@ 20383,C_Magic_Decoy_Doll,Costume Magic Decoy Doll,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1408,{},{},{} 20384,C_Douce_Tiara,Costume Douce Tiara,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1410,{},{},{} 20386,C_Victory_Wing_Helm,Costume Victory Wing Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,677,{},{},{} +20391,C_Silent_Executor,Costume Silent Executor,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,0,632,{},{},{} 20392,C_Sniper_Google,Costume Sniper Google,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,0,625,{},{},{} 20393,C_Schmitz_Helm,Costume Schmitz Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,634,{},{},{} 20394,C_Pumpkin_Toque,Costume Pumpkin Toque,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1411,{},{},{} 20396,C_Green_Hat,Costume Green Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,939,{},{},{} -20397,C_Jakk,C Jack,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,0,1415,{ autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }"; },{},{} +20397,C_Jakk,Costume Jack,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,0,1415,{ autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }"; },{},{} 20398,C_Niffleheim_Bunny_Hat,Costume Niffleheim Bunny Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1285,{},{},{} 20399,C_Crow_Tengu_Mask,Costume Crow Tengu Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1287,{},{},{} 20400,C_Ichthys_Rosario,Costume Ichthys Rosario,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1028,{},{},{} 20401,C_Angel_Guidance,Costume Angel Guidance,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1188,{},{},{} 20402,C_Holy_Klobuk,Costume Holy Klobuk,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,895,{},{},{} 20403,C_Dolor_Thanatos,Costume Dolor Thanatos,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,547,{},{},{} -20404,C_Blessing_Of_Angels,Costume Blessing of Angel,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1425,{},{},{} +20404,C_Blessing_Of_Angels,Costume Blessing of Angel,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1425,{ hateffect(HAT_EF_BLESSING_OF_ANGELS,true); },{},{ hateffect(HAT_EF_BLESSING_OF_ANGELS,false); } 20405,C_Eremes_Scarf,Costume Eremes Scarf,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1416,{},{},{} 20406,C_Commandments_Of_Chain,Costume Chain of Commandments,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,0,1417,{},{},{} 20407,C_Subject_Aura_Red,Costume Vicious Mind Aura Crimson,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1418,{},{},{} @@ -10921,339 +11002,6 @@ 20432,C_Khalitzburg_Knight_Helm,Costume Khalitzburg Knight Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1442,{},{},{} 20433,C_Louise_Red_Hat,Costume Louise Red Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1443,{},{},{} 20434,C_Drooping_Gunslinger,Costume Drooping Gunslinger,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1444,{},{},{} -20435,C_Camellia_Hair_Pin,Costume Camellia Hair Pin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1203,{},{},{} -20075,C_Little_Fhat,Costume Little Feather Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,715,{},{},{} -20076,C_Idun_Wing_Ears,Costume Idun Feather Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,724,{},{},{} -20077,C_Wing_Form_Spectacle,Costume Wing Frame Sunglasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,925,{},{},{} -20078,C_White_Feather,Costume White Feather,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,741,{},{},{} -20079,C_Love_Daddy_2013,Costume Forgotten Angel Wing,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1104,{},{},{} -20080,C_Shaman's_Hair_Orna,Costume Shaman Hair Ornament,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,476,{},{},{} -20081,C_Metal_Dragon_Helm,Costume Metal Dragon Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1242,{},{},{} -20082,C_Metal_Dragon_Hat,Costume Metal Dragon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1243,{},{},{} -20083,C_Mythlit_Hat,Costume Mythlit Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1244,{},{},{} -20084,C_Clover_Coronet,Costume Ceremonial Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,325,{},{},{} -20085,C_Clover_Silkhat,Costume St Patrick's Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,735,{},{},{} -20086,C_Dragon_Cintamani_Hat1,Costume Dragon Cintamani Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1245,{},{},{} -20087,C_Dragon_Cintamani_Hat2,Costume Dragon Cintamani Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1246,{},{},{} -20088,C_Dragon_Cintamani_Hat3,Costume Dragon Cintamani Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1247,{},{},{} -20089,C_Dragon_Cintamani_Hat4,Costume Dragon Cintamani Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1248,{},{},{} -20090,C_Egg_Shell,Costume Egg Shell,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,101,{},{},{} -20091,C_Smoking_Pipe,Costume Pipe,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,55,{},{},{} -20092,C_Sales_Signboard,Costume Sales Banner,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,183,{},{},{} -20093,C_Star_Sparkling,Costume Wizard Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,36,{},{},{} -20094,C_Fillet_Green,Costume Green Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,439,{},{},{} -20095,C_Fillet_Red,Costume Red Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,440,{},{},{} -20096,C_Fillet_Blue,Costume Blue Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,441,{},{},{} -20097,C_Fillet_White,Costume White Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,442,{},{},{} -20098,C_Vampire_Hairband,Costume Vampire Hairband,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1238,{},{},{} -20099,C_Ljosalfar,Flying Ljosalfar,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1239,{},{ sc_start SC_LJOSALFAR,INFINITE_TICK,0; },{ sc_end SC_LJOSALFAR; } -20100,C_Volume_Fhat,Costume Volume Fhat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1240,{},{},{} -20101,C_Bragi_Wing_Ears,Costume Bragi Wing Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1241,{},{},{} -20102,C_Horse_King_J,Costume Horse King J,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1189,{},{},{} -20103,C_Drooping_Panda,Costume Drooping Panda,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1029,{},{},{} -20104,C_Picky_Egg_Shell,Costume Picky Egg Shell,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1001,{},{},{} -20105,C_Fish_Head_Hat,Costume Fish Head,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,386,{},{},{} -20106,C_Classic_Hat,Costume Classic Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,475,{},{},{} -20107,C_Fish_In_Mouth,Costume Fish In Mouth,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,406,{},{},{} -20108,C_Blind_Glasses,Costume Blind Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,813,{},{},{} -20109,C_Jolly_Roger,Costume Jolly Roger Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,962,{},{},{} -20110,C_Coiledup_Snake,Costume Coiledup Snake,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1258,{},{},{} -20111,C_Coiledup_Snake_Hat2,Costume Coiledup Snake Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1259,{},{},{} -20112,C_Aqua_Ten_Gallon_Hat,Costume Aqua Ten Gallon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1256,{},{},{} -20113,C_Star_Reading_Hat,Costume Star Reading Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1253,{},{},{} -20114,C_Funeral_Costume,Costume Funeral Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,77,{},{},{} -20115,C_Under_Rim_Glasses,Under Rim Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1255,{},{},{} -20116,C_Mermaid_Headphone,Mermaid Headphone,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1254,{},{},{} -20117,C_Raspberry_Mousse_Hat,Raspberry Mousse Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1257,{},{},{} -20118,C_Hat_Of_Cake,Costume Cake Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,109,{},{},{} -20119,C_Fur_Hat,Costume Beanie,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,160,{},{},{} -20120,C_Antenna,Costume Aerial,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,97,{},{},{} -20121,C_Lotus_Flower_Hat,Costume Flower Lily,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,324,{},{},{} -20122,Happy_Summer_Ribbon,Costume Happy Summer Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1260,{},{},{} -20123,C_Eagle_Eyes,Costume Eagle Eyes,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,63,{},{},{} -20124,C_Masquerade,Costume Masquerade,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,78,{},{},{} -20125,C_Mini_Glasses,Costume Mini Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,47,{},{},{} -20126,C_Odium_Thanatos_Mask,Costume Odium Thanatos Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,667,{},{},{} -20127,C_Abysmal_Knight_Helm,Costume Abysmal Knight Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,371,{},{},{} -20128,C_Remover_Hat,Costume Remover Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,655,{},{},{} -20129,C_Poporing_Cap,Costume Poporing Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,361,{},{},{} -20130,C_Whisper_Tall_Hat,Costume Whisper Tall Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1265,{},{},{} -20131,C_C_Tower_Manager_Incom,Costume Clock Tower Manager,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,,1,1266,{},{},{} -20132,C_Subject_Aura,Costume Aura Vicious Mind,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1267,{},{},{} -20133,C_Poring_Mascot_Costume,Costume Poring Mascot,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1268,{},{},{} -20134,C_Helm_Of_Abyss_White,Costume White Helm Of Abyss,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1269,{},{},{} -20135,C_12_Anniversary_Crown_Of_Saint,Costume 12 Anniversary Crown of Saint,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1117,{},{},{} -20136,C_12_Anniversary_Elf_Ears,Costume 12 Anniversary Elf Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,875,{},{},{} -20137,C_Bomb_Wick,Costume Bomb Wick,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,66,{},{},{} -20138,C_Sea_Otter_Hat,Costume Sea Otter Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,162,{},{},{} -20139,C_Horse_Hairpin,Costume Horse Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1271,{},{},{} -20140,C_Horse_Hairpin_,Costume Horse Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1272,{},{},{} -20141,C_Observer,Costume Observer,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,337,{},{},{} -20142,C_Machoman_Glasses,Costume Machoman Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,92,{},{},{} -20143,C_Candy_Cane_In_Mouth,Costume Candy Cane In Mouth,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,665,{},{},{} -20144,C_Ancient_Elven_Ear,Costume Ancient Elven Ear,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,665,{},{},{} -20145,C_Robo_Eye,Costume Robo Eye,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,345,{},{},{} -20146,C_Angel_Spirit,Costume Angel of Ghost,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,394,{},{},{} -20147,C_Bell_Pigeon,Costume Bell of Piegon,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1034,{},{},{} -20148,C_Musketeer_Hat,Costume Musketeer Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,466,{},{},{} -20149,C_Hexagon_Glasses,Costume Hexagon Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,822,{},{},{} -20150,C_Wind_Fan,Costume Wind Fan,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1051,{},{},{} -20151,C_Poison_Spore_Hat,Costume Poison Spore Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,899,{},{},{} -20152,C_Straw_Rice_Bag,Costume Straw Rice Bag,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1273,{},{},{} -20153,C_Monochrome_Cap,Costume Monochrome Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1274,{},{},{} -20154,C_Maple_Which_Falls,Costume Maple Which Falls,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,,1,1275,{},{ sc_start SC_MAPLE_FALLS,INFINITE_TICK,0; },{ sc_end SC_MAPLE_FALLS; } -20155,C_Ladys_Feather_Hat,Costume Lady's Feather Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1276,{},{},{} -20156,C_Fan_in_Mouth,Costume Fan in Mouth,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,857,{},{},{} -20157,C_Fish_On_Head,Costume Evolved Blue Fish,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,149,{},{},{} -20158,C_Circlet,Costume Circlet,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,18,{},{},{} -20159,C_Blue_Hair_Band,Costume Blue Hairband,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,136,{},{},{} -20160,C_Fried_Egg,Costume Magnolia Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,373,{},{},{} -20161,C_Prontera_Army_Cap,Costume Army Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,48,{},{},{} -20162,C_Fleece_Hat,Costume Fleece Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1277,{},{},{} -20163,C_Fleece_Hat_,Costume Fleece Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1278,{},{},{} -20164,C_Duneyrr_Hat,Costume Duneyrr Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,639,{},{},{} -20165,C_Tendrilion_Hat,Costume Tendrilion Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,658,{},{},{} -20166,C_Hockey_Mask,Costume Hockey Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,336,{},{},{} -20167,C_Deviruchi_Headphone,Costume Deviruchi Headphone,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,805,{},{},{} -20168,C_Skull_Hood,Costume Skull Hood,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,1,598,{},{},{} -20169,C_Long_Tongue,Costume Long Tongue,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,773,{},{},{} -20170,C_Brown_Deviruchi_Cap,Costume Brown Deviruchi Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,273,{},{},{} -20171,C_Sepia_Cap,Costume Sepia Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1280,{},{},{} -20172,C_Pumpkin_Head,Costume Pumpkin Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1281,{},{},{} -20173,C_Lude_Hood,Costume Lude Hood,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1282,{},{},{} -20174,C_Halloween_Hat_Orange,Costume Orange Halloween Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1283,{},{},{} -20175,C_Diabolic_Headphone,Costume Diabolic Headphone,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1284,{},{},{} -20176,Happy_Pierrot_Mask,Costume Happy Pierrot Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,1288,{},{},{} -20177,C_Drooping_Dorasuke,Costume Drooping Dorasuke,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1290,{},{},{} -20178,C_Puppy_Love,Costume Puppy Love,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,94,{},{},{} -20179,C_Monkey_Coat_Hat,Costume Monkey Coat Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,858,{},{},{} -20180,C_Westren_Grace,Costume Western Grace,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,32,{},{},{} -20181,C_Mistic_Rose,Costume Mystic Rose,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,198,{},{},{} -20182,C_Mottled_Egg_Shell,Costume Rainbow Eggshell,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,124,{},{},{} -20183,C_There_Is_Something,Costume There's..Something..,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,1,1091,{},{},{} -20184,C_Party_Hat,Costume Party Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,144,{},{},{} -20185,C_Fashionable_Glasses,Costume Fashionable Glasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,131,{},{},{} -20186,C_Magni_Cap,Costume Magni's Cap,4,20,,,,,,,0xFFFFFFFF,63,2,1024,,1,1,250,{},{},{} -20187,C_Fricca's_Circlet,Costume Fricca's Circlet,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,251,{},{},{} -20188,C_Morpheus's_Hood,Costume Morpheus's Hood,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,256,{},{},{} -20189,C_Goibne's_Helm,Costume Goibne's Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,258,{},{},{} -20190,C_Chick_Hat_J,Costume Chick Hat J,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,432,{},{},{} -20191,C_Black_Cat_Ears_Beret,Costume Black Cat Ears Beret,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1071,{},{},{} -20192,C_Green_Foxtail,Costume Green Foxtail,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1058,{},{},{} -20193,C_Foxtail,Costume Foxtail,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,711,{},{},{} -20194,C_Lion_Mask,Costume Lion Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,202,{},{},{} -20195,C_Scratching_Cat,Costume Scratching Cat,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,,1,1292,{},{},{} -20196,C_Leopard_Ear_Hat,Costume Leopard Ear Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1293,{},{},{} -20197,C_Amistr_Beret,Costume Amistr Beret,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1294,{},{},{} -20198,C_Misty_Ears,Costume Misty Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1295,{},{},{} -20199,C_Evil_Marcher_Hat,Costume Evil Marcher Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,687,{},{},{} -20200,C_Rabbit_Head_Dress,Costume Rabbit Head Dress,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1095,{},{},{} -20201,C_Banshee_Master_Kiss,Costume Banshee Master Kiss,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,959,{},{},{} -20202,C_Deviruchi_Balloon,Costume Deviruchi Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1082,{},{},{} -20203,C_Bandana,Costume Bandana,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,6,{},{},{} -20204,C_Hunting_Cap,Costume Hunter Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,389,{},{},{} -20205,C_Fancy_Flower,Costume Fancy Flower,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,4,{},{},{} -20206,C_Chicken_Hat,Costume Chicken Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1296,{},{},{} -20207,C_Stripe_Band,Costume Striped Hairband,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,133,{},{},{} -20208,C_Necktie,Costume Neck Tie,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,443,{},{},{} -20209,C_Mermaid_Longing,Costume Mermaid Bubbles,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1299,{},{ sc_start SC_MERMAID_LONGING,INFINITE_TICK,0; },{ sc_end SC_MERMAID_LONGING; } // jRO Item -20210,C_Chicken_Hat_,Costume Chicken Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1297,{},{},{} -20211,C_Chicken_Hat__,Costume Chicken Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1298,{},{},{} -20212,C_Loki_Nidhogg_Hat,Costume Loki & Nidhoggur's Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1304,{},{},{} -20213,C_Sirt_Evil_Eye,Costume Robot Eyes,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,345,{},{},{} -20214,C_Evil_Marcher_Hat_J,Costume Evil Marcher Hat J,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1002,{},{},{} -20215,C_Black_Devil_Mask,Costume Black Devil Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,760,{},{},{} -20216,C_Rideword_Hat,Costume Rideword Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,890,{},{},{} -20217,C_Arabian_Veil,Costume Arabian Veil,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1300,{},{},{} -20218,C_Spell_Circuit,Costume Spell Circuit,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1301,{},{},{} -20219,C_Angel_Marcher_Hat,Costume Angel Marcher Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1302,{},{},{} -20220,C_Dark_Night_Veil,Costume Dark Night Veil,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,1,1303,{},{},{} -20221,C_Eyes_Of_Ifrit,C Eyes Of Ifrit,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,886,{},{},{} -20222,C_Santa_Hat_2,Costume Blue Pigtail Santa Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,395,{},{},{} -20223,C_Centimental_Leaf,Costume Romantic Leaf,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,57,{},{},{} -20224,C_Red_Tailed_Ribbon,Costume Red Tailed Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,167,{},{},{} -20225,C_Pumpkin_Hat,Costume Pumpkin-Head,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,206,{},{},{} -20226,C_Hair_Brush,Costume Red Comb,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,445,{},{},{} -20227,C_Husky_Hat,Costume Husky Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1016,{},{},{} -20228,C_Pig_MoneyBox,Costume Pig MoneyBox,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,603,{},{},{} -20230,C_Mask_Of_Bankrupt,Costume Bankruptcy Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,936,{},{},{} -20231,C_Snowman_Hat,Costume Snowman Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,616,{},{},{} -20232,C_Celines_Ribbon,Costume Celine Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,967,{},{},{} -20233,C_Gold_Angel_Sculpture,Costume Golden Angel,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,646,{},{},{} -20234,C_Baphomet_Hat,Costume Baphomet Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1311,{ bonus bMaxHPrate,15; bonus bMaxSPrate,15; bonus2 bAddRace,RC_All,15; bonus2 bMagicAddRace,RC_All,15; bonus2 bAddItemHealRate,519,2015; },{},{} -20235,C_Frozen_Land_Rose,Costume Frozen Rose,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1025,{},{},{} -20236,C_Hellomother_Hat,Costume Arc Angeling Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,241,{},{},{} -20237,C_Pink_Fur_Hat,Costume Pink Beanie,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,281,{},{},{} -20238,C_Blue_Drooping_Kitty,Costume Drooping Blue Cat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,277,{},{},{} -20239,C_Large_Ribbon_Muffler,Costume Large Ribbon Muffler,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1312,{},{},{} -20240,C_Gift_Of_Snow,Costume Gift of Snow,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,,{/*TODO: ViewID*/},{},{} -20241,C_Eclipse_Hat,Costume Eclipse Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,922,{},{},{} -20242,C_Snownow_Hat,Costume Snownow Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1313,{},{},{} -20243,C_Choco_Mint_Bonnet,Costume Choco Mint Bonnet,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1314,{},{},{} -20244,C_Zealotus_Mask,Costume Zealotus Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,1,200,{},{},{} -20245,C_Cat_Paw_Hairpin,Costume Cat Paw Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,447,{},{},{} -20246,C_Decoration_Time,Costume Decoration Time,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1309,{},{ sc_start SC_TIME_ACCESSORY,INFINITE_TICK,0; },{ sc_end SC_TIME_ACCESSORY; } -20247,C_Fate_Of_Black_Hand,Costume Fate Of Black Hand,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1310,{},{},{} -20248,C_Black_Strong_Hair,Costume Black Strong Hair,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1315,{},{},{} -20249,C_Red_Strong_Hair,Costume Red Strong Hair,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1316,{},{},{} -20250,C_White_Strong_Hair,Costume White Strong Hair,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1317,{},{},{} -20251,C_Rose_Cascade,Costume Rose Cascade,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,920,{},{},{} -20252,C_Accessory_of_Ascetic,Costume Mage Decoration,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1150,{},{},{} -20253,C_Droopy_Alice_Doll,Costume Drooping Alicel,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,784,{},{},{} -20254,C_Ribbon_Yellow,Costume Yellow Ribbonn,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,243,{},{},{} -20255,C_Love_Cheek,Costume Love Cheeks,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1318,{},{},{} -20256,C_Honey_Pancakes,Costume Honey Pancake,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1319,{},{},{} -20257,C_Black_Rabbit_Bonnet,Costume Black Rabbit Bonnet,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1320,{},{},{} -20258,C_Blue_Head_Dress,Costume Blue Headdress,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1321,{},{},{} -20259,C_Pink_Clover,Costume Pink Clover,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1322,{},{},{} -20260,C_Stardust,Costume Stardust,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,81,{},{},{} -20262,C_Fox_Ears_Bell_Ribbon,Costume Fox Ears Drop Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1070,{},{},{} -20263,C_Hat_Of_Drowsy_Cat,Costume Sleeping Cat Hat J,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,838,{},{},{} -20264,C_Blood_Sucker,Costume Blood Sucker,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,893,{},{},{} -20265,C_Bird_Nest_Hat,Costume Bird Nest Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,235,{},{},{} -20266,C_Secret_Zipper,Costume Secret Zipper,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1324,{},{},{} -20267,C_Penguin_Cap,Costume Penguin Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1325,{},{},{} -20268,C_Sleep_Eclipse_Family,Costume Sleep Eclipse Family,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1326,{},{},{} -20269,C_White_Fox_Ear_Ribbon,Costume White Fox Ear Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1327,{},{},{} -20270,C_Gryphon_Wing_Ears,Costume Gryphon Wing Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1328,{},{},{} -20271,C_Sunflower,Costume Sunflower,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,37,{},{},{} -20272,C_Snowy_Horn,Costume Unicorn Horn,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,42,{},{},{} -20273,C_Soft_Sheep_Hat,Costume Soft Sheep Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,738,{},{},{} -20274,C_Polar_Bear_Cap_J,Costume Polar Bear Cap J,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,966,{},{},{} -20277,C_Balloon_Hat,Costume Balloon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,385,{},{},{} -20278,C_Mans_Medal,Costume Man's Medal,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,775,{},{},{} -20279,C_Cheering_Whistle,Costume Cheering Whistle,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,952,{},{},{} -20280,C_Well-Chewed_Pencil,Costume Well-Chewed Pencil,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,555,{},{},{} -20281,C_Kindergarten_Hat,Costume Kindergarten Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,977,{},{},{} -20282,C_White_Student_Cap,Costume White Student Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,877,{},{},{} -20283,C_Over_Protector,Costume Over Protector,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1329,{},{},{} -20284,C_Cherry_Blossom_Hat,Costume Sakura Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1330,{},{},{} -20285,C_Blossom_Fluttering,Costume Dancing Fallen Sakura,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1331,{ hateffect HAT_EF_BLOSSOM_FLUTTERING,true; },{},{ hateffect HAT_EF_BLOSSOM_FLUTTERING,false; } -20286,C_Under_Rim_Glasses_Red,Costume Under Rim Glasses Red,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1332,{},{},{} -20287,C_Mans_Medal_Gold,Costume Man's Medal(Gold),4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1333,{},{},{} -20288,C_Bijou_Hat,Costume Bijou Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1334,{},{},{} -20291,C_Helm_of_Thoth,Costume Helm of Thoth,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,860,{},{},{} -20292,C_Black_Ramen_Hat,Costume Black Ramen Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1338,{},{},{} -20293,C_Sleeper_Hat,Costume Sleeper Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,590,{},{},{} -20294,C_Savage_Babe_Hat,Costume Savage Babe Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,553,{},{},{} -20295,C_Poring_Sunglasses,Costume Poring Sunglasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,954,{},{},{} -20296,C_Yoyo_Hat,Costume Yoyo Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,391,{},{},{} -20297,C_Cactus_Hat,Costume Cactus Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,615,{},{},{} -20298,C_Happy_Lunatic_Ear,Costume Happy Lunatic Hanging Ear,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1340,{},{},{} -20299,C_Face_Crusher,Costume Face Crusher,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,1341,{},{},{} -20300,C_Hill_Wind_Mask,Costume Hill Wind Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,1,1342,{},{},{} -20301,C_Golden_Savage_Hat,Costume Golden Savage Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,648,{},{},{} -20302,C_Beelzebub_Crown,Costume Beelzebub Crown,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1343,{},{},{} -20303,C_Mandragora_Cap,Costume Mandragora Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,402,{},{},{} -20304,C_Raccoon_Hat,Costume Raccoon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,118,{},{},{} -20307,C_Beginner_Cap,Costume Beginner Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1348,{},{},{} -20311,C_Magical_Booster,Costume Magical Booster,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,873,{},{},{} -20312,C_Barons_Evil_Eye,Costume Baron's Evil Eye,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,989,{},{},{} -20313,C_CD_in_Mouth,Costume CD in Mouth,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,815,{},{},{} -20314,C_New_Wave_Sunglasses,Costume New Wave Sunglasses,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,856,{},{},{} -20315,C_Analyze_Eye,Costume Analyze Eye,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1351,{},{},{} -20316,C_Seraph_Wing_Helm,Costume Seraph Wing Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1352,{},{},{} -20317,C_Nekomimi_Cyber_Headphone,Costume Nekomimi Cyber Headphone,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1353,{},{},{} -20318,C_Charleston_Antenna,Costume Charleston Antenna,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1354,{},{},{} -20319,C_Crimson_Booster,Costume Crimson Booster,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1355,{},{},{} -20320,C_Red_Bandana,Costume Red Bandana,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,62,{},{},{} -20321,C_Pterios_Fins,Costume Pterios Fins,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1009,{},{},{} -20322,C_Seal_Hat,Costume Seal Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,540,{},{},{} -20323,C_Sparkling_Sound,Costume Sparkling Sound,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1074,{},{ sc_start SC_DECORATION_OF_MUSIC,INFINITE_TICK,0; },{ sc_end SC_DECORATION_OF_MUSIC; } -20324,C_Pigeon_Hat,Costume Pigeon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1362,{},{},{} -20325,C_Little_Aquarium,Costume Little Aquarium,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1363,{},{},{} -20326,C_Sailor_Collar,Costume Sailor Collar,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1364,{},{},{} -20327,C_Marine_Cap,Costume Marine Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1365,{},{},{} -20328,C_Mackerel_Pike,Costume Mackerel Pike,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1081,{},{},{} -20329,C_Very_Cute_Doll_Hat,Costume Very Cute Doll Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1084,{},{},{} -20330,C_Sombrero,Costume Sombrero,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,151,{},{},{} -20331,C_Desert_Prince,Costume Desert Prince,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,567,{},{},{} -20332,C_Pure_White_Ribbon,Costume Pure White Ribbon,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1175,{},{},{} -20333,C_Family_Hat,Costume Family Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,650,{},{},{} -20334,C_Joystick_Hat,Costume Joystick Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1305,{},{},{} -20335,C_Watery_Eyes,Costume Watery Eyes,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,828,{},{},{} -20338,C_Colorful_Dancing_Octopus,Costume Colorful Dancing Octopus,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1007,{},{},{} -20339,C_Flower_Summer_Hat,Costume Flower Summer Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1369,{},{},{} -20340,C_Straight_Pony_Black,Costume Straight Pony Black,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1371,{},{},{} -20341,C_Bouncing_Hair_Black,Costume Bouncing Hair Black,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1372,{},{},{} -20342,C_Loose_Wave_Twin,Costume Loose Wave Twin,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1373,{},{},{} -20345,C_Seagod_Protector,Costume Seagod Protector,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,960,{},{},{} -20346,C_Drooping_Permeter,Costume Drooping Permeter,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,694,{},{},{} -20347,C_Poring_Pirate_Hat,Costume Poring Pirate Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,726,{},{},{} -20348,C_Sunday_Hat,Costume Sunday Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,117,{},{},{} -20349,C_Flying_Galapago,Costume Flying Galapago,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1358,{},{},{} -20350,C_Bouncing_Hair_Yellow,Costume Bouncing Hair Yellow,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1382,{},{},{} -20351,C_Bouncing_Hair_Green,Costume Bouncing Hair Green,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1383,{},{},{} -20352,C_Bouncing_Hair_Purple,Costume Bouncing Hair Purple,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1384,{},{},{} -20353,C_Bouncing_Hair_Red,Costume Bouncing Hair Red,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1385,{},{},{} -20354,C_Bouncing_Hair_Crimson,Costume Bouncing Hair Crimson,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1386,{},{},{} -20355,C_Bouncing_Hair_Blue,Costume Bouncing Hair Blue,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1387,{},{},{} -20356,C_Bouncing_Hair_White,Costume Bouncing Hair White,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1388,{},{},{} -20357,C_Straight_Pony_Yellow,Costume Straight Pony Yellow,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1389,{},{},{} -20358,C_Straight_Pony_Green,Costume Straight Pony Green,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1390,{},{},{} -20359,C_Straight_Pony_Purple,Costume Straight Pony Purple,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1391,{},{},{} -20360,C_Straight_Pony_Red,Costume Straight Pony Red,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1392,{},{},{} -20361,C_Straight_Pony_Crimson,Costume Straight Pony Crimson,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1393,{},{},{} -20362,C_Straight_Pony_Blue,Costume Straight Pony Blue,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1394,{},{},{} -20363,C_Straight_Pony_White,Costume Straight Pony White,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1395,{},{},{} -20364,C_Loose_Wave_Twin_Yellow,Costume Loose Wave Twin Yellow,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1396,{},{},{} -20365,C_Loose_Wave_Twin_Green,Costume Loose Wave Twin Green,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1397,{},{},{} -20366,C_Loose_Wave_Twin_Purple,Costume Loose Wave Twin Purple,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1398,{},{},{} -20367,C_Loose_Wave_Twin_Red,Costume Loose Wave Twin Red,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1399,{},{},{} -20368,C_Loose_Wave_Twin_Crimson,Costume Loose Wave Twin Crimson,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1400,{},{},{} -20369,C_Loose_Wave_Twin_Blue,Costume Loose Wave Twin Blue,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1401,{},{},{} -20370,C_Loose_Wave_Twin_White,Costume Loose Wave Twin White,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1402,{},{},{} -20371,C_Special_Kafra_Hat,Costume Special Kafra Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,581,{},{},{} -20372,C_Ribbon_Hat,Costume Ribbon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,956,{},{},{} -20373,C_Watermelon_Hat,Costume Watermelon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,690,{},{},{} -20374,C_Mechanical_Plant_Hat,Costume Mechanical Plant Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1069,{},{},{} -20375,C_Ignis_Cap,Costume Ignis Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,803,{},{},{} -20376,C_Memory_of_Lovers,Costume Memory of Lovers,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1072,{},{},{} -20377,C_Flight_Cap,Costume Flight Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,820,{},{},{} -20378,C_Skymet,Costume Sky Met,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,868,{},{},{} -20379,C_Pocketwatch_Hair_Ornament,Costume Pocketwatch Hair Ornament,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1404,{},{},{} -20380,C_Mechanical_Feather_Hairband,Costume Mechanical Feather Hairband,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1405,{},{},{} -20381,C_Steampunk_Hat,Costume Steampunk Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1406,{},{},{} -20382,C_Silver_Sniper_Doll,Costume Silver Sniper Doll,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1407,{},{},{} -20383,C_Magic_Decoy_Doll,Costume Magic Decoy Doll,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1408,{},{},{} -20384,C_Douce_Tiara,Costume Douce Tiara,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1410,{},{},{} -20386,C_Victory_Wing_Helm,Costume Victory Wing Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,677,{},{},{} -20392,C_Sniper_Google,Costume Sniper Google,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,1,625,{},{},{} -20393,C_Schmitz_Helm,Costume Schmitz Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,634,{},{},{} -20394,C_Pumpkin_Toque,Costume Pumpkin Toque,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1411,{},{},{} -20396,C_Green_Hat,Costume Green Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,939,{},{},{} -20397,C_Jakk,Jack,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,1415,{ autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }"; },{},{} -20398,C_Niffleheim_Bunny_Hat,Costume Niffleheim Bunny Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1285,{},{},{} -20399,C_Crow_Tengu_Mask,Costume Crow Tengu Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1287,{},{},{} -20400,C_Ichthys_Rosario,Costume Ichthys Rosario,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1028,{},{},{} -20401,C_Angel_Guidance,Costume Angel Guidance,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1188,{},{},{} -20402,C_Holy_Klobuk,Costume Holy Klobuk,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,895,{},{},{} -20403,C_Dolor_Thanatos,Costume Dolor Thanatos,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,547,{},{},{} -20404,C_Blessing_Of_Angels,Costume Blessing of Angel,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1425,{ hateffect(HAT_EF_BLESSING_OF_ANGELS,true); },{},{ hateffect(HAT_EF_BLESSING_OF_ANGELS,false); } -20405,C_Eremes_Scarf,Costume Eremes Scarf,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1416,{},{},{} -20406,C_Commandments_Of_Chain,Costume Chain of Commandments,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1417,{},{},{} -20407,C_Subject_Aura_Red,Costume Vicious Mind Aura Crimson,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1418,{},{},{} -20408,C_Requiem_Crown_of_Light_and_Dark,Costume Requiem Crown of Light and Dark,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1419,{},{},{} -20409,C_There_is_Something_,Costume There is Something,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1091,{},{},{} -20416,C_1Grade_Balloon,Costume Grade 1 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1426,{},{},{} -20417,C_2Grade_Balloon,Costume Grade 2 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1427,{},{},{} -20418,C_3Grade_Balloon,Costume Grade 3 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1428,{},{},{} -20419,C_4Grade_Balloon,Costume Grade 4 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1429,{},{},{} -20420,C_5Grade_Balloon,Costume Grade 5 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1430,{},{},{} -20421,C_6Grade_Balloon,Costume Grade 6 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1431,{},{},{} -20422,C_7Grade_Balloon,Costume Grade 7 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1432,{},{},{} -20423,C_8Grade_Balloon,Costume Grade 8 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1433,{},{},{} -20424,C_9Grade_Balloon,Costume Grade 9 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1434,{},{},{} -20425,C_10Grade_Balloon,Costume Grade 10 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1435,{},{},{} -20426,C_11Grade_Balloon,Costume Grade 11 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1436,{},{},{} -20427,C_12Grade_Balloon,Costume Grade 12 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1437,{},{},{} -20428,C_13Grade_Balloon,Costume Grade 13 Balloon,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1438,{},{},{} -20429,C_Piamette_Bowtie,Costume Piamette Bowtie,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1439,{},{},{} -20430,C_Loyal_Servant_of_Devil_Morocc,Costume Loyal Servant of Devil Morocc,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1440,{},{},{} -20431,C_Magician_Headdress,Costume Magician Headdress,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1441,{},{},{} -20432,C_Khalitzburg_Knight_Helm,Costume Khalitzburg Knight Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1442,{},{},{} -20433,C_Louise_Red_Hat,Costume Louise Red Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1443,{},{},{} -20434,C_Drooping_Gunslinger,Costume Drooping Gunslinger,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1444,{},{},{} 20435,C_Camellia_Hair_Pin,Costume Camellia Hair Pin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1203,{ hateffect(HAT_EF_CAMELLIA_HAIR_PIN,true); },{},{ hateffect(HAT_EF_CAMELLIA_HAIR_PIN,false); } 20436,C_Angelring_Furhat,Costume Angelring Furhat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,953,{},{},{} 20437,C_Sakura_Hairband,Costume Sakura Hairband,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,949,{},{},{} @@ -11329,12 +11077,16 @@ 20709,Mana_Manteau,Mana Manteau,4,0,,0,,,,0,0xFFFFFFFF,63,2,4,,1,1,,{ bonus2 bExpAddRace,RC_All,10; },{},{} 20710,Impr_Angel's_Warmth,Advanced Angelic Cardigan,4,10000,,400,,6,,1,0x00000001,63,2,4,,99,1,0,{ bonus bHPrecovRate,50; },{},{} 20711,Manteau_Of_Diego,Manteau Of Diego,4,20,,600,,15,,1,0xFFFFFFFF,63,2,4,,0,1,0,{ bonus bInt,1; bonus bDex,1; bonus bMdef,3; },{},{} +20712,Valkyrie_Cape,Valkyrie Cape,4,10,,500,,10,,1,0x6007DFFE,58,2,4,,1,1,0,{ .@val = 2 * (min(10,getrefine())/2); if (BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte) bonus bFlee2,(5+.@val); else if (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) bonus bShortWeaponDamageReturn,(5+.@val); },{},{} +20714,Assassin's_Muffler,Assassin's Muffler,4,20,,100,,16,,1,0xFFFFFFFF,63,2,4,,50,1,0,{ .@r = getrefine(); if (.@r>5) { bonus bAgi,(.@r-5)*2; } },{},{} 20717,FaceWorm_Skin,Gigant Snake Skin,4,10,,400,,38,,0,0xFFFFFFFF,63,2,4,,1,1,0,{ bonus bMdef,10; },{},{} 20718,FaceWorm_Skin_,Gigant Snake Skin,4,10,,400,,38,,1,0xFFFFFFFF,63,2,4,,1,1,0,{ bonus bMdef,10; },{},{} 20721,Cloak_Of_Gray,Cloak of Gray,4,20,,600,,45,,1,0xFFFFFFFF,56,2,4,,120,1,0,{ bonus2 bSubEle,Ele_Holy,5+getrefine()/2; },{},{} 20724,Love_Dad_Wings_2012,Love Dad Wings 2012,4,0,,100,,15,,1,0xFFFFFFFF,63,2,4,,1,1,5,{ .@r = getrefine(); if ((readparam(bStr)>89)) { bonus bAllStats,1; bonus bStr,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bAgi)>89)) { bonus bAllStats,1; bonus bAgi,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bVit)>89)) { bonus bAllStats,1; bonus bVit,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bInt)>89)) { bonus bAllStats,1; bonus bInt,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bDex)>89)) { bonus bAllStats,1; bonus bDex,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bLuk)>89)) { bonus bAllStats,1; bonus bLuk,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } },{},{} 20725,Ribbon_Piamat,Ribbon Piamat,4,10,,100,0:10,,,1,0xFFFFFFFF,63,2,4,,30,1,7,{ bonus bInt,1; bonus bDex,1; },{},{} +20726,Fire_Dragon's_Coat,Fire Dragon's Coat,4,20,,300,,0,,1,0xFFFFFFFF,63,2,4,,30,1,0,{ bonus bMaxHPrate,5; bonus2 bMagicAtkEle,Ele_Fire,2; if (getrefine()>=7) { bonus2 bMagicAtkEle,Ele_Fire,3; } bonus2 bMagicAtkEle,Ele_Water,-10; },{},{} 20727,Brilliant_Golden_Wings,Brilliant Golden Wings,4,10,,0,,,,0,0xFFFFFFFF,63,2,8192,,1,1,5,{},{},{} +20728,Water_Dragon_Coat,Water Dragon Coat,4,10,,300,,0,,1,0xFFFFFFFF,63,2,4,,30,1,0,{ bonus bMaxHPrate,5; bonus2 bMagicAtkEle,Ele_Water,2; if (getrefine()>=7) { bonus2 bMagicAtkEle,Ele_Water,3; } bonus2 bMagicAtkEle,Ele_Wind,-10; },{},{} 20730,Loyalists_Hood,Loyalists Hood,4,10,,200,,30,,1,0xFFFFFFFF,63,2,8192,,80,,,{ bonus bStr,2; bonus bMaxHPrate,10; bonus bNoKnockback; bonus2 bSubEle,Ele_All,-20; },{},{} 20732,Supplement_Part_Con,Supplement Part Con,4,25000,,500,,20,,1,0x00000400,56,2,4,,100,1,,{ .@r = getrefine(); bonus bMaxHPrate,6+(.@r/2); if(.@r>=9){bonus bHPrecovRate,50;} },{},{} 20733,Upgrade_Part_Engine,Reinforced Parts - Engine,4,10,,1500,,25,,1,0x00000400,56,2,4,,100,1,,{ bonus bDelayrate,-10; .@r = getrefine(); if(.@r>=7) {bonus2 bSubEle,0,10;}; if(.@r>=9) {bonus bDelayrate,-10;} },{},{} @@ -11351,6 +11103,7 @@ 20763,C_Amistr_Bag,Costume Amistr Bag,4,0,,0,,0,,0,0xFFFFFFFF,63,2,8192,,1,0,4,{},{},{} 20764,C_Fallen_Angel_Wing,Costume Fallen Angel Wing,4,0,,0,,0,,0,0xFFFFFFFF,63,2,8192,,1,0,3,{},{},{} 20773,Excelion_Wing,Excelion Wing,4,20,,900,,40,,0,0xFFFFFFFF,63,2,4,,99,1,,{ bonus bFlee,getrefine() * 2; bonus bFlee2,8 + (BaseLevel > 129 ? 2 : 0); },{},{} +20778,Red_Lotus_Stole,Red Lotus Stole,4,20,,700,,8,,1,0xFFFFFFFF,63,2,4,,1,1,0,{ .@r = getrefine(); bonus bMaxSPrate,10; bonus bMdef,3; bonus bUseSPrate,-1*(1+(2*.@r/3)); if (.@r>=10) { bonus bSPGainValue,20; } },{},{} 20779,Rift_Manteau,Rift Manteau,4,20,,500,,16,,1,0xFFFFFFFF,63,2,4,,100,1,,{ .@r = getrefine(); bonus bMaxHP,(.@r >= 9 ? 1300 : .@r >= 7 ? 700 : 300); bonus bMaxSP,-50; },{},{} 20780,Unity_STR_Manteau,Unity STR Manteau,4,32000,,300,,20,,1,0xFFFFFFFF,63,2,4,,1,1,0,{ .@r = getrefine(); if(BaseLevel<100) { bonus2 bExpAddRace,RC_All,4; bonus bMaxHPrate,2*(.@r/2); } },{},{} 20781,Unity_AGI_Manteau,Unity AGI Manteau,4,32000,,300,,20,,1,0xFFFFFFFF,63,2,4,,1,1,0,{ .@r = getrefine(); if(BaseLevel<100) { bonus2 bExpAddRace,RC_All,4; bonus bFlee,3*(.@r/2); } },{},{} @@ -11362,6 +11115,10 @@ 20790,Elegant_Doram_Manteau,Elegant Doram Manteau,4,20,,500,,30,,1,0x80000000,7,2,4,,175,1,,{ bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,5; .@r = getrefine()/2; bonus bFlee2,.@r; bonus bInt,.@r; bonus bDex,.@r; bonus bLuk,.@r; },{},{} 20797,Etran_Shirt,Etran Shirt,4,0,,150,,,,1,0xFFFFFFFF,63,2,4,,1,1,,{ bonus bMdef,10; bonus bMaxHPrate,2; .@r = getrefine(); if (.@r >= 6) bonus bMaxHPrate,4; if (.@r >= 7) bonus bMaxHPrate,6; if (.@r >= 8) bonus bMaxHPrate,8; if (.@r >= 9) bonus bNoKnockback; },{},{} 20798,GrimReaper_Protection,Costume Grim Reaper Protection,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1450,{},{},{} +20799,Elemental_Towel,Elemental Towel,4,20,,400,,13,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus bLongAtkRate,2; if(getrefine()>=7) { bonus2 bSkillUseSP,"RA_ARROWSTORM",20; bonus2 bSkillUseSP,"WM_SEVERE_RAINSTORM",60; } if(getrefine()>=8) { bonus bLongAtkRate,2; } if(getrefine()>=9) { bonus bLongAtkRate,3; } },{},{} +20800,Enforcer_Cape,Enforcer Cape,4,20,,300,,18,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMdef,10; if (getskilllv("AS_GRIMTOOTH")==5) { bonus2 bSkillAtk,"AS_GRIMTOOTH",50; } if (getskilllv("GC_CROSSIMPACT") == 5) { bonus2 bSkillAtk,"GC_CROSSIMPACT",5; } if (getskilllv("ASC_BREAKER") == 10) { bonus2 bSkillAtk,"ASC_BREAKER",50; } if (.@r>=7) { .@delay += 3; bonus2 bSkillAtk,"AS_GRIMTOOTH",Baselevel; bonus2 bSkillAtk,"ASC_BREAKER",Baselevel/3; bonus2 bSkillAtk,"GC_CROSSIMPACT",Baselevel/30; } if (.@r>=9) { .@delay += 3; bonus bMaxSPrate,5; } bonus bDelayrate,-.@delay; if(eaclass()&EAJL_THIRD && BaseJob == Job_Assassin) { if (.@r >= 7) { bonus bMaxHPrate,20; bonus bLongAtkDef,35; } else { bonus bMaxHPrate,15; bonus bLongAtkDef,20; } } },{},{} +20813,Coak_of_Survival,Cloak of Survival,4,1000,,550,,10,,1,0x00810204,63,2,4,,75,1,0,{ bonus bMdef,5; bonus bVit,10; },{},{} +20814,Wakwak_Manteau,Wakwak Manteau,4,20,,400,,40,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus2 bAddClass,Class_All,5; .@s = readparam(bStr); .@r = getrefine(); if (.@r>=5) { bonus bBaseAtk,2*(.@s/10); } if (.@r>=7) { bonus bBaseAtk,3*(.@s/10); } },{},{} 20815,SeraphimRobe,Seraphim Robe,4,0,,300,,18,,1,0xFFFFFFFF,63,2,4,,1,1,,{ bonus bMaxHPrate,10; bonus2 bMagicAtkEle,Ele_Neutral,5; .@r = getrefine(); if (.@r > 6) { bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Holy,20; bonus bMatkRate,10; } if (.@r > 8) { bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Holy,10; bonus bVariableCastrate,-5; } if (getskilllv("CR_TRUST") > 0) { bonus2 bSubEle,Ele_Holy,.@r*3; } },{},{} 20819,Oxygen_Bottle,Oxygen Bottle,4,0,,500,,0,,1,0xFFFFFFFF,63,2,4,,40,1,0,{ bonus bFlee,12+getrefine(); bonus bHit,getrefine(); },{},{} 20820,Elemental_Cape,Elemental Cape,4,0,,500,,12,,0,0x00010000,56,2,4,,100,1,0,{ .@r = getrefine(); bonus bFlee,(10+5*(.@r/3)); bonus2 bSubEle,Ele_Neutral,10; if (.@r>=9) bonus bAspdRate,5; },{},{} @@ -11372,17 +11129,38 @@ 20825,Para_Team_Manteau160,Awakened Eden Group Manteau III,4,0,,0,,30,,0,0xFFFFFFFF,63,2,4,,160,1,0,{ bonus2 bSubEle,Ele_All,10; bonus bFlee,12; bonus bMaxHP,1000; bonus bFlee2,2; .@r = getrefine(); if(.@r >= 7){ bonus2 bSubEle,Ele_Neutral,5; if(.@r >= 9){ skill "BS_GREED",1; } } },{},{} 20826,Angel_Feather,Angel Feather,4,0,,200,,18,,1,0xFFFFFFFF,63,2,4,,1,1,18,{},{},{} 20830,Wings_of_Seraph,Wings of Seraph,4,0,,200,,18,,1,0xFFFFFFFF,63,2,4,,1,1,8,{},{},{} +20831,Adventurer's_Spirit,Adventurer's Spirit,4,1000,,400,,40,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bInt,5; if (.@r>=5) bonus bMatk,5*(readparam(bInt)/60); if (.@r>=7) bonus bMatk,5*(readparam(bInt)/10); },{},{} 20834,Drifter's_Cape,Drifter's Cape,4,0,,400,,0,,0,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); .@bonus = 20; if (.@r>=7) { .@bonus += 5; } if (.@r>=9) { .@bonus += 5; } bonus2 bSubEle,Ele_Neutral,.@bonus; },{},{} +20836,Skin_of_Lindwyrm,Skin of Lindwyrm,4,1000,,600,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus bAgi,5; bonus bVit,5; bonus bMdef,10; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,5; bonus2 bSubRace,RC_Dragon,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; .@r = getrefine(); .@val = (readparam(bAgi)+readparam(bVit))/20; if (.@r>=7) { skill "TF_HIDING",1; if (.@r>=8) { bonus bMaxHPrate,.@val; bonus bVariableCastrate,-1*.@val; if (.@r>=9) { skill "AS_CLOAKING",1; } } } },{},{} +20837,Skin_of_Gwiber,Skin of Gwiber,4,20,,600,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus bInt,5; bonus bDex,5; bonus bMdef,10; bonus2 bSubEle,Ele_Dark,5; bonus2 bSubEle,Ele_Undead,5; bonus2 bSubRace,RC_Demon,5; bonus2 bSubRace,RC_Undead,5; .@r = getrefine(); .@val = (readparam(bInt)+readparam(bDex))/20; if (.@r>=7) { bonus bSPGainValue,10; if (.@r>=8) { bonus bBaseAtk,5*.@val; bonus bDelayrate,-2*.@val; if (.@r>=9) { bonus bSPGainValue,10; } } } },{},{} 20838,Illusion_Muffler,Illusion Muffler,4,20,,400,,8,,1,0xFFFFFFFE,63,2,4,,99,1,0,{ .@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r)); },{},{} 20840,Illusion_Ancient_Cape,Illusion Ancient Cape,4,0,,600,,18,,1,0xFFFFFFFE,63,2,4,,100,1,0,{ .@val = min(getrefine(),10)/2; bonus bAgi,(2+.@val); },{},{} +20845,Maracco_Skin,Malach's Skin,4,20,,600,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus bStr,5; bonus bLuk,5; bonus bMdef,10; bonus2 bSubEle,Ele_Ghost,5; bonus2 bSubEle,Ele_Holy,5; bonus2 bSubRace,RC_Angel,5; bonus2 bSubRace,RC_Formless,5; .@r = getrefine(); .@s = (readparam(bStr)+readparam(bLuk))/20; if (.@r>=7) { bonus bCritAtkRate,5; if (.@r>=8) { bonus bAspdRate,.@s; bonus bCritical,.@s; if (.@r>=9) { bonus bCritAtkRate,5; } } } },{},{} +20846,Temporal_Manteau,Temporal Manteau,4,20,,400,,38,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; },{},{} 20847,Illusion_Survivor_Manteau,Illusion Survivor Manteau,4,0,,550,,30,,1,0x00810204,63,2,4,,130,1,0,{ bonus bVit,15; },{},{} 20856,YSF01_Manteau,YSF01 Manteau,4,0,,750,,32,,1,0xFFFFFFFF,63,2,4,,170,1,0,{ .@r = getrefine(); if (.@r >= 8) { bonus bBaseAtk,20; if (.@r >= 11) { .@val = -3; if (.@r >= 13) { .@val += -4; } } } if (readparam(bVit) >= 125) { .@val += -10; } if (.@val) { bonus bDelayrate,.@val; } },{},{} +20859,Phreeoni_Wings,Phreeoni Wings,4,20,,300,,10,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMaxHPrate,10; bonus bHit,10; if (.@r>=7) bonus bHit,20; if (.@r>=8) bonus bHit,30; if (.@r>=9) bonus bHit,40; if (.@r>=10) bonus bHit,100; },{},{} +20860,Battle_Surcoat,Battle Surcoat,4,20,,300,,10,,1,0xFFFFFFFF,63,2,4,,70,1,0,{ .@r = getrefine(); if (.@r>=9) { bonus bAspdRate,9; bonus bFlee,30; skill "TF_DOUBLE",10; skill "MO_TRIPLEATTACK",10; bonus bDoubleRate,50; } else if (.@r>=7) { bonus bAspdRate,6; bonus bFlee,20; skill "TF_DOUBLE",5; skill "MO_TRIPLEATTACK",5; bonus bDoubleRate,25; } else { bonus bAspdRate,3; bonus bFlee,10; skill "TF_DOUBLE",3; skill "MO_TRIPLEATTACK",3; bonus bDoubleRate,15; } },{},{} +20863,Menblatt's_Wings,Menblatt's Wings,4,20,,400,,40,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bBaseAtk,30; if (.@r>=5) bonus bLongAtkRate,readparam(bDex)/60; if (.@r>=7) bonus bLongAtkRate,readparam(bDex)/10; },{},{} +20922,Leviathan_Muffler,Leviathan Muffler,4,20,,200,,18,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMdef,5; bonus2 bAddEle,Ele_Water,15+.@r; bonus2 bMagicAddEle,Ele_Water,15+.@r; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus bAspdRate,.@r; if (.@r>=10) bonus2 bSubEle,Ele_Water,100; },{},{} 20923,Illusion_Goibne_Spaulders,Illusion Goibne Spaulders,4,0,,1000,,47,,1,0xFFFFFFFE,63,2,4,,130,1,0,{ .@r = getrefine(); bonus bMdef,2; bonus bVit,1; if (.@r >= 7) { .@val = 5; if (.@r >= 9) { .@val += 10; } } if (.@val) { bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; } },{},{} +20925,Commander_Manteau2,Commander Manteau,4,20,,300,,20,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,10; bonus bBaseAtk,10; bonus bMatk,10; bonus2 bSubRace,RC_Player,3; if (.@r>=5) { bonus bBaseAtk,20; bonus bMatk,20; bonus bMaxHPrate,7; bonus bMaxSPrate,7; } if (.@r>=7) { bonus bBaseAtk,30; bonus bMatk,30; bonus bMaxHPrate,10; bonus bMaxSPrate,10; } },{},{} +20931,Prism_Rangers_Scarf,Prism Rangers Scarf,4,20,,300,,12,,0,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; if (.@r >= 7) { .@val = 10; } else if (.@r >= 5) { .@val = 5; } else { .@val = 2; } bonus bMaxHPrate,.@val; bonus bMaxSPrate,.@val; bonus bLongAtkRate,.@val+2*getskilllv("RA_AIMEDBOLT"); if (getskilllv("RA_WUGRIDER") == 3) { bonus2 bSkillCooldown,"RA_UNLIMIT",-180000; } if (getskilllv("RA_CAMOUFLAGE") == 5) { bonus bDelayrate,-10; } bonus2 bSkillCooldown,"RA_ARROWSTORM",-200; bonus2 bSkillAtk,"RA_ARROWSTORM",1; },{},{ sc_end SC_UNLIMIT; } +20932,Old_Morroc_Shawl,Old Morroc Shawl,4,20,,300,,10,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r= getrefine(); bonus bMaxHPrate,5; bonus bFlee,10; if (.@r>=7) bonus bFlee,20; if (.@r>=8) { bonus bFlee,30; bonus bRestartFullRecover; } if (.@r>=9) bonus bFlee,40; if (.@r>=10) bonus bFlee2,25; },{},{} 20933,Illusion_Engine_wing_A-type,Illusion Engine wing A-type,4,0,,900,,50,,1,0xFFFFFFFF,63,2,4,,130,1,,{ .@r = getrefine(); bonus bMaxHP,1000+(100*(.@r/2)); if (.@r >= 7) { bonus bAspdRate,5; } },{},{} 20934,Illusion_Engine_wing_B-type,Illusion Engine wing B-type,4,0,,900,,50,,1,0xFFFFFFFF,63,2,4,,130,1,,{ .@r = getrefine(); bonus bMaxHP,1000+(100*(.@r/2)); if (.@r >= 7) { bonus bVariableCastrate,-5; } },{},{} +20935,Lava_Leather_Manteau,Lava Leather Manteau,4,20,,400,,50,,1,0xFFFFFFFF,63,2,4,,175,1,0,{ bonus bHit,10; .@r = getrefine(); if (.@r>=7) bonus bHit,5; if (.@r>=9) bonus bHit,5; if (.@r>=11) bonus bDelayrate,-3; },{},{} +20936,Lava_Leather_Muffler,Lava Leather Muffler,4,20,,350,,35,,1,0xFFFFFFFF,63,2,4,,175,1,0,{ bonus bCritical,5; .@r = getrefine(); if (.@r>=7) bonus bCritical,5; if (.@r>=9) bonus bCritAtkRate,5; if (.@r>=11) bonus2 bAddClass,Class_All,3; },{},{} +20937,Lava_Leather_Hood,Lava Leather Hood,4,20,,300,,25,,1,0xFFFFFFFF,63,2,4,,175,1,0,{ bonus bVariableCastrate,-10; .@r = getrefine(); if (.@r>=7) bonus bVariableCastrate,-10; if (.@r>=9) bonus bVariableCastrate,-10; if (.@r>=11) bonus2 bMagicAtkEle,Ele_Fire,5; },{},{} +20941,Phoenix_Muffler,Phoenix Muffler,4,20,,200,,18,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMdef,5; bonus2 bAddEle,Ele_Fire,15+.@r; bonus2 bMagicAddEle,Ele_Fire,15+.@r; bonus2 bSubRace,RC_Player,5; bonus bAspdRate,.@r; if (.@r>=10) bonus2 bSubEle,Ele_Fire,100; },{},{} +20942,Manteau_Of_Guardsman,Manteau Of Guardsman,4,20,,500,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bMdef,15; bonus bMaxHPrate,5+3*(.@r/3); bonus bMaxSPrate,5+3*(.@r/3); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; },{},{} 20943,Geffen_Magic_Muffler,Geffen Magic Muffler,4,20,,550,,20,,1,0xFFFFFFFE,63,2,4,,99,1,0,{ .@r = getrefine(); .@val = -10; bonus bMatk,(10*(.@r/2)); bonus bMatkRate,(.@r/3); if (.@r >= 7) { bonus2 bMagicAtkEle,Ele_All,5; } if (.@r >= 9) { .@val -= 10; } bonus bVariableCastrate,.@val; },{},{} 20944,Anti_Magic_Manteau,Anti Magic Manteau,4,20,,750,,23,,1,0xFFFFFFFE,63,2,4,,99,1,0,{ .@r = getrefine(); bonus bMaxHP,(300+(100*(.@r/2))); bonus bMaxHPRate,(2*(.@r/3)); if (.@r >= 7) { bonus2 bAddClass,Class_All,7; } if (.@r >= 9) { bonus bVariableCastrate,-10; } },{},{} 20948,Illusion_Morpheus's_Shawl,Illusion Morpheus's Shawl,4,20,,600,,8,,1,0xFFFFFFFF,63,2,4,,130,1,0,{ bonus bMaxSPrate,10; bonus bMdef,5; .@r = getrefine(); if (.@r >= 7) { .@bonus = -10; if (.@r >= 9) { .@bonus -= 10; } bonus bVariableCastrate,.@bonus; } },{},{} +20949,Ladon_Skin,Ladon's Skin,4,20,,600,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus2 bSubRace,RC_Player,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Brute,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Earth,5; bonus bAgi,5; bonus bVit,5; bonus bMdef,10; .@r = getrefine(); if (.@r>=7) { .@val = 10; bonus bSPGainValue,10; bonus bLongSPGainValue,10; if (.@r>=8) { .@s = (readparam(bAgi)+readparam(bVit))/20; bonus bBaseAtk,15*.@s; bonus bHit,5*.@s; if (.@r>=9) { .@val += 10; } } bonus bSPGainValue,.@val; bonus bLongSPGainValue,.@val; } },{},{} +20952,Nameless_Assassin_Muffler,Nameless Assassin's Muffler,4,20,,100,,10,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r= getrefine(); bonus bMdef,5; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus2 bSubRace,RC_Player,5; if (.@r>=7) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bAspd,1; bonus bHPGainValue,5; bonus bLongHPGainValue,5; } if (.@r>=8) bonus bSpeedRate,40; if (.@r>=9) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bAspd,1; bonus bHPGainValue,5; bonus bLongHPGainValue,5; } if (.@r>=10) skill "AS_CLOAKING",3; },{},{} +20962,Typhon_Skin,Typhon's Skin,4,20,,600,,15,,1,0xFFFFFFFF,63,2,4,,100,1,0,{ bonus2 bSubRace,RC_Player,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Fish,5; bonus2 bSubEle,Ele_Neutral,5; bonus2 bSubEle,Ele_Poison,5; bonus bAgi,5; bonus bVit,5; bonus bMdef,10; .@r = getrefine(); if (.@r>=7) { .@sp = 10; if (.@r>=8) { .@s = (readparam(bAgi)+readparam(bVit))/20; bonus bMatk,15*.@s; bonus bDef,20*.@s; if (.@r>=9) { .@sp += 10; } } bonus bMagicSPGainValue,.@sp; } },{},{} +20969,Rainbow_Muffler,Rainbow Muffler,4,20,,300,,12,,0,0xFFFFFFFF,63,2,4,,100,1,0,{ .@r = getrefine(); .@lvl = getskilllv("WM_GLOOMYDAY"); if (.@r >= 7) { .@val = 10; } else if (.@r >= 5) { .@val = 5; } else { .@val = 2; } bonus bMaxHPrate,.@val; bonus bMaxSPrate,.@val; bonus bMatkRate,.@val+(4*.@lvl); bonus2 bSubRace,RC_Player,5; bonus2 bSkillAtk,"WM_METALICSOUND",4*.@lvl; if (getskilllv("WM_FRIGG_SONG") == 5) { bonus2 bSkillCooldown,"WM_METALICSOUND",-200; bonus bAspdRate,10; } if (getskilllv("WM_LULLABY_DEEPSLEEP") == 5) { skill "AL_HEAL",10; bonus bMagicHPGainValue,200; bonus bMagicSPGainValue,20; } },{},{} //=================================================================== // More 2-Handed Swords //=================================================================== @@ -11405,6 +11183,7 @@ 21016,Two_Handed_Sword_of_Vicious_Mind,Two-Handed Sword of Vicious Mind,5,20,,2200,220,,1,1,0x00004082,63,2,34,4,160,1,3,{ bonus bAtk,pow(min(getrefine(),15),2); },{},{} 21018,Lindy_Hop,Lindy Hop,5,20,,3400,340,,1,2,0x00004082,56,2,34,4,170,1,3,{ .@r = getrefine(); bonus2 bAddClass,Class_All,.@r/2; bonus bAspdRate,.@r; bonus bUnbreakableWeapon; },{},{} 21019,Onimaru,Onimaru,5,0,,4200,75,,1,2,0x00000080,56,2,34,4,130,1,3,{ .@bStr = readparam(bStr); .@r = getrefine(); bonus bBaseAtk,(min(120,.@bStr)); if (.@bStr > 119) bonus bBaseAtk,160; else if (.@bStr > 107) bonus bBaseAtk,80; else if (.@bStr > 94) bonus bBaseAtk,40; if (.@r > 6) bonus bUnbreakableWeapon; bonus4 bAutoSpell,"NPC_WIDECURSE",4,100,0; if (.@r > 8) bonus4 bAutoSpellOnSkill,"LK_BERSERK","BS_OVERTHRUST",5,100; },{},{} +21039,Royal_Knight's_Broadsword,Royal Knight's Broadsword,5,20,,4000,280,,1,2,0x00004082,56,2,34,4,175,1,3,{ .@r = getrefine(); bonus bBaseAtk,20*(.@r/2); if (.@r>=7) bonus bCritAtkRate,10; if (.@r>=9) bonus bUnbreakableWeapon; },{},{} 21047,Beam_Claymor-OS,Beam Claymor-OS,5,20,,1800,250,,1,2,0x00004082,56,2,34,4,130,1,3,{ .@r = getrefine(); bonus bUnbreakableWeapon; bonus bCritical,5; if (.@r >= 7) { bonus bAspdRate,7; if (.@r >= 9) { bonus bCritAtkRate,15; if (.@r >= 11) { bonus2 bAddSize,Size_Small,20; bonus2 bAddSize,Size_Medium,20; } } } },{},{} 21050,Illusion_Tae_Goo_Lyeon,Illusion Tae Goo Lyeon,5,20,,2000,250,,1,2,0x00004082,56,2,34,4,120,1,3,{ .@r = getrefine(); bonus bFlee2,10; bonus bLongAtkRate,.@r*2; if (.@r >= 7) { bonus bUseSPrate,-20; if (.@r >= 9) { bonus bDelayrate,-20; if (.@r >= 11) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; } } } },{},{} //=================================================================== @@ -11425,7 +11204,10 @@ 22012,Mana_Boots,Mana Boots,4,0,,0,,,,0,0xFFFFFFFF,63,2,64,,1,1,,{ bonus2 bExpAddRace,RC_All,10; },{},{} 22014,Enhanced_Variant_Shoes,Enhanced Variant Shoes,4,20,,500,,13,,1,0x7CCFDF80,63,2,64,,85,1,0,{ bonus bMaxHPrate,12; bonus bMaxSPrate,12; .@r = getrefine(); bonus bDef,.@r; bonus bMdef,.@r; },{},{} 22015,Impr_Angel's_Arrival,Advanced Angel's Reincarnation,4,10000,,300,,8,,1,0x00000001,63,2,64,,99,1,0,{ bonus bMaxHP,500; bonus bMaxSP,100; },{},{} +22016,Assassin's_Shoes,Assassin's Shoes,4,20,,300,,10,,0,0xFFFFFFFF,63,2,64,,30,1,0,{ bonus2 bExpAddRace,RC_DemiHuman,5+getrefine(); },{},{} +22017,Fisherman_Shoes,Fisherman's Shoes,4,20,,300,,10,,0,0xFFFFFFFF,63,2,64,,30,1,0,{ bonus2 bExpAddRace,RC_Fish,5+getrefine(); },{},{} 22018,Shoes_Of_Wise_Man,Shoes Of Wise Man,4,10,,300,,15,,1,0xFFFFFFFF,63,2,64,,50,1,,{ .@r = getrefine(); if(.@r>5){ bonus bInt,.@r-5; bonus bMaxHPrate,-(.@r-5); } },{},{} +22032,Exorcist_Shoes,Exorcist's Shoes,4,20,,300,,10,,0,0xFFFFFFFF,63,2,64,,30,1,0,{ bonus2 bExpAddRace,RC_Demon,5+getrefine(); },{},{} 22033,Boots_Of_Gray,Boots of Gray,4,20,,400,,25,,1,0xFFFFFFFF,56,2,64,,120,1,0,{ bonus2 bSubEle,Ele_Holy,2+getrefine()/3; },{},{} 22034,Crimson_Gaiter,Crimson Gaiter,4,0,,500,,10,,0,0xFFFFFFFF,63,2,64,,50,1,,{ bonus bCritical,2; bonus bCritAtkRate,2; if(getrefine()>=7){ bonus bCritical,3; bonus bCritAtkRate,3; } },{},{} 22035,Vet_Nepen_Heel,Heoric Nepenthes Shoes,4,10,,300,,10,,1,0xFFFFFFFF,63,2,64,,160,1,,{ .@r = getrefine(); if (.@r>=8 && .@r<=10) .@i=5+.@r; else if (.@r>=11 && .@r<=13) .@i=5+(.@r*3); else if (.@r>13) .@i=42; bonus bVariableCastrate,-10-.@i; },{},{} @@ -11456,6 +11238,7 @@ 22089,Crimson_Gaiter_,Crimson Gaiter,4,0,,500,,10,,1,0xFFFFFFFF,63,2,64,,50,1,,{ bonus bCritical,2; bonus bCritAtkRate,2; if(getrefine()>=7){ bonus bCritical,3; bonus bCritAtkRate,3; } },{},{} 22101,Angel_Poring_Boots,Angel Poring Boots,4,10,,300,,15,,1,0xFFFFFFFF,63,2,64,,1,1,,{ bonus bAllStats,1; skill "AL_HEAL",1; },{},{} 22103,Excelion_Leg,Excelion Leg,4,0,,500,,13,,0,0xFFFFFFFF,63,2,64,,100,1,,{ .@r = getrefine(); bonus bMaxHP,5+((BaseLevel > 129) ? 4 : 0)+(.@r/3)*3; bonus bMaxSP,5+((BaseLevel > 129) ? 4 : 0)+(.@r/3)*3; },{},{} +22104,Pororoca_Shoes,Pororoca Shoes,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,15; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Water,2; skill "SA_DELUGE",5; if (getrefine()>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Water,3; } if (getrefine()>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Water,5; } },{},{} 22106,Giant_Boots,Giant Boots,4,0,,500,,13,,1,0xFFFFFFFF,63,2,64,,1,1,,{ bonus2 bSubRace,RC_All,1; bonus bMaxHPrate,2; bonus bMaxSPrate,2; .@r = getrefine(); if (.@r > 4) { bonus bDefRate,2; bonus bMaxHPrate,4; bonus bMaxSPrate,4; } if (.@r > 6) { bonus bDefRate,2; bonus bMaxHPrate,4; bonus bMaxSPrate,4; } },{},{} 22107,Modified_Str_Boots,Modified Str Boots,4,20,,600,,25,,0,0x60000000,63,2,64,,99,1,,{ .@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bAtk,7*(.@r/3); if(readparam(bStr)>=120) bonus bBaseAtk,50; },{},{} 22108,Modified_Int_Boots,Modified Int Boots,4,20,,600,,25,,0,0x60000000,63,2,64,,99,1,,{ .@r = getrefine(); bonus bMdef,5; bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bMatk,10*(.@r/3); if(readparam(bInt)>=120) bonus bMatk,60; },{},{} @@ -11469,6 +11252,7 @@ 22116,Modified_Vit_Boots_,Modified Vit Boots,4,20,,600,,25,,1,0x60000000,63,2,64,,99,1,,{ .@r = getrefine(); bonus bMaxHP,300+(300*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); if(readparam(bVit)>=120) bonus bMaxHPrate,8; },{},{} 22117,Modified_Dex_Boots_,Modified Dex Boots,4,20,,600,,25,,1,0x60000000,63,2,64,,99,1,,{ .@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bDex,3*(.@r/3); if(readparam(bDex)>=120){ bonus bLongAtkRate,5; bonus bFixedCast,-500; } },{},{} 22118,Modified_Luk_Boots_,Modified Luk Boots,4,20,,600,,25,,1,0x60000000,63,2,64,,99,1,,{ .@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bMdef,5; bonus bCritAtkRate,2*(.@r/3); if(readparam(bLuk)>=120) bonus bCritAtkRate,30; },{},{} +22120,Shoes_of_Punishment,Shoes of Punishment,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ bonus bMdef,15; bonus bMatkRate,2; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus2 bSkillAtk,"AB_JUDEX",30; bonus2 bMagicAddEle,Ele_Holy,2; .@r = getrefine(); if (.@r>=5) { bonus bMatkRate,3; bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus2 bMagicAddEle,Ele_Holy,3; } if (.@r>=7) { bonus bMatkRate,5; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bMagicAddEle,Ele_Holy,5; } },{},{} 22122,Para_Team_Boots100,Awakened Eden Group Boots I,4,0,,0,,22,,0,0xFFFFFFFF,63,2,64,,100,1,,{ bonus bAllStats,1; bonus bHPrecovRate,30; bonus bSPrecovRate,14; },{},{} 22123,Para_Team_Boots115,Awakened Eden Group Boots II,4,0,,0,,25,,0,0xFFFFFFFF,63,2,64,,115,1,,{ bonus bAllStats,1; bonus bHPrecovRate,36; bonus bSPrecovRate,18; },{},{} 22124,Para_Team_Boots130,Awakened Eden Group Boots III,4,0,,0,,27,,0,0xFFFFFFFF,63,2,64,,130,1,,{ bonus bAllStats,2; bonus bHPrecovRate,36; bonus bSPrecovRate,18; },{},{} @@ -11476,12 +11260,26 @@ 22126,Para_Team_Boots160,Awakened Eden Group Boots V,4,0,,0,,30,,0,0xFFFFFFFF,63,2,64,,160,1,,{ bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20; bonus bUseSPrate,-5; },{},{} 22131,Spurred_Boots,Spurred Boots,4,0,,500,,0,,1,0xFFFFFFFF,63,2,64,,100,1,0,{ .@bonus = 5; if (.@r >=7) { .@bonus += 5; } if (.@r >=9) { .@bonus += 5; } bonus bMaxSPrate,.@bonus; bonus bSpeedRate,25; /* fix me: unknown speed value */ },{},{} 22133,Illusion_Shoes,Illusion Shoes,4,20,,400,,10,,1,0xFFFFFFFE,63,2,64,,99,1,0,{ .@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r)); },{},{} +22134,Enforcer_Shoes,Enforcer Shoes,4,20,,400,,12,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); .@hpsp = 3; .@a = getskilllv("GC_WEAPONCRUSH"); .@b = getskilllv("GC_WEAPONBLOCKING"); .@c = getskilllv("GC_COUNTERSLASH"); if (.@r >= 5) { .@hpsp += 7; .@dmg = BaseLevel; if (.@r >= 7) { .@hpsp += 10; .@dmg += BaseLevel + 30*getskilllv("AS_POISONREACT"); } bonus2 bSkillAtk,"ASC_METEORASSAULT",.@dmg; } bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMdef,10; skill "BS_MAXIMIZE",1; bonus2 bSkillUseSP,"ASC_METEORASSAULT",8; bonus2 bAddClass,Class_All,4*.@a; bonus2 bSkillCooldown,"GC_HALLUCINATIONWALK",-5000*.@b; bonus2 bIgnoreDefClassRate,Class_All,20*.@c; bonus2 bVariableCastrate,"ASC_METEORASSAULT",-7*(.@a+.@b+.@c); },{},{} +22138,Devil_Worshipper_Shoes,Devil Worshipper Shoes,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ bonus bMdef,15; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Neutral,2; bonus2 bMagicAtkEle,Ele_Fire,2; .@r = getrefine(); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,3; bonus2 bMagicAtkEle,Ele_Fire,3; } if (.@r>=5) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus2 bMagicAtkEle,Ele_Fire,5; } },{},{} 22141,YSF01_Greave,YSF01 Greave,4,0,,1300,,25,,1,0xFFFFFFFF,63,2,64,,170,1,0,{ .@r = getrefine(); if (.@r >= 8) { bonus bAspdRate,8; if (.@r >= 11) { bonus bAspd,1; if (.@r >= 13) { .@val = 10; } } } if (readparam(bLuk) >= 125) { .@val += 30; } if (.@val) { bonus bCritAtkRate,.@val; } },{},{} +22145,Tengu's_Shoes,Tengu's Shoes,4,20,,400,,12,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); .@a = getskilllv("SR_GENTLETOUCH_REVITALIZE"); .@b = getskilllv("SR_GENTLETOUCH_CURE"); .@c = getskilllv("SR_GENTLETOUCH_ENERGYGAIN"); .@hpsp = 3; if (.@r >= 5) { .@hpsp += 7; .@red = 5; if (.@r >= 7) { .@hpsp += 10; .@red += 5; } bonus2 bSkillUseSP,"MO_BODYRELOCATION",.@red; } bonus bMdef,10; bonus bMaxHPrate,.@hpsp+(2*.@b); bonus bMaxSPrate,.@hpsp; skill "SA_CASTCANCEL",1; bonus2 bSkillUseSP,"MO_BODYRELOCATION",5; bonus bDef,30*.@a; bonus2 bSubRace,RC_DemiHuman,.@a; bonus2 bSubRace,RC_Player,.@a; bonus2 bVariableCastrate,"MO_CALLSPIRITS",-.@c*10; bonus2 bVariableCastrate,"MO_STEELBODY",-.@c*10; bonus2 bFixedCastrate,"CH_SOULCOLLECT",-.@c*10; bonus bAspdRate,2*getskilllv("SR_GENTLETOUCH_CHANGE"); bonus2 bAddClass,Class_All,4*getskilllv("SR_GENTLETOUCH_QUIET"); },{},{} +22170,Survivor's_Shoes,Survivor's Shoes,4,10,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); if (.@r >= 7) { .@hpsp = 20; .@dmg = 10; } else if (.@r >= 5) { .@hpsp = 10; .@dmg = 5; } else { .@hpsp = 3; .@dmg = 2; } bonus bMdef,15; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMatkRate,.@dmg; bonus2 bMagicAtkEle,Ele_Wind,.@dmg; bonus2 bMagicAtkEle,Ele_Earth,.@dmg; },{},{} 22171,Ancient_Hero_Boots,Ancient Hero Boots,4,20,,600,,15,,1,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bMaxHP,500; bonus bMaxSP,50; bonus bMaxHPrate,2*(.@r/3); bonus bMaxSPrate,.@r/3; if (.@r >= 9) { .@val = -300; if (.@r >= 12) { .@val -= 200; if (.@r >= 14) { bonus bDelayRate,-5; } } bonus bFixedCast,.@val; } },{},{} +22172,Gray_Wing_Boots,Gray Wing Boots,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,15; bonus bLongAtkRate,2; bonus bCritAtkRate,2; skill "TF_HIDING",1; if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bLongAtkRate,3; bonus bCritAtkRate,3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bLongAtkRate,5; bonus bCritAtkRate,5; } },{},{} +22189,Pilgrim_Shoes,Pilgrim Shoes,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bDef,50*getskilllv("AB_SECRAMENT"); bonus bMdef,15; bonus bAspdRate,4*getskilllv("AB_CANTO"); bonus2 bSkillCooldown,"AB_PRAEFATIO",-1000; bonus bDelayrate,-6*getskilllv("AB_PRAEFATIO"); bonus2 bSubRace,RC_DemiHuman,2*getskilllv("AB_SECRAMENT"); bonus2 bSubRace,RC_Player,2*getskilllv("AB_SECRAMENT"); bonus bHealPower,5*getskilllv("AB_HIGHNESSHEAL"); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bUseSPrate,-3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bUseSPrate,-5; } },{},{} 22190,Illusion_Boots,Illusion Boots,4,0,,600,,16,,1,0x416E5CEA,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bCritical,(5*(.@r/3)); bonus bAspdRate,.@r; },{},{} 22192,Illusion_Goibne's_Greaves,Illusion Goibne's Greaves,4,0,,1200,,42,,1,0xFFFFFFFE,63,2,64,,130,1,0,{ .@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (.@r >= 7) { bonus bVariableCastrate,-5; if (.@r >= 9) { bonus bLongAtkRate,10; } } },{},{} +22195,Booster_Shoes,Booster Shoes,4,20,,800,,30,,1,0xFFFFFFFF,63,2,64,,100,1,,{ .@r = getrefine(); bonus bMdef,10; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSubRace,RC_Player,5; if (.@r>=7) { if (readparam(bStr)>=125) bonus bBaseAtk,90; if (readparam(bAgi)>=125) bonus bAspd,2; if (readparam(bVit)>=125) bonus bMaxHPrate,12; if (readparam(bInt)>=125) bonus bMatk,120; if (readparam(bDex)>=125) bonus bLongAtkRate,10; if (readparam(bLuk)>=125) bonus bCritAtkRate,20; } if (.@r>=9) { if (readparam(bStr)>=125) bonus bBaseAtk,90; if (readparam(bAgi)>=125) bonus bAspd,2; if (readparam(bVit)>=125) bonus bMaxHPrate,12; if (readparam(bInt)>=125) bonus bMatk,120; if (readparam(bDex)>=125) bonus bLongAtkRate,10; if (readparam(bLuk)>=125) bonus bCritAtkRate,20; } },{},{} 22196,Illusion_Leg_A-type,Illusion Leg A-type,4,20,,500,,20,,1,0xFFFFFFFF,63,2,64,,130,1,,{ .@r = getrefine(); bonus bMaxSP,200+(20*(.@r/2)); if (.@r >= 7) { bonus bLongAtkRate,5; } },{},{} 22197,Illusion_Leg_B-type,Illusion Leg B-type,4,20,,500,,20,,1,0xFFFFFFFF,63,2,64,,130,1,,{ .@r = getrefine(); bonus bMaxSP,200+(20*(.@r/2)); if (.@r >= 7) { bonus2 bMagicAtkEle,Ele_All,5; } },{},{} +22198,Traveler_Shoes,Traveler Shoes,4,20,,500,,15,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ bonus bMdef,15; bonus bMaxHPrate,3+(2*getskilllv("WM_FRIGG_SONG")); bonus bMaxSPrate,3; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus bAllStats,getskilllv("WA_SWING_DANCE"); bonus bAspdRate,4*getskilllv("MI_HARMONIZE"); bonus2 bSkillAtk,"WM_METALICSOUND",10*getskilllv("WM_GLOOMYDAY"); bonus2 bVariableCastrate,"WM_METALICSOUND",-10*getskilllv("WM_GLOOMYDAY"); bonus3 bAddEff,Eff_Sleep,2*getskilllv("WM_LULLABY_DEEPSLEEP"),ATF_MAGIC; .@r = getrefine(); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Neutral,5; } },{},{} +22199,Lava_Leather_Boots,Lava Leather Boots,4,20,,600,,50,,1,0xFFFFFFFF,63,2,64,,175,1,0,{ .@r = getrefine(); bonus2 bAddClass,Class_All,2; if (.@r>=7) bonus bBaseAtk,25; if (.@r>=9) bonus bBaseAtk,15; },{},{} +22200,Lava_Leather_Shoes,Lava Leather Shoes,4,20,,600,,50,,1,0xFFFFFFFF,63,2,64,,175,1,0,{ .@r = getrefine(); bonus bCritical,5; if (.@r>=7) bonus2 bAddSize,Size_All,5; if (.@r>=9) bonus bCritAtkRate,5; },{},{} +22201,Lava_Leather_Sandals,Lava Leather Sandals,4,20,,500,,25,,1,0xFFFFFFFF,63,2,64,,175,1,0,{ .@r = getrefine(); bonus2 bMagicAtkEle,Ele_Fire,3; if (.@r>=7) bonus bMatk,25; if (.@r>=9) bonus bMatk,15; },{},{} +22207,Imperial_Boots,Imperial Boots,4,20,,400,,12,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bMdef,10; bonus bMaxHPrate,3; bonus bMaxSPrate,3; skill "AL_INCAGI",1; bonus2 bSkillAtk,"LG_BANISHINGPOINT",10*getskilllv("LG_CANNONSPEAR"); bonus2 bAddClass,Class_All,4*getskilllv("CR_DEVOTION"); if (getskilllv("LG_INSPIRATION")>=5) bonus2 bSkillCooldown,"LG_SHIELDSPELL",-2000; bonus2 bIgnoreDefClassRate,Class_All,20*getskilllv("LG_PINPOINTATTACK"); if (.@r>=5) { bonus bMaxSPrate,7; bonus bMaxHPrate,7; bonus bLongAtkRate,5; } if (.@r>=7) { bonus bMaxSPrate,10; bonus bMaxHPrate,10; bonus bLongAtkRate,5; } },{},{} +22210,Fluffy_Fish_Shoes,Fluffy Fish Shoes,4,20,,100,,12,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); .@hpsp = 3; .@val = -10 * getskilllv("SU_SHRIMPARTY"); if (.@r>=5) { .@hpsp += 7; .@delay = -10; if (.@r>=7) { .@hpsp += 10; .@delay -= 10; } bonus bDelayrate,.@delay; } if (getskilllv("SU_SPIRITOFSEA") == 1) { autobonus3 "{ bonus2 bResEff,Eff_Stun,10000; bonus2 bResEff,Eff_Sleep,10000; bonus2 bResEff,EFF_Stone,10000; }",1000,30000,"SU_GROOMING"; } if (getskilllv("SU_GROOMING") == 5) { bonus bFixedCastrate,-50; bonus bNoKnockback; } bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMdef,10; bonus2 bVariableCastrate,"SU_FRESHSHRIMP",.@val; bonus2 bVariableCastrate,"SU_BUNCHOFSHRIMP",.@val; bonus2 bVariableCastrate,"SU_TUNABELLY",.@val; bonus2 bVariableCastrate,"SU_TUNAPARTY",.@val; bonus2 bVariableCastrate,"SU_SHRIMPARTY",.@val; bonus bHealPower,10*getskilllv("SU_PURRING"); },{},{} +22214,Authority_Sandals,Authority Sandals,4,20,,500,,10,,0,0xFFFFFFFF,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bMdef,10; bonus bAllStats,10; bonus2 bIgnoreDefRaceRate,RC_All,50; bonus2 bIgnoreMdefRaceRate,RC_All,50; if (.@r>=7) bonus bAllStats,10; if (.@r>=9) bonus bAllStats,10; },{},{} //=================================================================== // New Usable items //=================================================================== @@ -11693,7 +11491,7 @@ 22873,Sealed_Beelzebub_Scroll_II,Sealed Beelzebub Scroll II,2,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem callfunc("F_Rand",22875,6238,6239,6228,6232,24231,24232,17474,6635),1; },{},{} 22874,Sealed_Beelzebub_Card_Album,Sealed Beelzebub Card Album,2,10,,50,,,,,0xFFFFFFFF,63,2,,,,,,{/*No Info*/},{},{} 22875,Sealed_Beelzebub_Card,Sealed Beelzebub Card,6,20,,10,,,,,,,,769,,,,,{ bonus bVariableCastrate,-15; /*Item removed on 2014-12-17*/ },{},{} -22876,Old_Money_Pocket,Old Money Pocket,2,0,,0,,,,,,,,,,,,,{ Zeny += rand(500,550); },{},{} +22876,Old_Money_Pocket,Old Money Pocket,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ Zeny += rand(500,550); },{},{} 22881,Binding_Rope,Rope Gallows,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{/*Used to catch a Lost Sheep*/},{},{} 22882,Choco_Tteokguk,Chocolate Rice Cake Soup,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 10,10; },{},{} 22883,September_Gift_Box_,September Gift Box,2,10,,100,,,,,0xFFFFFFFF,63,2,,,,,,{/*2 Lucky Eggs*/},{},{} @@ -12228,9 +12026,9 @@ 25185,Locket_Pendant,Locket Pendant,3,0,,0,,,,,,,,,,,,,{},{},{} 25187,Slug_Bullet,Slug Bullet,3,1200,,1200,,,,,,,,,,,,,{},{},{} 25223,Para_Team_Coin,Eden Group Coin,3,0,,0,,,,,,,,,,,,,{},{},{} -25231,Suspicious_Bottle,Suspicious Bottle,3,0,,10,,,,,,,,,,,,,{},{},{} -25232,Cheap_Lubricant,Cheap Lubricant,3,0,,10,,,,,,,,,,,,,{},{},{} -25233,Cotton_Tufts,Cotton Tufts,3,0,,10,,,,,,,,,,,,,{},{},{} +25231,Suspicious_Bottle,Suspicious Bottle,3,1000,,10,,,,,,,,,,,,,{},{},{} +25232,Cheap_Lubricant,Cheap Lubricant,3,1000,,10,,,,,,,,,,,,,{},{},{} +25233,Cotton_Tufts,Cotton Tufts,3,1000,,10,,,,,,,,,,,,,{},{},{} 25238,New_Normal_Lubricant,New Normal Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{} 25239,New_Advanced_Lubricant,New Advanced Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{} 25246,Juice_Mix_Package,Juice Mix Package,3,0,,0,,,,,,,,,,,,,{},{},{} @@ -12300,6 +12098,7 @@ // New Spears //=================================================================== 26007,Illusion_Spectral_Spear,Illusion Spectral Spear,5,20,,2000,240,,3,1,0x00004082,63,2,34,4,99,1,5,{ .@r = getrefine(); .@val = 3*(.@r/2); bonus2 bAddEle,Ele_Dark,(20+.@val); bonus2 bAddRace,RC_Demon,(20+.@val); bonus2 bAddRace,RC_Undead,(20+.@val); bonus2 bSubRace,RC_Demon,(10+.@val); bonus2 bSubEle,Ele_Undead,(10+.@val); bonus2 bSubEle,Ele_Dark,(10+.@val); bonus bHPGainValue,50; bonus bSPGainValue,(.@r/2); bonus2 bAddEff2,Eff_Confusion,1000; },{},{} +26016,Royal_Knight's_Lance,Royal Knight's Lance,5,20,,1000,205,,1,2,0x00004082,63,2,34,3,175,1,5,{ .@r = getrefine(); bonus bLongAtkRate,3*(.@r/2); if (.@r>=7) bonus2 bAddClass,Class_All,5; if (.@r>=9) bonus2 bAddRace,RC_All,15; },{},{} //=================================================================== // New Staves //=================================================================== @@ -12308,6 +12107,8 @@ 26107,Elder_Staff,Elder Staff,5,0,,500,60:150,,1,3,0x00008110,63,2,2,3,100,1,10,{ .@r = getrefine(); .@bonus = 10; if (.@r>=7) { .@bonus += 5; } if (.@r>=9) { .@bonus += 10; } bonus bHealPower,.@bonus; },{},{} 26109,Illusion_Staff_of_Bordeaux,Illusion Staff of Bordeaux,5,20,,500,60:180,,1,2,0x00010200,58,2,2,4,99,1,10,{ bonus bInt,3; bonus bDex,2; if (getskilllv("SA_DRAGONOLOGY") == 5) { .@val = getrefine()/3; bonus bMatkRate,(5+.@val); bonus bUseSPrate,(-15-(5*.@val)); } },{},{} 26110,CandyCaneRod,Candy Cane Rod,5,20,,500,10:140,,1,2,0x00818315,63,2,2,4,99,1,10,{ bonus bInt,2; bonus bFlee,2*getrefine(); if(getrefine()>= 10) { bonus bFlee2,10; } },{},{} +26138,Hellfire_Staff,Hellfire Staff,5,20,,800,110:180,,1,2,0x00818314,63,2,2,4,175,1,23,{ .@r = getrefine; bonus bInt,5; bonus bMatk,15*(.@r/2); bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; bonus2 bMagicAtkEle,Ele_Fire,.@val; bonus2 bMagicAtkEle,Ele_Earth,.@val; },{},{} +26139,Icicle_Staff,Icicle Staff,5,20,,800,110:180,,1,2,0x00818314,63,2,2,4,175,1,23,{ .@r = getrefine; bonus bInt,5; bonus bMatk,15*(.@r/2); bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; bonus2 bMagicAtkEle,Ele_Water,.@val; bonus2 bMagicAtkEle,Ele_Holy,.@val; },{},{} 26151,Rutilus_Stick-OS,Rutilus Stick-OS,5,20,,900,80:175,,1,2,0x00818315,63,2,2,4,130,1,10,{ .@r = getrefine(); bonus bUnbreakableWeapon; bonus2 bMagicAddEle,Ele_Neutral,5; bonus2 bMagicAddEle,Ele_Earth,5; if (.@r >= 7) { bonus bVariableCastrate,-7; if (.@r >= 9) { autobonus "{ bonus2 bMagicAtkEle,Ele_Fire,30; }",5,10000,BF_MAGIC; /* unknown rate */ if (.@r >= 11) { bonus bDelayrate,-10; } } } },{},{} // 26154,Spirit_Plumb,Spirit Plumb,5,20,,1100,70:160,,1,2,0x00000000,63,2,2,4,100,1,10,{ .@r = getrefine(); bonus bMatk,10*(.@r/2); bonus bMaxSPrate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SP_SPA",15; if (.@r >= 9) { bonus bVariableCastrate,-10; if (.@r >= 11) { bonus2 bSkillAtk,"SP_SWHOO",20; } } } },{},{} 26155,Meowmeow_Foxtail,Meowmeow Foxtail,5,20,,1100,300:300,,1,2,0x80000000,7,2,2,4,100,1,10,{ .@r = getrefine(); bonus bMatk,10*(.@r/2); bonus bBaseAtk,10*(.@r/2); bonus2 bAddClass,Class_All,2*(.@r/3); bonus bMatkRate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SU_LUNATICCARROTBEAT",15; bonus2 bSkillAtk,"SU_SV_STEMSPEAR",15; if (.@r >= 9) { bonus bVariableCastrate,-10; bonus bAspdRate,10; if (.@r >= 11) { bonus2 bSkillAtk,"SU_PICKYPECK",15; bonus2 bSkillAtk,"SU_CN_METEOR",15; } } } },{},{} @@ -12472,6 +12273,24 @@ 27341,Chaotic_Poporing_Card,Chaotic Poporing Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubRace,RC_Fish,15; },{},{} 27342,Chaotic_Stem_Worm_Card,Chaotic Stem Worm Card,6,20,,10,,,,,,,,4,,,,,{ bonus bHit,10; bonus2 bSubDefEle,Ele_Earth,20; bonus2 bSubDefEle,Ele_Neutral,10; },{},{} 27343,Chaotic_Acolyte_Card,Chaotic Acolyte Card,6,20,,10,,,,,,,,128,,,,,{ bonus bDelayrate,-4; },{},{} +27346,Rigid_Muspellskoll_Card,Rigid Muspellskoll Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Dragon,30; bonus2 bSubRace,RC_Demon,30; bonus2 bSubRace,RC_Brute,30; },{},{} +27347,Rigid_Kaho_Card,Rigid Kaho Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bMagicAddEle,Ele_Earth,10; },{},{} +27348,Rigid_Lava_Golem_Card,Rigid Lava Golem Card,6,20,,10,,,,,,63,2,2,,,,,{ .@r = getrefine(); bonus2 bMagicAddEle,Ele_Neutral,3+((.@r>=7)*5)+((.@r>=9)*7); },{},{} +27349,Rigid_Explosion_Card,Rigid Explosion Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Dragon,15; bonus2 bSubDefEle,Ele_Fire,15; },{},{} +27350,Rigid_Earth_Deleter_Card,Rigid Earth Deleter Card,6,20,,10,,,,,,,,768,,,,,{ .@r = getrefine(); bonus bMaxSPrate,2+(.@r/2); },{},{} +27351,Rigid_Sky_Deleter_Card,Rigid Sky Deleter Card,6,20,,10,,,,,,,,768,,,,,{ bonus bMaxHPrate,5; },{},{} +27352,Rigid_Nightmare_Terror_Card,Rigid Nightmare Terror Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxSPrate,5; },{},{} +27353,Rigid_Blazer_Card,Rigid Blazer Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Demon,15; bonus2 bSubDefEle,Ele_Neutral,15; },{},{} +27354,Contaminated_Raydric_Card,Contaminated Raydric Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddClass,Class_All,5; },{},{} +27355,Contaminated_Raydric_Archer_Card,Contaminated Raydric Archer Card,6,20,,10,,,,,,,,2,,,,,{ bonus bLongAtkRate,10; },{},{} +27356,Frozen_Gargoyle_Card,Frozen Gargoyle Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubSize,Size_Medium,25; bonus2 bSubSize,Size_Large,25; bonus2 bSubSize,Size_Small,-5; bonus bDef,20; },{},{} +27357,Contaminated_Sting_Card,Contaminated Sting Card,6,20,,10,,,,,,,,16,,,,,{ bonus bDef,100+25*(getrefine()/3); },{},{} +27358,Prison_Breaker_Card,Prison Breaker Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bSubEle,Ele_Wind,30; bonus2 bSubEle,Ele_Poison,30; bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Earth,30; bonus2 bSubEle,Ele_Undead,30; bonus2 bSubEle,Ele_Holy,-100; bonus2 bSubEle,Ele_Ghost,-100; bonus2 bSubEle,Ele_Fire,-100; },{},{} +27359,Ice_Ghost_Card,Ice Ghost Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bMagicAddEle,Ele_Water,15; },{},{} +27360,Flame_Ghost_Card,Flame Ghost Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bMagicAddEle,Ele_Fire,15; },{},{} +27361,Contaminated_Wanderer_Card,Contaminated Wanderer Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddSize,Size_Large,30; bonus2 bAddSize,Size_Medium,30; },{},{} +27362,Contaminated_Spider_Queen_Card,Contaminated Spider Queen Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bSubEle,Ele_All,-30; bonus2 bMagicAtkEle,Ele_Earth,100; bonus2 bMagicAtkEle,Ele_Water,100; },{},{} +27363,Contaminated_Dark_Lord_Card,Contaminated Dark Lord Card,6,20,,10,,,,,,,,8,,,,,{ bonus bAspd,1; },{},{} //=================================================================== // New Katars //=================================================================== @@ -12491,7 +12310,7 @@ // New Axes //=================================================================== 28100,Thanos_Axe,Thanos Axe,5,10,,4000,300:80,,1,1,0x000444A2,56,2,34,4,120,1,7,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bHPDrainRate,50,5; bonus2 bSPDrainRate,10,5; bonus2 bHPLossRate,100,10000; },{},{ heal -1000,0; } -28101,Tornado_Axe,Axe Tornado,5,10,,4000,320,,,1,0x00000400,56,2,34,4,130,1,7,{ bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,"NC_AXETORNADO",-1000; },{},{} +28101,Tornado_Axe,Axe Tornado,5,10,,4000,320,,,1,0x00000400,56,2,34,4,100,1,7,{ bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,"NC_AXETORNADO",-1000; },{},{} 28102,Half_BF_Two_Handed_Axe1,Half BF Two Handed Axe1,5,20,,0,200,,1,0,0x000444A2,63,2,34,3,80,1,7,{ bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus bUnbreakableWeapon; },{},{} 28103,Ru_Blue_Axe_M,Blue Twohand Axe,5,10,,3000,330,,1,1,0x00000400,56,2,34,3,1,1,7,{ bonus bStr,5; bonus bVit,5; },{},{} 28104,Ru_Gold_Axe_M,Ru Gold Axe M,5,0,,3000,330,,1,2,0x00000400,56,2,34,3,120,1,7,{ bonus bStr,8; bonus bVit,8; },{},{} @@ -12538,6 +12357,7 @@ 28318,RCC2013_RING_,RCC2013_RING_,4,200,,200,,,,1,0xFFFFFFFF,63,2,136,,1,0,,{ bonus2 bAddClass,Class_All,1; },{},{} 28310,Earring_Of_Sarah_L,Sarah's Left Earring,4,10,,100,,,,0,0xFFFFFFFF,63,2,136,,145,0,,{ skill "AL_HEAL",1; },{},{} 28311,Earring_Of_Sarah_R,Sarah's Right Earring,4,10,,100,,,,0,0xFFFFFFFF,63,2,136,,145,0,,{ skill "AL_TELEPORT",1; },{},{} +28320,Assassin's_Despair,Assassin's Despair,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,50,0,0,{ bonus bAspd,1; },{},{} 28321,Falconer_Claw,Falconer Claw,4,0,,100,,5,,1,0x00000800,63,2,136,,80,0,,{ bonus bDex,1; bonus2 bSkillAtk,"HT_BLITZBEAT",getskilllv("HT_STEELCROW")*10; },{},{} 28322,Falconer_Glove,Falconer Glove,4,0,,100,,5,,1,0x00000800,63,2,136,,80,0,,{ bonus bDex,1; bonus bUseSPrate,-5; },{},{} 28326,Broken_Chip_1,Broken Chips 01,4,10,,100,,,,1,0xFFFFFFFF,63,2,136,,100,0,,{ bonus bStr,4; },{},{} @@ -12545,13 +12365,18 @@ 28332,Jewel_Ring,Jewerly Ring,4,10,,100,,,,0,0xFFFFFFFF,63,2,136,,1,0,,{ bonus bLuk,20; autobonus "{ bonus bAspd,2; }",50,2000,BF_WEAPON|BF_MAGIC; },{},{} 28333,Gold_PC_Room_Ring,Gold PC Room Ring,4,10,,0,,,,1,0xFFFFFFFF,63,2,136,,1,0,,{ bonus bMaxHPrate,3; bonus bMaxSPrate,3; },{},{} 28342,Critical_Anklet,Critical Anklet,4,0,,200,,3,,1,0xFFFFFFFF,63,2,136,,,0,,{ bonus bCritical,5; },{},{} +28352,Vesper_Gear_01,Vesper Gear 01,4,20,,100,,1,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bMdef,3; bonus bMatkRate,5; },{},{} +28353,Vesper_Gear_02,Vesper Gear 02,4,20,,100,,1,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bMdef,3; bonus2 bAddClass,Class_All,5; },{},{} 28354,City_Map,City Map,4,0,,100,,0,,1,0xFFFFFFFF,63,2,136,,1,0,0,{ /* todo */ },{},{} 28355,Shining_Holy_Water_,Shining Holy Water,4,0,,100,,0,,1,0xFFFFFFFF,63,2,136,,1,0,0,{ /* todo */ },{},{} 28356,Prontera_Badge,Prontera Badge,4,0,,100,,0,,0,0xFFFFFFFF,63,2,136,,1,0,0,{ /*warp "prontera",159,192; 15 mins cooldown */ },{},{} +28357,Vesper_Gear_03,Vesper Gear 03,4,20,,100,,1,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bMdef,3; bonus bFlee,10; },{},{} 28358,Cursed_Lucky_Clover,Cursed Lucky Clover,4,0,,100,,,,1,0xFFFFFFFF,63,2,136,,100,0,,{ bonus bLuk,2; bonus bFlee,3; bonus2 bAddEff2,Eff_Curse,5; },{},{ sc_end SC_CLOAKING; /*FIXME: Because the combo has Cloaking skill*/ } +28359,Vesper_Gear_04,Vesper Gear 04,4,20,,100,,1,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bMdef,3; bonus bHit,10; },{},{} 28372,Imperial_Ring,Imperial Ring,4,0,,500,,3,,1,0xFFFFFFFF,63,2,136,,50,0,,{ bonus bStr,1; bonus bInt,1; bonus bMaxHPRate,3; bonus bMaxSPRate,3; },{},{} 28374,Foxtail_Ring,Foxtail Ring,4,20,,100,,0,,0,0x80000000,7,2,136,,1,0,,{ bonus2 bExpAddRace,RC_All,5; .@lvl = min(BaseLevel/5,10); bonus bAtk,2*.@lvl; bonus bMatk,2*.@lvl; bonus bMaxHP,10*.@lvl; bonus bMaxSP,5*.@lvl; },{},{} 28377,Magical_Ring,Magical Ring,4,0,,100,,,,1,0xFFFFFFFF,63,2,136,,20,0,,{ bonus2 bMagicAtkEle,Ele_Fire,5; bonus2 bMagicAtkEle,Ele_Water,5; bonus2 bMagicAtkEle,Ele_Earth,5; bonus2 bMagicAtkEle,Ele_Wind,5; if (BaseLevel > 4) { bonus2 bSkillAtk,"MG_FIREBOLT",BaseLevel/5; bonus2 bSkillAtk,"MG_COLDBOLT",BaseLevel/5; bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",BaseLevel/5; bonus2 bSkillAtk,"WZ_EARTHSPIKE",BaseLevel/5; } },{},{} +28379,Shadow_Ring,Shadow Ring,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,20,0,0,{ .@s = getskilllv("RG_STEALCOIN"); .@r = getskilllv("RG_RAID"); if (.@s>=1) .@a = .@s; else .@a = 1; bonus3 bAutoSpell,"RG_STEALCOIN",.@a,50; bonus2 bSkillAtk,"RG_BACKSTAP",2*BaseLevel; bonus3 bAddEff,Eff_Stun,.@r*100,ATF_SHORT; autobonus3 "{ bonus2 bSkillAtk,\"SC_TRIANGLESHOT\",BaseLevel/3; }",1000,20000,5010,"{ specialeffect2 153; }"; /* Placeholder specialeffect */ },{},{} 28380,Fresh_Grass_Necklace,Fresh Grass Necklace,4,20,,100,,0,,1,0x80000000,7,2,136,,100,0,,{ bonus bFlee2,5; bonus2 bSkillCooldown,"SU_SCAROFTAROU",-5000; },{},{} 28381,Cute_Grass_Necklace,Cute Grass Necklace,4,20,,10,,0,,1,0x80000000,7,2,136,,100,0,,{ bonus bHealPower,5; bonus2 bSkillCooldown,"SU_TUNAPARTY",-7000; },{},{} 28382,Charm_Grass_Necklace,Charm Grass Necklace,4,20,,10,,0,,1,0x80000000,7,2,136,,100,0,,{ bonus bMdef,5; bonus2 bVariableCastrate,"SU_CN_METEOR",-1000; },{},{} @@ -12574,6 +12399,12 @@ 28424,Chubby_Worm_Talisman,Chubby Worm Talisman,4,0,,100,,1,,1,0x80000000,63,2,136,,100,,,{ bonus2 bVariableCastrate,"SU_PICKYPECK",-50; bonus2 bSkillAtk,"SU_PICKYPECK",(readparam(bDex)/2)+(20 * getskilllv("SU_PICKYPECK")); /* Need to confirm damage formula */ },{},{} 28425,Mercenary_Ring_Type_A,Mercenary Ring Type A,4,20,,200,,0,,0,0xFFFFFFFF,63,2,136,,99,0,0,{ bonus bVit,3; if (BaseClass == Job_Gunslinger || BaseJob == Job_Novice || BaseJob == Job_SuperNovice || BaseClass == Job_Ninja || BaseClass == Job_Taekwon) { bonus bMaxHP,1000; bonus bMaxSP,200; } },{},{} 28426,Mercenary_Ring_Type_B,Mercenary Ring Type B,4,20,,200,,0,,0,0xFFFFFFFF,63,2,136,,99,0,0,{ bonus bInt,3; if (BaseClass == Job_Gunslinger || BaseJob == Job_Novice || BaseJob == Job_SuperNovice || BaseClass == Job_Ninja || BaseClass == Job_Taekwon) { bonus bVariableCastrate,-30; } },{},{} +28429,Arquien's_Necklace,Arquien's Necklace,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,20,0,0,{ bonus2 bSkillAtk,"MC_CARTREVOLUTION",Baselevel; bonus2 bSkillAtk,"NC_AXETORNADO",(Baselevel/3); bonus2 bSkillAtk,"NC_POWERSWING",(Baselevel/5); bonus2 bSkillUseSP,"NC_POWERSWING",2; bonus2 bAddMonsterDropItem,529,2000; bonus2 bAddMonsterDropItem,530,2000; bonus2 bAddMonsterDropItem,573,500; bonus2 bAddItemHealRate,529,100; bonus2 bAddItemHealRate,530,100; /* Unknow drop rates */ },{},{} +28430,Arch_Bishop_Ring,Arch Bishop Ring,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,15; bonus bAddItemHealRate,15; },{},{} +28433,Luminous_Blue_Stone,Luminous Blue Stone,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bAgi,2; bonus bCritical,5; bonus bAspdRate,5; bonus bCritAtkRate,2; skill "MG_SIGHT",1; if (readparam(bLuk)>=100) { bonus bCritical,10; bonus bCritAtkRate,10; } },{},{} +28434,Fist_Fighter_Glove,Fist Fighter's Glove,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bStr,2; bonus bMaxSP,100; bonus2 bAddClass,Class_All,2; skill "MO_ABSORBSPIRITS",1; if (readparam(bStr)>99) bonus2 bAddClass,Class_All,5; },{},{} +28437,Hibram's_Gloves,Hibram's Gloves,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ skill "AL_HEAL",3; bonus bInt,2; bonus bMatkRate,2; bonus bUseSPrate,-5; if (readparam(bInt)>=110) bonus bMatkRate,5; },{},{} +28438,Fairy_Leaf_Powder,Fairy Leaf Powder,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bDex,2; bonus bDelayrate,-5; bonus bLongAtkRate,2; skill "SM_MAGNUM",3; if (readparam(bDex)>=100) bonus bLongAtkRate,5; },{},{} 28441,Vigilante_Badge,Vigilante Badge,4,0,,200,,0,,0,0x00020000,56,2,136,,100,0,0,{ bonus bFlee,10; bonus bLongAtkRate,5; },{},{} 28442,Hippie_Feather,Hippie Feather,4,0,,200,,0,,1,0x00080000,56,2,136,,100,0,0,{ bonus bHit,5; bonus bFlee,5; },{},{} 28443,Para_Team_Str_Ring100,Awakened Eden Group Ring of Strength I,4,0,,0,,0,,0,0xFFFFFFFF,63,2,136,,100,,,{ bonus2 bAddClass,Class_All,2; },{},{} @@ -12607,13 +12438,35 @@ 28471,Para_Team_Agi_Ring160,Awakened Eden Group Ring of Agility V,4,0,,0,,0,,0,0xFFFFFFFF,63,2,136,,160,,,{ bonus bLongAtkRate,4; skill "AL_HEAL",1; },{},{} 28472,Para_Team_Agi_Necklace160,Awakened Eden Group Necklace of Agility V,4,0,,0,,0,,0,0xFFFFFFFF,63,2,136,,160,,,{ bonus bDex,4; skill "AL_TELEPORT",1; },{},{} 28483,Royal_Guardian_Ring,Royal Guardian Ring,4,0,,10,,1,,1,0xFFFFFFFF,63,2,136,,99,,,{ .@b = min(BaseLevel/25,7); bonus bMaxHPrate,.@b; bonus bMaxSPrate,.@b; },{},{} +28484,Rebel_Scarf,Rebel Scarf,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ .@M = getskilllv("RL_MASS_SPIRAL"); .@F = getskilllv("RL_FIRE_RAIN"); .@H = getskilllv("RL_HEAT_BARREL"); .@S = getskilllv("RL_S_STORM"); .@D = getskilllv("RL_D_TAIL"); .@E = getskilllv("RL_E_CHAIN"); bonus2 bAddClass,Class_All,5; bonus bAspdRate,2*.@M; bonus bVariableCastrate,-10; bonus bDelayrate,-(.@F); bonus2 bSkillCooldown,"RL_HEAT_BARREL",-4000*.@S; bonus2 bSkillCooldown,"RL_S_STORM",-100*.@S; bonus bCritAtkRate,3*.@D; bonus2 bSkillAtk,"RL_FIRE_RAIN",5*.@F; bonus2 bSkillAtk,"RL_MASS_SPIRAL",5*.@M; bonus2 bSkillAtk,"RL_QD_SHOT",5*.@E; bonus2 bSkillAtk,"RL_S_STORM",5*.@S; bonus2 bSkillUseSP,"RL_FIREDANCE",10; bonus2 bSkillUseSP,"RL_FIRE_RAIN",4*.@F; bonus2 bSkillUseSP,"RL_MASS_SPIRAL",2*.@M; if(getiteminfo(getequipid(EQI_HAND_R),11) == W_GRENADE) { autobonus3 "{ bonus3 bAutoSpell,\"RL_D_TAIL\",max(1,getskilllv(\"RL_D_TAIL\")),10;}",1000,50000,"RL_C_MARKER","{specialeffect2 311;}"; } /* Placeholder Effect */ },{},{} +28485,Shinobi_Sash_H,Shinobi Sash H,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMatkRate,5; bonus bAspdRate,5; bonus bDelayrate,-5; .@a = (getskilllv("KO_GENWAKU")+getskilllv("KO_JYUSATSU")+getskilllv("KO_KYOUGAKU")); bonus2 bMagicAddEle,Ele_Dark,4*.@a; bonus2 bSkillAtk,"NJ_BAKUENRYU",10*getskilllv("NJ_KOUENKA"); bonus2 bSkillAtk,"NJ_KAMAITACHI",10*getskilllv("NJ_HUUJIN"); bonus2 bSkillAtk,"NJ_HYOUSYOURAKU",20*getskilllv("NJ_HYOUSENSOU"); },{},{} +28491,Hunting_Knife,Hunting Knife,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bLuk,2; bonus bHit,10; bonus bCriticalLong,5; skill "TF_HIDING",1; if (readparam(bLuk>=100)) { bonus bHit,5; bonus bCriticalLong,10; } },{},{} +28492,Thieve_Guide_V1,Thieve's Guide Vol.1,4,20,,10,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bStr,5; bonus bAgi,5; bonus bInt,5; if (getskilllv(2292)==3) skill "SN_WINDWALK",5; if (getskilllv(2293)==3) skill "HP_ASSUMPTIO",5; if (getskilllv(2294)==3) skill "WS_OVERTHRUSTMAX",5; if (getskilllv(2295)==3) skill "ASC_METEORASSAULT",5; if (getskilllv(2296)==3) skill "LK_BERSERK",1; if (getskilllv(2297)==3) skill "HW_MAGICPOWER",5; if (getskilllv(220)==1) { bonus bStr,5; bonus bAgi,5; bonus bInt,5; } },{},{} 28495,Sheriffs_Left_Badge,Sheriff's Left Badge,4,0,,200,,0,,1,0xFFFFFFFF,63,2,128,,100,0,0,{ if (readparam(bStr) > 89) bonus2 bAddClass,Class_All,3; if (readparam(bVit) > 89) bonus bMaxHP,1000; if (readparam(bDex) > 89) bonus bLongAtkRate,3; },{},{} 28496,Sheriffs_Right_Badge,Sheriff's Right Badge,4,0,,200,,0,,1,0xFFFFFFFF,63,2,8,,100,0,0,{ if (readparam(bVit) > 89) bonus bMaxHP,1000; if (readparam(bInt) > 89) bonus bMatkRate,3; if (readparam(bDex) > 89) bonus bVariableCastrate,-5; },{},{} 28499,Proof_of_Glory,Proof of Glory,4,0,,100,,0,,0,0xFFFFFFFF,63,2,136,,100,,,{ bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; if(BaseLevel>=150) { bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; } },{},{} +28500,Zealous_Necklace,Zealous Necklace,4,20,,200,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{},{},{} +28501,Horn_of_Kirin,Horn of Kirin,4,20,,500,,3,,1,0xFFFFFFFF,63,2,136,,50,0,0,{ bonus bAgi,2; bonus bAspdRate,2; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Brute,1; bonus2 bSubRace,RC_Fish,1; bonus2 bSubRace,RC_Player,1; bonus2 bSubRace,RC_Demon,2; bonus2 bSubRace,RC_Undead,2; skill "AL_INCAGI",6; if (readparam(bAgi)>=100) { bonus bAspdRate,5; } },{},{} +28502,Mob_Scarf,Mob Scarf,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,100,0,1568,{ skill "SA_SPELLBREAKER",2; },{},{} +28503,Keraunos,Keraunos,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHPrate,5; bonus2 bAddClass,Class_All,5; bonus bAspdRate,5; bonus2 bVariableCastrate,"SR_GATEOFHELL",-3*(BaseLevel/20); bonus2 bVariableCastrate,"SR_RIDEINLIGHTNING",-5*(BaseLevel/15); bonus2 bSkillCooldown,"SR_ASSIMILATEPOWER",-3000; bonus2 bSkillAtk,"SR_RIDEINLIGHTNING",5; },{},{} +28506,Storm_Stone,Storm Stone,4,30000,,500,,0,,1,0xFFFFFFFF,63,2,136,,90,0,0,{ bonus bMaxSPrate,5; bonus bAspdRate,5; bonus2 bAddClass,Class_All,5; },{},{} +28507,Magician_Gloves,Magician's Gloves,4,20,,500,,0,,1,0xFFFFFFFF,63,2,136,,80,0,0,{ bonus bVariableCastrate,-10; bonus2 bMagicAtkEle,Ele_Earth,5; bonus2 bMagicAtkEle,Ele_Water,5; bonus2 bMagicAtkEle,Ele_Wind,5; bonus2 bMagicAtkEle,Ele_Fire,5; bonus2 bMagicAtkEle,Ele_Ghost,5; bonus2 bIgnoreMdefRaceRate,RC_All,50; },{},{} 28508,Illusion_Skull_Ring,Illusion Skull Ring,4,0,,100,,0,,1,0xFFFFFFFF,63,2,8,,100,0,0,{ bonus3 bAddEff,Eff_Curse,5000,ATF_SELF|ATF_TARGET|ATF_SHORT|ATF_WEAPON; },{},{} 28509,Illusion_Ring,Illusion Ring,4,0,,200,,0,,1,0xFFFFFFFE,63,2,136,,100,0,0,{ bonus bStr,3; if (readparam(bStr) >= 100) { bonus bBaseAtk,30; } },{},{} 28510,A_Vampire's_Servant,A Vampire's Servant,4,0,,100,,1,,1,0xFFFFFFFF,63,2,8,,100,0,,{ bonus2 bSPDrainRate,1000,1; },{},{} +28513,JRO_Celine_Brooch,Celine's Brooch,4,20,,500,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHP,500; bonus bMaxSP,250; bonus bMatkRate,5; bonus bAspd,1; bonus bVariableCastrate,-10; },{},{} +28520,Egir_Ring,Egir Ring,4,20,,500,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMdef,5; bonus bAllStats,1; bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus2 bSubEle,Ele_Water,10; },{},{} +28521,Giant's_Protection,Giant's Protection,4,20,,500,,0,,1,0xFFFFFFFF,63,2,136,,1,0,0,{ bonus2 bAddClass,Class_All,5; if (readparam(bStr)>=120) { bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,50; } },{},{} +28531,Blacksmith's_Gloves,Blacksmith's Gloves,4,20,,500,,,,1,0xFFFFFFFF,63,2,136,,80,0,,{ bonus bDelayrate,-10; bonus2 bAddClass,Class_Boss,5; bonus2 bIgnoreDefRaceRate,RC_All,50; },{},{} +28533,Chemical_Glove,Chemical Glove,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,20,0,,{ .@s = getskilllv("GN_REMODELING_CART"); bonus bHit,20; bonus bAspdRate,5+.@s; bonus bBaseAtk,15*.@s; bonus bMaxHPrate,2*.@s; bonus2 bSkillUseSP,"GN_CART_TORNADO",.@s; bonus2 bAddItemHealRate,501,100; bonus2 bAddItemHealRate,502,100; bonus2 bAddItemHealRate,503,100; bonus2 bAddItemHealRate,504,100; bonus2 bSkillAtk,"MC_CARTREVOLUTION",Baselevel; bonus2 bSkillAtk,"GN_CARTCANNON",2*(Baselevel/20); bonus2 bSkillAtk,"GN_CART_TORNADO",2*(Baselevel/30); },{},{} 28551,Imperial_Glove,Imperial Glove,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus2 bAddClass,Class_All,5; bonus bVariableCastrate,-10; bonus bNoCastCancel; },{},{} +//28560,Yin_Yang_Talisman,Yin Yang Talisman,4,20,,300,,0,,1,0xFFFFFFFF,63,2,136,,50,0,0,{ bonus bMatkRate,5; bonus bHit,20; bonus bAspdRate,5; },{},{} +28564,Valkyrie_Drop,Valkyrie Drop,4,20,,30,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ .@r = getskilllv("PR_IMPOSITIO"); bonus bSPrecovRate,50; bonus bVariableCastrate,-10; bonus bDelayrate,-5; bonus2 bVariableCastrate,"AB_ORATIO",-50; bonus2 bFixedCastrate,"AB_ORATIO",-100; bonus2 bMagicAddSize,Size_All,3*.@r; bonus2 bSkillAtk,"PR_MAGNUS",3*(Baselevel/2); if (.@r == 5) skill "ALL_ODINS_POWER",2; },{},{} +28565,Perverse_Demon_Mask,Perverse Demon Mask,4,20,,60,,0,,1,0xFFFFFFFF,63,2,128,,80,0,0,{ .@s = readparam(bStr); .@a = readparam(bAgi); .@d = readparam(bDex); .@v = readparam(bvit); .@l = readparam(bLuk); .@i = readparam(bInt); bonus bStr,3*(.@i/18); bonus bAgi,3*(.@l/18); bonus bVit,3*(.@d/18); bonus bInt,3*(.@s/18); bonus bDex,3*(.@v/18); bonus bLuk,3*(.@a/18); bonus bMaxHPrate,(.@d/18); bonus bFlee2,(.@a/18); bonus bMaxHPrate,(.@d/18); bonus bVariableCastrate,-(.@v/18); bonus bDelayrate,-(.@i/18); bonus2 bIgnoreDefClassRate,Class_All,15*(.@l/18); bonus2 bIgnoreMdefClassRate,Class_All,15*(.@s/18); },{},{} +28573,Emerald_Ring,Emerald Ring,4,20,,300,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ .@a = getskilllv("AC_DOUBLE")/2; bonus bAgi,5+(.@a); bonus bVit,5+(.@a); bonus bDex,5+(.@a); bonus bBaseAtk,(20*.@a); bonus2 bSkillAtk,"AC_DOUBLE",Baselevel; bonus2 bSkillAtk,"AC_SHOWER",Baselevel; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",2*(Baselevel/10); bonus2 bSkillUseSP,"WM_RANDOMIZESPELL",18; },{},{} +28575,Verus_Core,Verus Core,4,10,,500,,0,,1,0xFFFFFFFF,63,2,136,,80,0,0,{ bonus bAspdRate,10; bonus2 bAddEle,Ele_All,5; bonus bPerfectHitAddRate,20; },{},{} +28594,Temporal_Ring,Temporal Ring,4,20,,500,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bBaseAtk,50; bonus bMatk,50; },{},{} +28598,Powered_Chip,Powered Chip,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bStr,5; bonus bVit,5; bonus bDex,5; bonus2 bAddClass,Class_All,5; if (getskilllv("NC_ARMSCANNON") >= 3) bonus bDelayrate,-30; if (getskilllv("NC_NEUTRALBARRIER") >= 3) { bonus2 bVariableCastrate,"NC_ARMSCANNON",-50; bonus2 bVariableCastrate,"NC_FLAMELAUNCHER",-50; bonus2 bVariableCastrate,"NC_COLDSLOWER",-50; } if (getskilllv("NC_PILEBUNKER") >= 3) { bonus bStr,5; bonus bVit,5; bonus bDex,5; bonus bBaseAtk,100; } if (getskilllv("NC_RESEARCHFE") >= 5) bonus bNoMadoFuel; },{},{} //=================================================================== // More books //=================================================================== @@ -12625,6 +12478,8 @@ 28606,Unity_Bible,Unity Bible,5,20,,220,42,,1,1,0x00410100,63,2,2,3,1,1,15,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{} 28608,Elemental_Origin,Elemental Origin,5,0,,800,120:150,,1,2,0x00010000,56,2,2,3,100,1,15,{ .@r = getrefine(); bonus bInt,4; .@bonus = 10; if (.@r>=7) { .@bonus += 10; } if (.@r>=9) { .@bonus += 10; } bonus2 bSkillAtk,"MG_FIREBOLT",.@bonus; bonus2 bSkillAtk,"MG_COLDBOLT",.@bonus; bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@bonus; },{},{} 28612,Illusion_Apocalypse,Illusion Apocalypse,5,0,,800,170,,1,2,0x00410100,63,2,2,4,100,1,15,{ .@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bSubDefEle,Ele_Holy,-30; },{},{} +28618,Book_of_the_Sun_God,Book of the Sun God,5,10,,500,180:170,,1,4,0x00010100,63,2,2,3,100,1,15,{ .@r = getrefine(); bonus bMaxHP,200*.@r; bonus bMaxSP,50*.@r; bonus bAspdRate,.@r; if (.@r>=10) bonus3 bAutoSpell,"WZ_METEOR",5,200; else if (.@r>=8) bonus3 bAutoSpell,"WZ_METEOR",4,150; else bonus3 bAutoSpell,"WZ_METEOR",3,100; },{},{} +28619,Prisoner_Diary,Prisoner's Diary,5,20,,800,210,,1,2,0x00410100,63,2,2,3,175,1,15,{ .@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,20*(.@r/2); if (.@r>=9) .@val = 25; else if (.@r>=7) .@val = 10; if (.@r>=11) { bonus2 bAddEle,Ele_Dark,15; bonus2 bMagicAddEle,Ele_Dark,15; bonus2 bAddEle,Ele_Undead,15; bonus2 bMagicAddEle,Ele_Undead,15; } bonus2 bAddRace,RC_Demon,.@val; bonus2 bAddRace,RC_Undead,.@val; bonus2 bMagicAddRace,RC_Demon,.@val; bonus2 bMagicAddRace,RC_Undead,.@val; },{},{} 28626,Illusion_Tablet,Illusion Tablet,5,0,,800,170,,1,2,0x00410100,63,2,2,4,100,1,15,{ .@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bAddEle,Ele_Poison,.@val; bonus2 bAddEle,Ele_Ghost,.@val; bonus2 bSubDefEle,Ele_Dark,-30; },{},{} 28629,Circuit_Board-OS,Circuit Board-OS,5,20,,1200,180,,1,2,0x00410100,63,2,2,4,130,1,15,{ .@r = getrefine(); bonus2 bAddClass,Class_All,3; if (.@r >= 7) { bonus bAspdRate,7; if (.@r >= 9) { bonus2 bAddSize,Size_Small,20; bonus2 bAddSize,Size_Medium,20; if (.@r >= 11) { bonus bCritAtkRate,20; } } } },{},{} // 28631,Thousand_Sun,Thousand Sun,5,20,,900,160,,1,2,0x00000000,63,2,2,4,100,1,15,{ .@r = getrefine(); bonus bBaseAtk,10*(.@r/2); bonus bMaxSPrate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SJ_PROMINENCEKICK",15; if (.@r >= 9) { bonus bAspdRate,10; if (.@r >= 11) { bonus2 bSkillAtk,"SJ_SOLARBURST",20; } } } },{},{} @@ -12637,6 +12492,7 @@ 28703,Infinity_Dagger,Infinity Dagger,5,10,,500,125:100,,1,1,0x028F5EEF,56,2,2,4,100,1,1,{},{},{} 28705,Crimson_Dagger,Crimson Dagger,5,20,,550,55,,1,2,0x028F5EEF,63,2,2,3,70,1,1,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225); },{},{} 28706,Dagger_of_Vicious_Mind,Dagger of Vicious Mind,5,20,,1050,105:50,,1,1,0x028F5EEF,63,2,2,4,160,1,1,{ bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; },{},{} +28717,Valkyrie_Knife,Valkyrie Knife,5,50,,100,50:50,,1,4,0x228F5EEF,63,2,2,4,70,1,1,{ .@r = getrefine(); .@b = readparam(bDex)/10; if (.@r>7) { .@c = .@r-7; if (BaseClass==Job_Novice||BaseJob==Job_Mage) { bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; } } if (BaseClass==Job_Novice) { bonus bMaxHP,300+(200*.@c); bonus bMaxSP,300+(20*.@c); bonus bBaseAtk,100; bonus bMatk,150+(15*.@c); bonus bUseSPrate,-5; bonus bUnbreakableWeapon; bonus bInt,2*.@c; bonus bDex,(2*.@c)-(.@c*.@b); bonus bCritical,7*.@c; bonus bAspdRate,10*.@c; bonus bCritAtkRate,1*.@c; } if (BaseClass==Job_Thief) { bonus bMaxSP,100; bonus bMatk,150; bonus bCritAtkRate,.@r; } if (BaseClass==Job_Mage && .@c) { bonus bMaxHP,200*.@c; bonus bMaxSP,20*.@c; } if (BaseJob==Job_Hunter) { bonus bMaxHP,200; bonus bUseSPrate,-5; bonus bInt,2*.@r; bonus bDex,2*.@r; } if (BaseJob==Job_Bard||BaseJob==Job_Dancer) { bonus bBaseAtk,100; bonus bAspdRate,10*.@r; bonus bUnbreakableWeapon; bonus bDex,-1*(.@c*.@b); } },{},{} 28721,Monokage,Monokage,5,10,,800,100,,1,2,0x20000000,63,2,2,3,100,1,1,{ .@r = getrefine(); bonus2 bSkillAtk,"KO_BAKURETSU",getskilllv("NJ_TOBIDOUGU"); if (.@r>=9) { bonus bLongAtkRate,5; } else if (.@r>=7) { bonus bLongAtkRate,2; } },{},{} 28725,Illusion_Moonlight_Dagger,Illusion Moonlight Dagger,5,20,,700,150,,1,1,0x028F5EEE,63,2,2,4,99,1,1,{ bonus bMaxSPrate,10; .@val = 3; if (getrefine() >= 10) { .@val += 4; } bonus bSPDrainValue,.@val; },{},{} 28745,Illusion_Counter_Dagger,Illusion Counter Dagger,5,0,,900,170,,1,2,0x00810204,63,2,2,4,120,0,1,{ .@r = getrefine(); bonus bCritical,90; bonus bCritAtkRate,(3*(.@r/2)); if (.@r >= 7) { bonus2 bAddClass,Class_All,5; if (.@r >= 9) { bonus2 bAddSize,Size_All,20; if (.@r >= 11) { bonus2 bAddEle,Ele_All,20; } } } },{},{} @@ -12661,8 +12517,14 @@ 28913,Ultralight_Magic_Shield,Ultralight Magic Shield,4,0,,100,,50,,1,0xFFFFFFFF,63,2,32,,100,1,1,{ .@r = getrefine(); .@val = 5; bonus2 bIgnoreDefClassRate,Class_Normal,10; if (.@r >= 9) { .@val += 5; } else if (.@r >= 7) { .@val += 2; } bonus bAspdRate,.@val; bonus2 bSubEle,Ele_Neutral,.@val; },{},{} 28915,Bunker_Shield,Bunker Shield,4,20,,3500,,90,,1,0xFFFFFFFF,63,2,32,,50,1,1,{ .@r = getrefine(); if(.@r >= 5) { .@dmg = .@r - 4; } bonus2 bAddClass,Class_All,(4+.@dmg); bonus bAspdRate,-5; },{},{} 28916,Gaia_Shield,Gaia Shield,4,20,,2000,,150,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ bonus bMdef,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bAddEle,Ele_Earth,5; bonus2 bMagicAddEle,Ele_Earth,5; .@r = getrefine(); if(.@r>=6) { bonus2 bSubEle,Ele_Earth,15; bonus2 bAddEle,Ele_Earth,10; bonus2 bMagicAddEle,Ele_Earth,10; } if(.@r>=8) { if(readparam(bStr)>=90) { bonus bBaseAtk,50; } if(readparam(bAgi)>=90) { bonus bAspdRate,5; } if(readparam(bVit)>=90) { bonus bHealPower2,10; bonus bAddItemHealRate,10; } if(readparam(bInt)>=90) { bonus bMatk,30; } if(readparam(bDex)>=90) { bonus bVariableCastrate,-5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,5; } } },{},{} +28918,Shield_of_Chaos,Shield of Chaos,4,20,,500,,80,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ .@r = getrefine(); bonus bMdef,5; bonus2 bSubEle,Ele_Dark,25; if (.@r>=5) bonus bAspd,1; if (.@r>=7) bonus bAspd,1; },{},{} 28920,Diamond_Shield,Diamond Shield,4,20,,1000,,50,,0,0xFFFFFFFF,63,2,32,,100,1,1,{ .@r = getrefine(); if(BaseLevel>=150) { bonus bDef,100+(20*(.@r/3)); } },{},{} +28921,Anemos_Shield,Anemos Shield,4,20,,3500,,150,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ bonus bMdef,15; bonus2 bAddEle,Ele_Wind,5; bonus2 bMagicAddEle,Ele_wind,5; bonus2 bSubEle,Ele_Wind,10; bonus bUnbreakableShield; .@r = getrefine(); if (.@r>=6) { bonus2 bAddEle,Ele_Wind,10; bonus2 bMagicAddEle,Ele_wind,10; bonus2 bSubEle,Ele_Wind,15; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; } },{},{} 28922,Illusion_Sacred_Mission,Illusion Sacred Mission,4,0,,1600,,190,,1,0x00004000,56,2,32,,120,1,4,{ bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield; bonus2 bSkillAtk,"LG_EARTHDRIVE",(7*getrefine()); },{},{} +28929,Happy_Shield,Happy Shield,4,10,,3500,,150,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ bonus bMdef,10; },{},{} +28941,Excelion_Shield,Excelion Shield,4,20,,1200,,95,,1,0xFFFFFFFF,63,2,32,,100,1,1,{ .@r = getrefine(); bonus bMdef,5; bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,30*(.@r/3); bonus bMatk,30*(.@r/3); if (readparam(Baselevel>=130)) { bonus bMaxHPrate,5; bonus bMaxSPrate,5; } },{},{} +28951,Nero_Shield,Nero Shield,4,20,,500,,80,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ .@r = getrefine(); bonus bUnbreakableShield; bonus bMdef,5; bonus2 bSubEle,Ele_Water,10; bonus2 bAddEle,Ele_Water,5; bonus2 bMagicAddEle,Ele_Water,5; if (.@r>=6) { bonus2 bSubEle,Ele_Water,15; bonus2 bAddEle,Ele_Water,10; bonus2 bMagicAddEle,Ele_Water,10; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; } },{},{} +28955,Fotia_Shield,Fotia Shield,4,20,,1000,,120,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ .@r = getrefine(); bonus bUnbreakableShield; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bAddEle,Ele_Fire,5; bonus2 bMagicAddEle,Ele_Fire,5; if (.@r>=6) { bonus2 bSubEle,Ele_Fire,15; bonus2 bAddEle,Ele_Fire,10; bonus2 bMagicAddEle,Ele_Fire,10; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; } },{},{} //=================================================================== // Enchantment stones //=================================================================== @@ -13156,6 +13018,7 @@ 31476,C_Cherry_Blossom_Hat_YL,C Yellow Cherry Blossom Hat,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1727,{},{},{} 31477,C_Straight_Long_BL_,Rental C Straight Long Black,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1725,{},{},{} 31478,C_Eleanor_Wig_,C Eleanors Wig Lower,4,,,0,,,,,0xFFFFFFFF,63,2,4096,,1,0,1502,{},{},{} +31479,C_Group_of_Stars,Costume Group of Stars,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1729,{ hateffect(HAT_EF_MANYSTARS,true); },{},{ hateffect(HAT_EF_MANYSTARS,false); } 31481,C_TriColor_CatCup,C TriColor CatCup,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1731,{},{},{} 31484,C_JP_EV13,C BearCompanion Female,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1736,{},{},{} 31485,C_JP_EV14,C BearCompanion Male,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1737,{},{},{} @@ -13243,7 +13106,7 @@ 31582,C_Jirant_Circlet,C Jirant Circlet,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1644,{},{},{} 31583,C_Will_O_Wisp_Lower,C Will O Wisp Lower,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,880,{},{ sc_start SC_STRANGELIGHTS,INFINITE_TICK,0; },{ sc_end SC_STRANGELIGHTS; } 31586,C_Poporing_Muffler,C Poporing Muffler,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1797,{},{},{} -31588,C_Snow_Flower,C Snow Flower,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1799,{},{},{} +31588,C_Snow_Flower,C Snow Flower,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1799,{ hateffect(HAT_EF_SNOWFLAKE_TIARA,true); },{},{ hateffect(HAT_EF_SNOWFLAKE_TIARA,false); } 31589,C_Golden_Majestic_Goat,C Golden Majestic Goat,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1800,{},{},{} 31590,C_Designer_Brush,C Designer's Brush,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1291,{},{},{} 31593,C_Yellow_Scarf,C Yellow Scarf,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1170,{},{},{} @@ -13255,7 +13118,7 @@ 31599,C_Medium_Wave,C Medium Wave,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1803,{},{},{} 31600,C_Kishu_Dog,C Kishu Dog,4,0,,,,0,,0,0xFFFFFFFF,63,2,2048,,1,0,1804,{},{},{} 31601,C_Under_Rim_Glasses_Blue,C Under Rim Glasses Blue,4,0,,,,0,,0,0xFFFFFFFF,63,2,2048,,1,,1805,{},{},{} -31602,C_Midgarts_Glory,C Rune Midgarts Glory,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,,1807,{},{},{} +31602,C_Midgarts_Glory,C Rune Midgarts Glory,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1807,{ hateffect(HAT_EF_MIDGARTS_GLORY,true); },{},{ hateffect(HAT_EF_MIDGARTS_GLORY,false); } 31606,C_Autumn_Headband,C Autumn Headband,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1119,{},{},{} 31607,C_Cat_Ear_Witch_Hat,C Cat Ear Witch Hat,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1808,{},{},{} 31608,C_Magicstone_of_Grace,C Magic Stone of Grace,4,0,,,,0,,0,0xFFFFFFFF,63,2,7168,,1,0,1420,{},{},{} @@ -13264,18 +13127,20 @@ 31611,C_Snake_Lord_Stole,C Snake Lord Stole,4,0,,,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1810,{},{},{} 31612,C_Large_Sorcerer_Crown,C Large Sorcerer Crown,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1811,{},{},{} // -31479,C_Group_of_Stars,Costume Group of Stars,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1729,{ hateffect(HAT_EF_MANYSTARS,true); },{},{ hateffect(HAT_EF_MANYSTARS,false); } -31588,C_Snow_Flower,C Snow Flower,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1799,{ hateffect(HAT_EF_SNOWFLAKE_TIARA,true); },{},{ hateffect(HAT_EF_SNOWFLAKE_TIARA,false); } -31602,C_Midgarts_Glory,C Rune Midgarts Glory,4,0,,,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1807,{ hateffect(HAT_EF_MIDGARTS_GLORY,true); },{},{ hateffect(HAT_EF_MIDGARTS_GLORY,false); } 32005,Illusion_Pole_Axe,Illusion Pole Axe,5,0,,1500,190,,3,2,0x00004082,63,2,2,4,120,1,4,{ .@r = getrefine(); bonus bStr,3; bonus bInt,2; bonus bDex,2; if (.@r >= 13) { .@val = -2000; } else if (.@r >= 9) { .@val = -1000; } bonus2 bSkillCooldown,"RK_HUNDREDSPEAR",.@val; },{},{} 32013,Metal_Stick,Metal Stick,5,0,0,2000,180,,3,3,0x00004080,56,2,2,4,150,1,4,{ .@r = getrefine(); bonus2 bSkillAtk,"LG_CANNONSPEAR",10; if(.@r > 6){ bonus2 bSkillAtk,"LG_OVERBRAND",10 + (.@r > 8 ? 15 : 0); } if(.@r > 11){ bonus bDelayrate,-15; } },{},{} 32014,Brute_Spear,Brute Spear,5,0,0,,150,,3,0,0x00004080,56,2,2,4,100,1,4,{ .@r = getrefine(); bonus bUnbreakableWeapon; bonus2 bIgnoreDefRaceRate,RC_All,5*.@r; bonus2 bAddRace,RC_Player,80 + (.@r > 8 ? 20 : 0) + (.@r > 7 ? 35 : 0); if(.@r > 9){ bonus bMaxHPrate,15; bonus bMaxSPrate,15; } },{},{} 32019,Boost_Lance-OS,Boost Lance-OS,5,20,,1000,190,,3,2,0x00004000,56,2,2,4,130,1,4,{ .@r = getrefine(); .@aspd = 3; if (.@r >= 7) { .@aspd += 7; if (.@r >= 9) { .@dmg = 20; if (.@r >= 11) { .@dmg += 15; } bonus2 bSkillAtk,"LG_BANISHINGPOINT",.@dmg; } } bonus bAspdRate,.@aspd; },{},{} // +32203,Accelerator_Chip,Accelerator Chip,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bAspdRate,5; /* Combo with Riot Chip not implemented yet. */ },{},{} +32204,Immortal_Dog_Tag,Immortal Dog Tag,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bBaseAtk,50; bonus bMatk,50; bonus2 bSubRace,RC_Undead,4; },{},{} +32206,Prontera_Militia_Glove,Prontera Militia Glove,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bVit,5; bonus bMdef,5; bonus bAspdRate,5; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Earth,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Fire,5; },{},{} 32207,Illusion_Booster_R,Illusion Booster R,4,20,,100,,0,,1,0xFFFFFFFF,63,2,8,,130,0,0,{ bonus2 bAddClass,Class_All,5; },{},{} 32208,Illusion_Booster_L,Illusion Booster L,4,20,,100,,0,,1,0xFFFFFFFF,63,2,128,,130,0,0,{ bonus2 bAddClass,Class_All,5; },{},{} 32209,Illusion_Battle_chip_R,Illusion Battle chip R,4,20,,100,,0,,1,0xFFFFFFFF,63,2,8,,130,0,0,{ bonus bMatkRate,5; },{},{} 32210,Illusion_Battle_chip_L,Illusion Battle chip L,4,20,,100,,0,,1,0xFFFFFFFF,63,2,128,,130,0,0,{ bonus bMatkRate,5; },{},{} +32222,Brooch_of_Hero,Brooch of Hero,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; if((eaclass()&EAJL_THIRD && BaseJob == Job_Knight) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Crusader))) { bonus bMaxHPrate,10; bonus2 bAddRace,RC_All,5; } if((eaclass()&EAJL_THIRD && BaseJob == Job_Priest) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Monk))) { bonus bAspdRate,10; bonus2 bAddRace,RC_All,5; } if((eaclass()&EAJL_THIRD && BaseJob == Job_Blacksmith) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Alchemist))) { bonus bUseSPrate,-10; bonus2 bAddRace,RC_All,5; } },{},{} +32227,Hrodvitnir's_Chain,Hrodvitnir's Chain,4,20,,300,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bAspdRate,5; bonus bDelayrate,-5; skill "AL_TELEPORT",1; },{},{} 32228,Schmidt_Insignia_Power,King Schmidt's Power Insignia,4,0,0,200,,10,,1,0xFFFFFFFF,63,2,128,,150,,,{ bonus2 bAddClass,Class_All,10; },{},{} 32229,Schmidt_Insignia_Divine_Power,King Schmidt's Divine Power Insignia,4,0,0,200,,10,,1,0xFFFFFFFF,63,2,128,,150,,,{ bonus bMatkRate,10; },{},{} 32230,Schmidt_Insignia_Hundred_Lucks,King Schmidt's Hundred Lucks Insignia,4,0,0,200,,10,,1,0xFFFFFFFF,63,2,128,,150,,,{ bonus bCritAtkRate,7; },{},{} @@ -13285,6 +13150,10 @@ 32237,Celine's_Brooch,Celine's Brooch,4,10,,500,,0,,1,0xFFFFFFFE,63,2,136,,100,0,0,{ bonus bMatkRate,5; bonus bVariableCastrate,-10; },{},{} 32238,Illusion_Morpheus's_Ring,Illusion Morpheus's Ring,4,20,,100,,0,,1,0xFFFFFFFF,63,2,8,,130,0,0,{ bonus bInt,3; bonus bMaxSPrate,5; },{},{} 32239,Illusion_Morpheus's_Bracelet,Illusion Morpheus's Bracelet,4,20,,100,,0,,1,0xFFFFFFFF,63,2,128,,130,0,0,{ bonus bInt,3; bonus bMaxSPrate,5; },{},{} +32242,Old_Detachment_Ring,Old Detachment Ring,4,20,,0,,0,,0,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMdef,10; bonus2 bSubRace,RC_Player,3; },{},{} +32258,Ring_of_Jupiter,Ring of Jupiter,4,20,,500,,2,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ skill "AL_BLESSING",5; if (getequipid(EQI_ACC_R) == 32258) { bonus bBaseAtk,15*(readparam(bLuk)/10); bonus bMatk,15*(readparam(bLuk)/10); if (readparam(bLuk) >= 125) { bonus2 bAddClass,Class_Boss,15; bonus2 bMagicAddClass,Class_Boss,15; } } if (getequipid(EQI_ACC_L) == 32258) { bonus bMaxHPRate,2*(readparam(bVit)/10); bonus bMaxSPRate,2*(readparam(bVit)/10); if (readparam(bVit) >= 125) { bonus bDef,300; bonus bMdef,50; bonus2 bSubRace,RC_Player,3; } } },{},{} +32262,Rasen_Fuma_Orb,Rasen Fuma's Orb,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bStr,5; bonus bAgi,5; bonus bVit,5; bonus2 bAddClass,Class_All,5; if (getskilllv("KO_ZANZOU")>=5) { bonus2 bSkillAtk,"KO_HUUMARANKA",Baselevel/4; bonus2 bSkillAtk,"NJ_HUUMA",2*(Baselevel/4); } if (getskilllv("KO_KYOUGAKU")>=5) { bonus2 bSkillUseSP,"KO_HUUMARANKA",10; bonus2 bSkillCooldown,"KO_HUUMARANKA",-100; } if (getskilllv("KO_MUCHANAGE")==10) { bonus2 bHPDrainRate,50,1; } if (getskilllv("KO_MEIKYOUSISUI")>=5) { bonus bSPDrainValue,2; bonus2 bSkillCooldown,"KO_IZAYOI",-25000; } if (getskilllv("KO_SETSUDAN")>=5) { bonus2 bVariableCastrate,"KO_HUUMARANKA",-50; } },{},{} +32263,Shield_Ring,Shield Ring,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bStr,5; bonus bInt,5; bonus bDex,5; bonus2 bAddClass,Class_All,5; if (getskilllv("LG_EARTHDRIVE")==5) bonus bDelayrate,-30; if (getskilllv("LG_INSPIRATION")==5) bonus2 bSkillCooldown,"LG_EARTHDRIVE",-1500; if (getskilllv("CR_DEVOTION")==5) { bonus bStr,5; bonus bInt,5; bonus bDex,5; bonus bBaseAtk,100; } if (getskilllv("LG_PINPOINTATTACK")==5) { bonus2 bSkillVariableCast,"LG_EARTHDRIVE",-500; bonus2 bSkillUseSP,"LG_EARTHDRIVE",25; } },{},{} //=================================================================== // More Guns //=================================================================== diff --git a/db/re/item_delay.txt b/db/re/item_delay.txt index 76b7af2bde5..11d0ed00634 100644 --- a/db/re/item_delay.txt +++ b/db/re/item_delay.txt @@ -86,6 +86,10 @@ 12970,300000,SC_REUSE_LIMIT_RECALL //Emergency_Scroll3 // Misc +11621,10000 //Red_Syrup +11622,10000 //Yellow_Syrup +11623,10000 //White_Syrup +11624,10000 //Blue_Syrup 12135,10000 //Green_Ale //12202,60000 //Str_Dish10_ //12203,60000 //Agi_Dish10_ diff --git a/db/re/item_noequip.txt b/db/re/item_noequip.txt index 4639bf00b09..d3fef3589e3 100644 --- a/db/re/item_noequip.txt +++ b/db/re/item_noequip.txt @@ -126,6 +126,7 @@ 13416,16 // Krieger_Onehand_Sword1 13417,16 // Krieger_Onehand_Sword2 13418,16 // Krieger_Onehand_Sword3 +28918,16 // Shield_of_Chaos // Vellum Gear 1293,16 // Velum_Jamadhar diff --git a/db/re/item_randomopt_db.txt b/db/re/item_randomopt_db.txt index 9ca112619bc..5a82f1049cc 100644 --- a/db/re/item_randomopt_db.txt +++ b/db/re/item_randomopt_db.txt @@ -39,25 +39,25 @@ RDMOPT_ATTR_TOLERACE_UNDEAD,{ bonus2 bSubEle,Ele_Undead,getrandomoptinfo(ROA_VAL RDMOPT_ATTR_TOLERACE_ALL,{ bonus2 bSubEle,Ele_All,getrandomoptinfo(ROA_VALUE); } // TODO: Confirm if damage reduction is implemented correctly. // kRO desc : 몬스터로부터 받는 물리 데미지 %d%% 감소. -RDMOPT_DAMAGE_PROPERTY_NOTHING_USER,{ bonus3 bSubEle,Ele_Neutral,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_NOTHING_USER,{ bonus2 bSubDefEle,Ele_Neutral,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,{ bonus2 bAddEle,Ele_Neutral,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_WATER_USER,{ bonus3 bSubEle,Ele_Water,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_WATER_USER,{ bonus2 bSubDefEle,Ele_Water,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,{ bonus2 bAddEle,Ele_Water,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_GROUND_USER,{ bonus3 bSubEle,Ele_Earth,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_GROUND_USER,{ bonus2 bSubDefEle,Ele_Earth,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,{ bonus2 bAddEle,Ele_Earth,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_FIRE_USER,{ bonus3 bSubEle,Ele_Fire,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_FIRE_USER,{ bonus2 bSubDefEle,Ele_Fire,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,{ bonus2 bAddEle,Ele_Fire,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_WIND_USER,{ bonus3 bSubEle,Ele_Wind,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_WIND_USER,{ bonus2 bSubDefEle,Ele_Wind,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,{ bonus2 bAddEle,Ele_Wind,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_POISON_USER,{ bonus3 bSubEle,Ele_Poison,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_POISON_USER,{ bonus2 bSubDefEle,Ele_Poison,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,{ bonus2 bAddEle,Ele_Poison,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_SAINT_USER,{ bonus3 bSubEle,Ele_Holy,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_SAINT_USER,{ bonus2 bSubDefEle,Ele_Holy,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,{ bonus2 bAddEle,Ele_Holy,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_DARKNESS_USER,{ bonus3 bSubEle,Ele_Dark,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_DARKNESS_USER,{ bonus2 bSubDefEle,Ele_Dark,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,{ bonus2 bAddEle,Ele_Dark,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_USER,{ bonus3 bSubEle,Ele_Ghost,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_USER,{ bonus2 bSubDefEle,Ele_Ghost,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,{ bonus2 bAddEle,Ele_Ghost,getrandomoptinfo(ROA_VALUE); } -RDMOPT_DAMAGE_PROPERTY_UNDEAD_USER,{ bonus3 bSubEle,Ele_Undead,getrandomoptinfo(ROA_VALUE),BF_NORMAL; } +RDMOPT_DAMAGE_PROPERTY_UNDEAD_USER,{ bonus2 bSubDefEle,Ele_Undead,getrandomoptinfo(ROA_VALUE); } RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,{ bonus2 bAddEle,Ele_Undead,getrandomoptinfo(ROA_VALUE); } RDMOPT_MDAMAGE_PROPERTY_NOTHING_USER,{ bonus3 bSubEle,Ele_Neutral,getrandomoptinfo(ROA_VALUE),BF_MAGIC; } RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,{ bonus2 bMagicAddEle,Ele_Neutral,getrandomoptinfo(ROA_VALUE); } diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt index d085145b604..f65dc797e8b 100644 --- a/db/re/mob_db.txt +++ b/db/re/mob_db.txt @@ -2365,12 +2365,12 @@ //3205,PIXY_BLUE_PORING,Poring,Poring,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12418,1000,12422,1500,12425,1500,12208,500,22553,1000,12919,1000,16640,5,0,0,0,0,0,0 //3206,LITTLE_GOLDPORING,Poring,Poring,100,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //3207,E_AQUA_ELEMENTAL,Poring,Poring,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,200,0,0,0,0,0,0,0,0,0,0,969,3000,7444,3000,22537,1000,6635,1000,18570,500,19539,500,0,0,0,0,0,0,0,0 -3208,V_EREMES,V Eremes,Eremes Guille,179,2380000,1,70000,35000,1,5333,2000,180,100,150,190,60,70,200,80,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6816,100,19973,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4684,1 -3209,V_MAGALETA,V Magaleta,Margaretha Sorin,177,2448000,1,80000,40000,1,1667,7000,160,400,130,80,120,160,150,70,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6819,100,19962,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4685,1 -3210,V_KATRINN,V Katrinn,Kathryne Cheiron,177,2040000,1,60000,30000,1,1333,6000,110,400,110,80,60,200,210,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6817,100,19968,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4686,1 -3211,V_SHECIL,V Shecil,Shecil Damon,179,2142000,1,70000,35000,14,4667,2000,100,100,130,130,70,80,300,50,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,20392,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4687,1 -3212,V_HARWORD,V Harword,Harword Alt-Eisen,177,2720000,1,100000,50000,1,3333,3000,200,100,160,80,200,60,130,50,10,12,1,7,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6815,100,19963,100,19964,100,22679,10,22687,10,0,0,0,0,0,0,0,0,4688,1 -3213,V_SEYREN,V Seyren,Seyren Windsor,179,2448000,1,80000,40000,1,6000,4000,400,200,170,100,200,50,200,60,10,12,1,6,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6814,100,19961,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4689,1 +3208,V_EREMES,V Eremes,Eremes Guille,179,2380000,1,70000,35000,1,5333,2000,180,100,150,190,60,70,200,80,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6816,500,20391,50,19973,50,4684,1 +3209,V_MAGALETA,V Magaleta,Margaretha Sorin,177,2448000,1,80000,40000,1,1667,7000,160,400,130,80,120,160,150,70,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6819,500,19962,50,4685,1 +3210,V_KATRINN,V Katrinn,Kathryne Cheiron,177,2040000,1,60000,30000,1,1333,6000,110,400,110,80,60,200,210,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6817,500,19968,50,4686,1 +3211,V_SHECIL,V Shecil,Shecil Damon,179,2142000,1,70000,35000,14,4667,2000,100,100,130,130,70,80,300,50,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19974,50,4687,1 +3212,V_HARWORD,V Harword,Harword Alt-Eisen,177,2720000,1,100000,50000,1,3333,3000,200,100,160,80,200,60,130,50,10,12,1,7,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6815,500,19963,50,19964,50,4688,1 +3213,V_SEYREN,V Seyren,Seyren Windsor,179,2448000,1,80000,40000,1,6000,4000,400,200,170,100,200,50,200,60,10,12,1,6,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6814,500,19961,50,4689,1 3214,V_G_EREMES,V G Eremes,Assassin Cross Eremes,189,2100000,1,0,0,1,8000,4000,360,200,300,380,120,140,400,160,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3215,V_G_MAGALETA,V G Magaleta,High Priest Margaretha,187,2400000,1,0,0,1,2500,14000,320,800,260,160,240,320,300,140,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3216,V_G_KATRINN,V G Katrinn,High Wizard Kathryne,187,1800000,1,0,0,1,2000,12000,220,800,220,160,120,400,420,100,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -2383,13 +2383,13 @@ 3223,V_B_HARWORD,Mechanic Harword,Mechanic Howard,187,18000000,1,3000000,3000000,1,10000,6000,400,200,320,160,400,120,260,100,10,12,1,7,81,0x6283695,100,76,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4677,1 3224,V_B_KATRINN,Warlock Katrinn,Warlock Kathryne,187,10800000,1,3000000,3000000,1,4000,12000,220,800,220,160,120,400,420,100,10,12,1,7,88,0x6283695,100,576,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4678,1 3225,V_B_SEYREN,Rune Knight Seyren,Rune Knight Seyren,189,14400000,1,3000000,3000000,1,9000,8000,800,400,340,200,400,100,400,120,10,12,1,7,83,0x6283695,100,76,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4679,1 -3226,V_RANDEL,V Randel,Randel Lawrence,178,2550000,1,100000,50000,1,4000,2000,300,200,200,80,200,50,190,70,10,12,1,7,86,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6814,100,20393,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4690,1 -3227,V_FLAMEL,V Flamel,Flamel Emule,176,2312000,1,80000,40000,1,3333,5000,130,100,140,80,70,150,200,50,10,12,1,7,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6815,100,19967,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4691,1 -3228,V_CELIA,V Celia,Celia Alde,178,2295000,1,90000,45000,1,2000,5000,110,800,140,100,60,150,120,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6817,100,19970,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4692,1 -3229,V_CHEN,V Chen,Chen Liu,178,2261000,1,70000,35000,1,5333,3000,180,100,150,80,90,130,200,60,10,12,1,6,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6819,100,19969,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4693,1 -3230,V_GERTIE,V Gertie,Gertie Wie,178,2040000,1,80000,40000,1,4667,2500,160,100,180,130,60,50,210,50,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6816,100,19965,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4694,1 -3231,V_ALPHOCCIO,V Alphoccio,Alphoccio Basil,176,2040000,1,60000,30000,1,2667,6000,120,100,120,150,70,200,150,90,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,19966,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4696,1 -3232,V_TRENTINI,V Trentini,Trentini,176,2040000,1,60000,30000,2,2667,6000,100,100,110,150,70,200,150,80,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,19971,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4695,1 +3226,V_RANDEL,V Randel,Randel Lawrence,178,2550000,1,100000,50000,1,4000,2000,300,200,200,80,200,50,190,70,10,12,1,7,86,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6814,500,19972,50,4690,1 +3227,V_FLAMEL,V Flamel,Flamel Emule,176,2312000,1,80000,40000,1,3333,5000,130,100,140,80,70,150,200,50,10,12,1,7,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6815,500,19967,50,4691,1 +3228,V_CELIA,V Celia,Celia Alde,178,2295000,1,90000,45000,1,2000,5000,110,800,140,100,60,150,120,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6817,500,19970,50,4692,1 +3229,V_CHEN,V Chen,Chen Liu,178,2261000,1,70000,35000,1,5333,3000,180,100,150,80,90,130,200,60,10,12,1,6,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6819,500,19969,50,4693,1 +3230,V_GERTIE,V Gertie,Gertie Wie,178,2040000,1,80000,40000,1,4667,2500,160,100,180,130,60,50,210,50,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6816,500,19965,50,4694,1 +3231,V_ALPHOCCIO,V Alphoccio,Alphoccio Basil,176,2040000,1,60000,30000,1,2667,6000,120,100,120,150,70,200,150,90,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19966,50,4696,1 +3232,V_TRENTINI,V Trentini,Trentini,176,2040000,1,60000,30000,2,2667,6000,100,100,110,150,70,200,150,80,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19971,50,4695,1 3233,V_G_RANDEL,V G Randel,Paladin Randel,188,3000000,1,0,0,1,12000,4000,600,400,400,160,400,100,380,140,10,12,1,7,86,0x6203695,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3234,V_G_FLAMEL,V G Flamel,Creator Flamel,186,2400000,1,0,0,1,5000,10000,260,200,280,160,140,300,400,100,10,12,1,7,83,0x6203695,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3235,V_G_CELIA,V G Celia,Sorcerer Celia,188,4050000,1,0,0,1,3000,10000,220,800,280,200,120,300,240,100,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -3727,6 +3727,121 @@ //20583,MD_C_WHITEKNIGHT_G //20584,MD_C_KHALITZBURG_G //20585,MD_C_RAY_ARCHER_G +//20586,NYA_BRZ +//20587,WITCH_BRZ +//20588,ELDER_BRZ +//20589,SWING_TALE +//20590,RU_E_ECLIPS +//20591,PAPARE +//20592,POISONOUS +//20593,TOXIOUS +//20594,MINERAL_G +//20595,MINERAL_R +//20596,MINERAL_W +//20597,MINERAL_P +//20598,JEWELIANT +//20599,G_JEWELIANT +//20600,JEWEL +//20601,JUNGOLIANT +//20602,PORCELLIO_W +//20603,ABYSSMAN +//20604,ANGELGOLT +//20605,ANGELGOLT2 +//20606,HOLY_FRUS +//20607,HOLY_SKOGUL +//20608,PLASMA_ARCH +//20609,PLASMA_SPT +//20610,REGINLEIF +//20611,INGRID +//20612,FERUS_P +//20613,TREASURE_MIMIC +//20614,ACIDUS_B +//20615,ACIDUS_S +//20616,BONE_FERUS +//20617,BONE_ACIDUS +//20618,BONE_DETALE +//20619,GLOOMUNDERNIGHT2 +//20620,MD_REDPEPPER +//20621,MD_REDPEPPER_H +//20622,MD_ASSISTANT +//20623,MD_ASSISTANT_H +//20624,MD_DRY_RAFFLESIA +//20625,MD_DRY_RAFFLESIA_H +//20626,MD_ALNOLDI_EX +//20627,MD_ALNOLDI_EX_H +//20628,EP17_2_ALPHA_MASTER +//20629,EP17_2_BETA_BASIC +//20630,EP17_2_BETA_BASIC_NG +//20631,MD_BETA_SCISSORE_NG +//20632,MD_BETA_SCISSORE_NG_H +//20633,EP17_2_BETA_CLEANER_A +//20634,EP17_2_BETA_CLEANER_B +//20635,EP17_2_BETA_BATHS_A +//20636,EP17_2_BETA_BATHS_B +//20637,EP17_2_BETA_ITEMKEEPER +//20638,EP17_2_BETA_GUARDS +//20639,EP17_2_BETA_GUARDS_NG +//20640,EP17_2_OMEGA_CLEANER +//20641,EP17_2_OMEGA_CLEANER_NG +//20642,MD_SWEETY +//20643,EP17_2_PHEN +//20644,EP17_2_MARC +//20645,EP17_2_SWORD_FISH +//20646,EP17_2_PIRANHA +//20647,EP17_2_BATH_MERMAID +//20648,EP17_2_PITAYA_BOSS +//20649,EP17_2_PITAYA_R +//20650,EP17_2_PITAYA_Y +//20651,EP17_2_PITAYA_B +//20652,EP17_2_PITAYA_V +//20653,EP17_2_PITAYA_G +//20654,G_PITAYA_R +//20655,G_PITAYA_Y +//20656,G_PITAYA_B +//20657,G_PITAYA_V +//20658,G_PITAYA_G +//20659,MD_PITAYA_BOSS +//20660,MD_PITAYA_R +//20661,MD_PITAYA_Y +//20662,MD_PITAYA_B +//20663,MD_PITAYA_V +//20664,MD_PITAYA_G +//20665,MD_VERPORTA +//20666,MD_VERPORTE_H +//20667,MD_SILVA_PAPILIA +//20668,MD_GRAN_PAPILIA +//20669,MD_PAPILA +//20670,MD_PAPILA_H +//20671,MD_PAPILA_RUBA +//20672,MD_PAPILA_RUBA_H +//20673,MD_PAPILA_RUBA2 +//20674,MD_PAPILA_CAE +//20675,MD_PAPILA_CAE_H +//20676,MD_PAPILA_CAE2 +//20677,MD_ARIES +//20678,MD_ARIES_H +//20679,EP17_2_GUARDIAN_PARTS +//20680,EP17_2_HEART_HUNTER +//20681,G_EP17_2_HEART_HUNTER +//20682,EP17_2_HEART_HUNTER_H +//20683,EP17_2_BOOKWORM +//20684,EP17_2_ROAMING_SPLBOOK +//20685,EP17_2_VENENUM3 +//20686,EP17_2_CRAMP +//20687,EP17_2_WATERFALL +//20688,EP17_2_BELLARE3 +//20689,EP17_2_DOLOR3 +//20690,EP17_2_PLASMA_Y +//20691,EP17_2_PLAGA3 +//20692,EP17_2_SANARE3 +//20693,EP17_2_PLASMA_R +//20694,EP17_2_PLASMA_R2 +//20695,E_GARLING +//20696,EP17_2_CHILD_ADMIN1 +//20697,EP17_2_CHILD_ADMIN2 +//20698,G_ASSISTANT +//20699,G_BELLARE3 +//20700,G_BETA_SCISSORE_NG //31999,HUNTING_GID_DEFAULT //32000,MONSTER_2ND_END diff --git a/db/re/mob_race2_db.txt b/db/re/mob_race2_db.txt index 33b62e01c01..662bcd74122 100644 --- a/db/re/mob_race2_db.txt +++ b/db/re/mob_race2_db.txt @@ -39,3 +39,15 @@ RC2_BIO5_SWORDMAN_THIEF,1640,2228,3213,3219,3226,3233,1641,2232,3208,3214,3230,3 RC2_BIO5_ACOLYTE_MERCHANT,1643,2231,3209,3215,3229,3236,1642,2229,3212,3218,3227,3234 // Acolyte, Merchant monsters RC2_BIO5_MAGE_ARCHER,1645,2230,3210,3216,3228,3235,3211,1644,2233,2234,3217,3231,3232,3238,3239 // Mage, Archer monsters RC2_BIO5_MVP,3220,3221,3222,3223,3224,3225,3240,3241,3242,3243,3244,3245,3246 // MvPs +// THANATOS +RC2_THANATOS,1704,1705,1706,1707,1708,1709,1710,1711,1712 +// Faceworm +RC2_FACEWORM,2528,2529,2530,2532,2533,2534,2535,2540,2541 +// Clock Tower (Need to confirm: Owl duke, Owl baron, Nightmare Mimic, Nightmare Rideword) +RC2_CLOCKTOWER,1193,1199,1269,1270,1295,2870,2871,2910,2916,2917,2918,2919,2920,2921,2922,2923,3074 +// Rock Ridge +RC2_ROCKRIDGE,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749 +// Heart Hunter +//RC2_HEARTHUNTER,3626,3627,3628,3629 +// Werner Laboratory +//RC2_WERNER_LAB,3621,3622,3631,3632,3633 // miss ID 3826 - YSF Seyren monster diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt index fb6901bb746..d06308e7275 100644 --- a/db/re/mob_skill_db.txt +++ b/db/re/mob_skill_db.txt @@ -8970,51 +8970,51 @@ //2542,Irene Elder@NPC_MILLENNIUMSHIELD,chase,707,1,5000,1000,30000,no,self,always,0,,,,,,, //Geffen Magic Tournament -2549,[PH] 게펜마법사1@MG_FIREBOLT,attack,19,5,3000,1000,3000,yes,target,always,0,,,,,,, -2549,[PH] 게펜마법사1@MG_FIREWALL,attack,18,1,3000,2000,3000,yes,target,always,0,,,,,,, -2550,[PH] 게펜마법사2@MG_FROSTDIVER,attack,15,5,3000,1000,3000,yes,target,always,0,,,,,,, -2550,[PH] 게펜마법사2@MG_THUNDERSTORM,attack,21,3,3000,2000,3000,yes,target,always,0,,,,,,, -2551,[PH] 게펜마법사3 1@NPC_COMBOATTACK,attack,171,2,5000,0,3000,yes,target,always,0,,,,,,, -2551,[PH] 게펜마법사3 1@MG_STONECURSE,attack,16,5,5000,1000,5000,yes,target,always,0,,,,,,, -2551,[PH] 게펜마법사3 1@TF_POISON,attack,52,3,3000,0,5000,yes,target,always,0,,,,,,, -2552,[PH] 게펜마법사3 2@BS_HAMMERFALL,attack,110,5,5000,1000,10000,yes,target,always,0,,,,,,, -2552,[PH] 게펜마법사3 2@NPC_POWERUP,attack,349,5,5000,1000,25000,yes,self,always,0,,,,,,, -2553,[PH] 게펜마법사3 3@ASC_BREAKER,attack,379,1,3000,1000,5000,yes,target,always,0,,,,,,, -2553,[PH] 게펜마법사3 3@AS_VENOMDUST,attack,140,10,3000,1000,5000,yes,target,always,0,,,,,,, -2554,[PH] 게펜마법사4@AL_INCAGI,idle,29,10,10000,1000,10000,yes,self,always,0,,,,,,, -2554,[PH] 게펜마법사4@AL_INCAGI,attack,29,10,3000,1000,10000,yes,self,always,0,,,,,,, -2554,[PH] 게펜마법사4@AL_DECAGI,attack,30,48,3000,1000,10000,yes,target,always,0,,,,,,, -2554,[PH] 게펜마법사4@NPC_COMBOATTACK,attack,171,3,5000,0,3000,yes,target,always,0,,,,,,, -2555,[PH] 게펜마법사5@MG_COLDBOLT,attack,14,5,3000,1000,5000,yes,target,always,0,,,,,,, -2555,[PH] 게펜마법사5@WZ_STORMGUST,attack,89,1,3000,3000,10000,yes,target,always,0,,,,,,, -2555,[PH] 게펜마법사5@WZ_FROSTNOVA,attack,88,5,3000,1000,5000,yes,self,always,0,,,,,,, -2556,[PH] 게펜마법사6@CR_AUTOGUARD,attack,249,5,3000,500,5000,yes,self,always,0,,,,,,, -2556,[PH] 게펜마법사6@CR_GRANDCROSS,attack,254,5,3000,1000,10000,yes,self,always,0,,,,,,, -2557,[PH] 게펜마법사7@NPC_BLEEDING,attack,660,5,5000,0,10000,yes,target,always,0,,,,,,, -2557,[PH] 게펜마법사7@NPC_WIDESOULDRAIN,attack,680,3,3000,500,10000,no,self,always,0,,,,,,, -2557,[PH] 게펜마법사7@NPC_COMBOATTACK,attack,171,10,3000,1000,10000,yes,target,always,0,,,,,,, -2557,[PH] 게펜마법사7@NPC_INVISIBLE,attack,353,1,2000,1000,60000,yes,self,always,0,,,,,,, -2558,[PH] 게펜마법사8@LK_SPIRALPIERCE,attack,397,5,3000,1000,10000,yes,target,always,0,,,,,,, -2558,[PH] 게펜마법사8@SM_ENDURE,attack,8,10,3000,0,10000,yes,self,always,0,,,,,,, -2558,[PH] 게펜마법사8@SM_MAGNUM,attack,7,25,3000,500,5000,yes,self,always,0,,,,,,, -//2558,[PH] 게펜마법사8@NPC_MILLENNIUMSHIELD,attack,707,1,3000,1000,10000,yes,self,always,0,,,,,,, -2559,[PH] 게펜마법사9@NPC_HOLYATTACK,attack,189,10,3000,500,5000,yes,target,always,0,,,,,,, -2559,[PH] 게펜마법사9@AL_HEAL,attack,28,8,3000,0,5000,yes,self,always,0,,,,,,, -2559,[PH] 게펜마법사9@AL_PNEUMA,attack,25,1,3000,1000,10000,yes,self,always,0,,,,,,, -2560,[PH] 게펜마법사10@NPC_MENTALBREAKER,attack,159,4,2000,1500,10000,no,target,always,0,,,,,,, -2560,[PH] 게펜마법사10@AC_DOUBLE,attack,46,5,3000,500,5000,yes,target,always,0,,,,,,, -2560,[PH] 게펜마법사10@HT_ANKLESNARE,attack,117,1,2000,1000,10000,yes,around2,always,0,,,,,,, -2560,[PH] 게펜마법사10@HT_FLASHER,attack,120,1,2000,1000,10000,yes,around2,always,0,,,,,,, -2561,[PH] 게펜마법사11@MG_FIREBOLT,attack,19,5,1000,500,15000,yes,target,always,0,,,,,,, -2561,[PH] 게펜마법사11@MG_COLDBOLT,attack,14,5,1000,500,15000,yes,target,always,0,,,,,,, -2561,[PH] 게펜마법사11@MG_LIGHTNINGBOLT,attack,20,5,1000,500,10000,yes,target,always,0,,,,,,, -2561,[PH] 게펜마법사11@WZ_EARTHSPIKE,attack,90,5,1000,500,15000,yes,target,always,0,,,,,,, -2561,[PH] 게펜마법사11@PF_SPIDERWEB,attack,405,1,1000,1000,15000,yes,target,always,0,,,,,,, -2561,[PH] 게펜마법사11@RG_STRIPSHIELD,attack,216,5,3000,1000,30000,yes,target,always,0,,,,,,, -2562,[PH] 게펜마법사12@NPC_SLOWCAST,attack,672,5,1000,1000,15000,yes,self,always,0,,,,,,, -2562,[PH] 게펜마법사12@MG_SOULSTRIKE,attack,13,10,1000,500,10000,yes,target,always,0,,,,,,, -2562,[PH] 게펜마법사12@WZ_FIREPILLAR,attack,80,5,3000,500,5000,yes,around2,always,0,,,,,,, -2562,[PH] 게펜마법사12@WZ_VERMILION,attack,85,5,1000,2000,15000,yes,target,always,0,,,,,,, +2549,Arhi@MG_FIREBOLT,attack,19,5,3000,1000,3000,yes,target,always,0,,,,,,, +2549,Arhi@MG_FIREWALL,attack,18,1,3000,2000,3000,yes,target,always,0,,,,,,, +2550,Dio Anemos@MG_FROSTDIVER,attack,15,5,3000,1000,3000,yes,target,always,0,,,,,,, +2550,Dio Anemos@MG_THUNDERSTORM,attack,21,3,3000,2000,3000,yes,target,always,0,,,,,,, +2551,Geffen Shoplifter@NPC_COMBOATTACK,attack,171,2,5000,0,3000,yes,target,always,0,,,,,,, +2551,Geffen Shoplifter@MG_STONECURSE,attack,16,5,5000,1000,5000,yes,target,always,0,,,,,,, +2551,Geffen Shoplifter@TF_POISON,attack,52,3,3000,0,5000,yes,target,always,0,,,,,,, +2552,Geffen Bully@BS_HAMMERFALL,attack,110,5,5000,1000,10000,yes,target,always,0,,,,,,, +2552,Geffen Bully@NPC_POWERUP,attack,349,5,5000,1000,25000,yes,self,always,0,,,,,,, +2553,Geffen Gang Member@ASC_BREAKER,attack,379,1,3000,1000,5000,yes,target,always,0,,,,,,, +2553,Geffen Gang Member@AS_VENOMDUST,attack,140,10,3000,1000,5000,yes,target,always,0,,,,,,, +2554,Faymont@AL_INCAGI,idle,29,10,10000,1000,10000,yes,self,always,0,,,,,,, +2554,Faymont@AL_INCAGI,attack,29,10,3000,1000,10000,yes,self,always,0,,,,,,, +2554,Faymont@AL_DECAGI,attack,30,48,3000,1000,10000,yes,target,always,0,,,,,,, +2554,Faymont@NPC_COMBOATTACK,attack,171,3,5000,0,3000,yes,target,always,0,,,,,,, +2555,Ordre@MG_COLDBOLT,attack,14,5,3000,1000,5000,yes,target,always,0,,,,,,, +2555,Ordre@WZ_STORMGUST,attack,89,1,3000,3000,10000,yes,target,always,0,,,,,,, +2555,Ordre@WZ_FROSTNOVA,attack,88,5,3000,1000,5000,yes,self,always,0,,,,,,, +2556,Blut Hase@CR_AUTOGUARD,attack,249,5,3000,500,5000,yes,self,always,0,,,,,,, +2556,Blut Hase@CR_GRANDCROSS,attack,254,5,3000,1000,10000,yes,self,always,0,,,,,,, +2557,Kuro Akuma@NPC_BLEEDING,attack,660,5,5000,0,10000,yes,target,always,0,,,,,,, +2557,Kuro Akuma@NPC_WIDESOULDRAIN,attack,680,3,3000,500,10000,no,self,always,0,,,,,,, +2557,Kuro Akuma@NPC_COMBOATTACK,attack,171,10,3000,1000,10000,yes,target,always,0,,,,,,, +2557,Kuro Akuma@NPC_INVISIBLE,attack,353,1,2000,1000,60000,yes,self,always,0,,,,,,, +2558,Ifodes@LK_SPIRALPIERCE,attack,397,5,3000,1000,10000,yes,target,always,0,,,,,,, +2558,Ifodes@SM_ENDURE,attack,8,10,3000,0,10000,yes,self,always,0,,,,,,, +2558,Ifodes@SM_MAGNUM,attack,7,25,3000,500,5000,yes,self,always,0,,,,,,, +//2558,Ifodes@NPC_MILLENNIUMSHIELD,attack,707,1,3000,1000,10000,yes,self,always,0,,,,,,, +2559,Licheniyes@NPC_HOLYATTACK,attack,189,10,3000,500,5000,yes,target,always,0,,,,,,, +2559,Licheniyes@AL_HEAL,attack,28,8,3000,0,5000,yes,self,always,0,,,,,,, +2559,Licheniyes@AL_PNEUMA,attack,25,1,3000,1000,10000,yes,self,always,0,,,,,,, +2560,Odoric@NPC_MENTALBREAKER,attack,159,4,2000,1500,10000,no,target,always,0,,,,,,, +2560,Odoric@AC_DOUBLE,attack,46,5,3000,500,5000,yes,target,always,0,,,,,,, +2560,Odoric@HT_ANKLESNARE,attack,117,1,2000,1000,10000,yes,around2,always,0,,,,,,, +2560,Odoric@HT_FLASHER,attack,120,1,2000,1000,10000,yes,around2,always,0,,,,,,, +2561,Ju@MG_FIREBOLT,attack,19,5,1000,500,15000,yes,target,always,0,,,,,,, +2561,Ju@MG_COLDBOLT,attack,14,5,1000,500,15000,yes,target,always,0,,,,,,, +2561,Ju@MG_LIGHTNINGBOLT,attack,20,5,1000,500,10000,yes,target,always,0,,,,,,, +2561,Ju@WZ_EARTHSPIKE,attack,90,5,1000,500,15000,yes,target,always,0,,,,,,, +2561,Ju@PF_SPIDERWEB,attack,405,1,1000,1000,15000,yes,target,always,0,,,,,,, +2561,Ju@RG_STRIPSHIELD,attack,216,5,3000,1000,30000,yes,target,always,0,,,,,,, +2562,Dwigh@NPC_SLOWCAST,attack,672,5,1000,1000,15000,yes,self,always,0,,,,,,, +2562,Dwigh@MG_SOULSTRIKE,attack,13,10,1000,500,10000,yes,target,always,0,,,,,,, +2562,Dwigh@WZ_FIREPILLAR,attack,80,5,3000,500,5000,yes,around2,always,0,,,,,,, +2562,Dwigh@WZ_VERMILION,attack,85,5,1000,2000,15000,yes,target,always,0,,,,,,, 2563,Fei Kanabian@AM_DEMONSTRATION,attack,229,5,2000,500,15000,yes,target,always,0,,,,,,, 2563,Fei Kanabian@AM_ACIDTERROR,attack,230,5,2000,1000,15000,yes,target,always,0,,,,,,, 2563,Fei Kanabian@AM_POTIONPITCHER,attack,231,4,3000,1000,10000,yes,self,always,0,,,,,,, diff --git a/db/re/pet_db.yml b/db/re/pet_db.yml index bfffc44ce27..309c82ca547 100644 --- a/db/re/pet_db.yml +++ b/db/re/pet_db.yml @@ -66,7 +66,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bLuk,3; + bonus bCritical,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bLuk,2; bonus bCritical,1; } @@ -89,7 +92,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bHit,5; + bonus bAtk,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHit,3; bonus bAtk,3; } @@ -125,7 +131,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bLuk,3; + bonus2 bSubEle,Ele_Poison,15; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bLuk,2; bonus2 bSubEle,Ele_Poison,10; } @@ -141,7 +150,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bCritical,3; + bonus bAtk,3; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,2; bonus bAtk,2; } @@ -168,7 +180,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bStr,2; + bonus bAtk,8; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bStr,1; bonus bAtk,5; } @@ -183,7 +198,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAgi,2; + bonus bFlee,3; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAgi,1; bonus bFlee,2; } @@ -198,9 +216,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bFlee,9; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bFlee,6; - bonus bAgi,-1; } - Mob: HUNTER_FLY TameItem: Monster_Juice @@ -213,8 +232,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus bFlee,-5; + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bFlee2,2; + bonus bHit,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bFlee2,2; } - Mob: SAVAGE_BABE @@ -229,7 +250,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bVit,2; + bonus bMaxHP,75; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bVit,1; bonus bMaxHP,50; } @@ -256,7 +280,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bInt,2; + bonus bMaxSP,75; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bInt,1; bonus bMaxSP,50; } @@ -272,7 +299,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bHPrecovRate,6; + bonus bMaxHP,38; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHPrecovRate,5; bonus bMaxHP,25; } @@ -299,9 +329,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bHit,8; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHit,5; - bonus bAtk,-2; } - Mob: POISON_SPORE TameItem: Deadly_Noxious_Herb @@ -315,7 +346,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bStr,2; + bonus bInt,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bStr,1; bonus bInt,1; } @@ -330,9 +364,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxHP,200; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHP,150; - bonus bMaxSP,-10; } Evolution: - Target: GRAND_PECO @@ -358,7 +393,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAgi,2; + bonus bFlee2,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAgi,1; bonus bFlee2,1; } @@ -373,9 +411,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bCritical,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,3; - bonus bLuk,-1; } Evolution: - Target: CHOCO @@ -399,9 +438,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAtk,15; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAtk,10; - bonus bDef,-3; } Evolution: - Target: HIGH_ORC @@ -428,7 +468,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bInt,2; + bonus bDef,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bInt,1; bonus bDef,1; } @@ -444,9 +487,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMatkRate,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMatkRate,1; - bonus bAtkRate,-1; } Evolution: - Target: AM_MUT @@ -471,7 +515,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bStr,2; + bonus bDex,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bStr,1; bonus bDex,1; } @@ -487,8 +534,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus bMatkRate,-1; + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAtkRate,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAtkRate,1; } Evolution: @@ -514,9 +562,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus bDef,-2; - bonus bMdef,-2; + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAgi,1; + bonus bAspdRate,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAspdRate,1; } Evolution: @@ -542,11 +591,14 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxHPrate,1; + bonus bMaxSPrate,1; + bonus bMatkRate,1; + bonus bAtkRate,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMatkRate,1; bonus bAtkRate,1; - bonus bMaxHPrate,-3; - bonus bMaxSPrate,-3; } Evolution: - Target: DIABOLIC2 @@ -571,10 +623,14 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bDef,2; + bonus bMdef,2; + bonus2 bResEff,Eff_Stun,200; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bDef,1; bonus bMdef,1; - bonus2 bResEff,Eff_Stun,-100; + bonus2 bResEff,Eff_Stun,100; } - Mob: BON_GUN TameItem: Heart_Of_Her @@ -587,7 +643,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bVit,2; + bonus2 bResEff,Eff_Stun,200; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bVit,1; bonus2 bResEff,Eff_Stun,100; } @@ -613,7 +672,12 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bAddRace,RC_Demihuman,3; + bonus2 bMagicAddRace,RC_DemiHuman,3; + bonus2 bAddRace,RC_Player,3; + bonus2 bMagicAddRace,RC_Player,3; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bAddRace,RC_Demihuman,2; bonus2 bMagicAddRace,RC_DemiHuman,2; bonus2 bAddRace,RC_Player,2; @@ -630,11 +694,26 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMdef,2; + bonus2 bSubRace,RC_DemiHuman,2; + bonus2 bSubRace,RC_Player,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; } + Evolution: + - Target: ALIZA + ItemRequirements: + - Item: Alice's_Apron + Amount: 500 + - Item: Green_Herb + Amount: 200 + - Item: Elunium + Amount: 30 + - Item: Alice_Card + Amount: 1 - Mob: EVENT_RICECAKE EggItem: Rice_Cake_Egg FoodItem: Green_Herb @@ -644,9 +723,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bSubEle,Ele_Neutral,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bSubEle,Ele_Neutral,1; - bonus bMaxHPrate,-1; } - Mob: GOBLINE_XMAS TameItem: Sweet_Candy_Striper @@ -659,7 +739,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxHP,45; + bonus2 bSubEle,Ele_Water,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHP,30; bonus2 bSubEle,Ele_Water,1; } @@ -674,7 +757,11 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bDef,2; + bonus2 bSubRace,RC_DemiHuman,2; + bonus2 bSubRace,RC_Player,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; @@ -737,10 +824,22 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAgi,4; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAgi,3; - bonus bDex,1; } +# Evolution: +# - Target: WANDER_MAN_H +# ItemRequirements: +# - Item: Skull +# Amount: 500 +# - Item: Sacred_Marks +# Amount: 50 +# - Item: Transparent_Cloth +# Amount: 100 +# - Item: Wander_Man_Card +# Amount: 1 - Mob: P_CHUNG_E EggItem: New_Year_Doll_Egg FoodItem: Mojji @@ -760,9 +859,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxHP,150; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHP,100; - bonus bFlee,-5; } - Mob: MARIONETTE TameItem: Delicious_Shaved_Ice @@ -776,8 +876,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus bSPrecovRate,3; + if (.@i >= PET_INTIMATE_LOYAL) { + autobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,5000,BF_SHORT|BF_NORMAL; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + autobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,3000,BF_SHORT|BF_NORMAL; } - Mob: MEDUSA TameItem: Splendid_Mirror @@ -791,7 +893,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bVit,2; + bonus2 bResEff,Eff_Stone,800; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bVit,1; bonus2 bResEff,Eff_Stone,500; } @@ -807,9 +912,12 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bFlee,10; + skill "TF_HIDING",1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bFlee,7; - bonus bDef,-3; + skill "TF_HIDING",1; } - Mob: GOBLIN_LEADER TameItem: Staff_Of_Leader @@ -823,7 +931,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bAddRace,RC_DemiHuman,5; + bonus2 bAddRace,RC_Player,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3; } @@ -839,9 +950,11 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus2 bHPDrainRate,30,5; bonus bMaxHPrate,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus2 bHPDrainRate,30,5; } - Mob: INCUBUS TameItem: Gril's_Naivety @@ -855,9 +968,12 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxSPRate,5; bonus2 bSPDrainRate,30,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bMaxSPRate,3; + bonus2 bSPDrainRate,30,1; } - Mob: NIGHTMARE_TERROR TameItem: Hell_Contract @@ -871,9 +987,23 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bResEff,Eff_Sleep,10000; + bonus bInt,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bResEff,Eff_Sleep,10000; } +# Evolution: +# - Target: NIGHTMARE_TERROR_H +# ItemRequirements: +# - Item: Burning_Horse_Shoe +# Amount: 500 +# - Item: Blue_Herb +# Amount: 100 +# - Item: Shell +# Amount: 100 +# - Item: Nightmare_Card +# Amount: 1 - Mob: SHINOBI TameItem: Kuloren EggItem: Shinobi_Egg @@ -886,7 +1016,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAgi,3; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAgi,2; } - Mob: MIYABI_NINGYO @@ -901,7 +1033,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bInt,2; + bonus bCastrate,-5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bInt,1; bonus bCastrate,-3; } @@ -917,7 +1052,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxSP,45; + bonus bSPrecovRate,8; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxSP,30; bonus bSPrecovRate,5; } @@ -933,7 +1071,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bSubEle,Ele_Fire,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bSubEle,Ele_Fire,3; } - Mob: DULLAHAN @@ -948,7 +1088,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bCritAtkRate,8; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritAtkRate,5; } - Mob: LOLI_RURI @@ -963,7 +1105,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxHPRate,5; + bonus3 bAutoSpellWhenHit,"AL_HEAL",2,10; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHPRate,3; bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10; } @@ -979,7 +1124,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMaxSP,15; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxSP,10; } - Mob: LEAF_CAT @@ -994,18 +1141,35 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bSubRace,RC_Brute,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bSubRace,RC_Brute,3; } - - Mob: BACSOJIN_ - TameItem: Shiny_Wing_Gown - EggItem: Bacsojin_Egg - EquipItem: Round_Hair_Ornament - FoodItem: Traditional_Cookie - Fullness: 7 - IntimacyFed: 10 - CaptureRate: 2000 - SpecialPerformance: false +# - Mob: BACSOJIN2 +# TameItem: Shiny_Wing_Gown +# EggItem: Bacsojin_Egg +# EquipItem: Round_Hair_Ornament +# FoodItem: Traditional_Cookie +# Fullness: 7 +# IntimacyFed: 10 +# CaptureRate: 2000 +# SpecialPerformance: false +# Script: > +# .@i = getpetinfo(PETINFO_INTIMATE); +# +# if (.@i >= PET_INTIMATE_LOYAL) { +# bonus bMaxSPRate,5; +# bonus bDelayrate,-3; +# } else if (.@i >= PET_INTIMATE_CORDIAL) { +# bonus bMaxSPRate,4; +# bonus bDelayrate,-2; +# } else if (.@i >= PET_INTIMATE_NEUTRAL) { +# bonus bMaxSPRate,3; +# bonus bDelayrate,-1; +# } else { +# bonus bMaxSPRate,2; +# } - Mob: IMP TameItem: Flaming_Ice EggItem: Imp_Egg @@ -1018,9 +1182,12 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus2 bSubEle,Ele_Fire,2; + if (.@i >= PET_INTIMATE_LOYAL) { + bonus2 bSubEle,Ele_Fire,3; bonus2 bAddEle,Ele_Fire,2; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus2 bSubEle,Ele_Fire,2; + bonus2 bAddEle,Ele_Fire,1; } - Mob: E_CRAMP TameItem: Leaf_Cat_Ball @@ -1059,8 +1226,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus2 bExpAddRace,RC_All,5; + if (.@i >= PET_INTIMATE_CORDIAL) { + /* bonus2 bExpAddRace,RC_All,5; */ + bonus bMatkRate,2; } - Mob: TIKBALANG TameItem: Tikbalang_Belt @@ -1072,7 +1240,7 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus2 bAddDamageClass,2317,10; bonus2 bAddDamageClass,2318,10; bonus2 bAddDamageClass,2319,10; @@ -1082,6 +1250,18 @@ Body: bonus2 bAddDamageClass,2327,10; bonus2 bAddDamageClass,2332,10; bonus2 bAddDamageClass,2333,10; + bonus bMdef,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus2 bAddDamageClass,2317,10; + bonus2 bAddDamageClass,2318,10; + bonus2 bAddDamageClass,2319,10; + bonus2 bAddDamageClass,2320,10; + bonus2 bAddDamageClass,2321,10; + bonus2 bAddDamageClass,2322,10; + bonus2 bAddDamageClass,2327,10; + bonus2 bAddDamageClass,2332,10; + bonus2 bAddDamageClass,2333,10; + bonus bMdef,3; } - Mob: MARIN TameItem: Juicy_Fruit @@ -1104,7 +1284,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bHPrecovRate,75; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHPrecovRate,50; } - Mob: NINE_TAIL @@ -1117,10 +1299,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bCritical,3; bonus bHit,2; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,2; bonus bHit,2; } @@ -1145,10 +1327,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus Dex,2; bonus bHit,1; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bDex,1; bonus bHit,1; } @@ -1173,9 +1355,9 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bHit,5; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHit,4; } Evolution: @@ -1199,8 +1381,10 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_CORDIAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxSP,150; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bMaxSP,100; } Evolution: - Target: XM_TEDDY_BEAR @@ -1213,8 +1397,28 @@ Body: Amount: 50 - Item: Teddy_Bear_Card Amount: 1 + - Target: ALIOT + ItemRequirements: + - Item: Screw + Amount: 500 + - Item: Honey + Amount: 100 + - Item: White_Jewel + Amount: 10 + - Item: Teddy_Bear_Card + Amount: 1 + - Target: ALICEL + ItemRequirements: + - Item: Screw + Amount: 500 + - Item: Honey + Amount: 100 + - Item: Bloody_Page + Amount: 50 + - Item: Teddy_Bear_Card + Amount: 1 - # Pet Evolution, most are dummy values + # Pet Evolution - Mob: MASTERING EggItem: Mastering_Egg FoodItem: Pet_Food @@ -1227,16 +1431,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bLuk,3; bonus bCritical,3; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bLuk,3; bonus bCritical,2; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bLuk,3; bonus bCritical,1; - }else{ + } else { bonus bLuk,2; bonus bCritical,1; } @@ -1263,20 +1467,20 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bHPrecovRate,20; bonus bMaxHP,70; bonus2 bAddRace,RC_Plant,6; bonus2 bMagicAddRace,RC_Plant,6; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHPrecovRate,15; bonus bMaxHP,55; bonus2 bAddRace,RC_Plant,3; bonus2 bMagicAddRace,RC_Plant,3; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bHPrecovRate,10; bonus bMaxHP,38; - }else{ + } else { bonus bHPrecovRate,5; bonus bMaxHP,25; } @@ -1292,16 +1496,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxHPrate,2; bonus bHealPower,8; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHPrate,2; bonus bHealPower,6; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bMaxHPrate,1; bonus bHealPower,4; - }else{ + } else { bonus bMaxHPrate,1; bonus bHealPower,2; } @@ -1317,19 +1521,19 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bCritical,6; bonus bHit,6; - autobonus "{ bonus bHPRegenRate,500,1000; bonus bSPRegenRate,20,1000; }",30,5000,BF_WEAPON|BF_SHORT; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + autobonus "{ bonus2 bHPRegenRate,500,1000; bonus2 bSPRegenRate,20,1000; }",30,5000,BF_WEAPON|BF_SHORT; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,5; bonus bHit,5; - autobonus "{ bonus bHPRegenRate,400,1000; bonus bSPRegenRate,10,1000; }",30,5000,BF_WEAPON|BF_SHORT; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + autobonus "{ bonus2 bHPRegenRate,400,1000; bonus2 bSPRegenRate,10,1000; }",30,5000,BF_WEAPON|BF_SHORT; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bCritical,4; bonus bHit,4; - autobonus "{ bonus bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT; - }else{ + autobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT; + } else { bonus bCritical,3; bonus bHit,3; } @@ -1345,16 +1549,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxHP,200; bonus bVit,2; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHP,100; bonus bVit,2; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bMaxHP,50; bonus bVit,2; - }else{ + } else { bonus bMaxHP,50; bonus bVit,1; } @@ -1370,19 +1574,27 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ - bonus bMaxHP,200; - bonus bVit,2; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ - bonus bMaxHP,100; - bonus bVit,2; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ - bonus bMaxHP,50; - bonus bVit,2; - }else{ - bonus bMaxHP,50; - bonus bVit,1; + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAtk,25; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bAtk,20; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { + bonus bAtk,15; + } else { + bonus bAtk,10; + bonus bDef,-3; } +# Evolution: +# - Target: ORK_HERO2 +# ItemRequirements: +# - Item: Powerful_Soul_Essence +# Amount: 30 +# - Item: Orc_Warrior_Card +# Amount: 10 +# - Item: Orc_Baby_Card +# Amount: 10 +# - Item: Voucher_Of_Orcish_Hero +# Amount: 10 - Mob: CHOCO EggItem: Choco_Egg FoodItem: Pet_Food @@ -1395,16 +1607,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bCritical,9; bonus bLongAtkRate,3; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,7; bonus bLongAtkRate,2; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bCritical,5; bonus bLongAtkRate,1; - }else{ + } else { bonus bCritical,3; } - Mob: ANCIENT_MUMMY @@ -1419,17 +1631,17 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bHit,6; - bonus2 bAddClass,Class_All,6; - bonus2 bMagicAddClass,Class_All,6; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + bonus2 bAddClass,Class_Dragon,6; + bonus2 bMagicAddClass,Class_Dragon,6; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHit,6; - bonus2 bAddClass,Class_All,3; - bonus2 bMagicAddClass,Class_All,3; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + bonus2 bAddClass,Class_Dragon,3; + bonus2 bMagicAddClass,Class_Dragon,3; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bHit,5; - }else{ + } else { bonus bHit,4; } - Mob: AM_MUT @@ -1444,13 +1656,13 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMatkRate,4; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMatkRate,3; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bMatkRate,2; - }else{ + } else { bonus bMatkRate,1; } - Mob: CAT_O_NINE_TAIL @@ -1465,18 +1677,18 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bCritical,5; bonus bHit,5; - autobonus "{ bonus bHPRegenRate,400,1000; }",20,5000,BF_WEAPON|BF_SHORT; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + autobonus "{ bonus2 bHPRegenRate,400,1000; }",20,5000,BF_WEAPON|BF_SHORT; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,4; bonus bHit,4; - autobonus "{ bonus bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + autobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bCritical,3; bonus bHit,3; - }else{ + } else { bonus bCritical,2; bonus bHit,2; } @@ -1503,14 +1715,15 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxHP,400; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxHP,300; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bMaxHP,200; - }else{ + } else { bonus bMaxHP,150; + bonus bMaxSP,-10; } - Mob: HYEGUN EggItem: Hyegun_Egg @@ -1524,18 +1737,18 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bVit,4; bonus2 bResEff,Eff_Stun,400; - bonus2 bSPDrainRate,20,1; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + bonus2 bSPDrainRate,10,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bVit,3; bonus2 bResEff,Eff_Stun,300; bonus2 bSPDrainRate,10,1; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bVit,2; bonus2 bResEff,Eff_Stun,200; - }else{ + } else { bonus bVit,1; bonus2 bResEff,Eff_Stun,100; } @@ -1551,18 +1764,18 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bDex,2; bonus bHit,2; bonus bCritAtkRate,9; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bDex,2; bonus bHit,2; bonus bCritAtkRate,7; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bDex,2; bonus bHit,1; - }else{ + } else { bonus bDex,1; bonus bHit,1; } @@ -1578,15 +1791,15 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bMaxSP,150; - autobonus "{ bonus bSPRegenRate,40,1000; }",30,5000,BF_MAGIC; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + autobonus "{ bonus2 bSPRegenRate,40,1000; }",30,5000,BF_MAGIC; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bMaxSP,150; - autobonus "{ bonus bSPRegenRate,30,1000; }",30,5000,BF_MAGIC; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + autobonus "{ bonus2 bSPRegenRate,30,1000; }",30,5000,BF_MAGIC; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bMaxSP,100; - }else{ + } else { bonus bMaxSP,50; } - Mob: DR_EGGRING @@ -1601,16 +1814,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bHit,9; bonus bAtk,9; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bHit,7; bonus bAtk,7; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bHit,5; bonus bAtk,5; - }else{ + } else { bonus bHit,3; bonus bAtk,3; } @@ -1626,20 +1839,20 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bCritical,5; bonus bAtk,5; bonus2 bAddRace,RC_Formless,6; bonus2 bMagicAddRace,RC_Formless,6; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bCritical,4; bonus bAtk,4; bonus2 bAddRace,RC_Formless,3; bonus2 bMagicAddRace,RC_Formless,3; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bCritical,3; bonus bAtk,3; - }else{ + } else { bonus bCritical,2; bonus bAtk,2; } @@ -1655,13 +1868,13 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bAtkRate,4; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAtkRate,3; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bAtkRate,2; - }else{ + } else { bonus bAtkRate,1; } - Mob: DIABOLIC2 @@ -1676,18 +1889,24 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_CORDIAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAtkRate,2; + bonus bMatkRate,2; + bonus bMaxHPrate,2; + bonus bMaxSPrate,2; + bonus5 bAutoSpell,"MG_FIREBOLT",3,50,BF_WEAPON|BF_SHORT,1; + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAtkRate,2; bonus bMatkRate,2; bonus bMaxHPrate,1; bonus bMaxSPrate,1; bonus5 bAutoSpell,"MG_FIREBOLT",3,50,BF_WEAPON|BF_SHORT,1; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ + } else if (.@i >= PET_INTIMATE_NEUTRAL) { bonus bAtkRate,1; bonus bMatkRate,1; bonus bMaxHPrate,1; bonus bMaxSPrate,1; - }else{ + } else { bonus bAtkRate,1; bonus bMatkRate,1; } @@ -1703,16 +1922,16 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_LOYAL ){ + if (.@i >= PET_INTIMATE_LOYAL) { bonus bAspdRate,3; bonus bAgi,3; - }else if( .@i >= PET_INTIMATE_CORDIAL ){ + } else if (.@i >= PET_INTIMATE_CORDIAL) { bonus bAspdRate,2; bonus bAgi,2; - }else if( .@i >= PET_INTIMATE_NEUTRAL ){ - bonus bAspdRate,2; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { + bonus bAspdRate,1; bonus bAgi,1; - }else{ + } else { bonus bAspdRate,1; } - Mob: SWEETS_DROPS @@ -1727,7 +1946,151 @@ Body: Script: > .@i = getpetinfo(PETINFO_INTIMATE); - if( .@i >= PET_INTIMATE_CORDIAL ){ - /* bonus2 bExpAddClass,Class_All,3; */ + if (.@i >= PET_INTIMATE_CORDIAL) { bonus2 bExpAddClass,Class_All,1; } +# - Mob: NIGHTMARE_TERROR_H +# EggItem: Rigid_Nightmare_Terror_Egg +# FoodItem: Pet_Food +# Fullness: 2 +# HungryDelay: 120 +# IntimacyFed: 15 +# CaptureRate: 0 +# SpecialPerformance: false +# AllowAutoFeed: true +# Script: > +# .@i = getpetinfo(PETINFO_INTIMATE); +# +# if (.@i >= PET_INTIMATE_LOYAL) { +# bonus bInt,4; +# bonus bMaxSPrate,3; +# bonus2 bResEff,Eff_Sleep,10000; +# } else if (.@i >= PET_INTIMATE_CORDIAL) { +# bonus bInt,3; +# bonus bMaxSPrate,1; +# bonus2 bResEff,Eff_Sleep,10000; +# } else if (.@i >= PET_INTIMATE_NEUTRAL) { +# bonus bInt,3; +# } else { +# bonus bInt,1; +# } +# - Mob: WANDER_MAN_H +# EggItem: Contaminated_Wanderer_Egg +# FoodItem: Pet_Food +# Fullness: 2 +# HungryDelay: 120 +# IntimacyFed: 15 +# CaptureRate: 0 +# SpecialPerformance: false +# AllowAutoFeed: true +# Script: > +# .@i = getpetinfo(PETINFO_INTIMATE); +# +# if (.@i >= PET_INTIMATE_LOYAL) { +# bonus bAgi,4; +# bonus bCritical,3; +# bonus bCritAtkRate,7; +# } else if (.@i >= PET_INTIMATE_CORDIAL) { +# bonus bAgi,4; +# bonus bCritical,2; +# bonus bCritAtkRate,5; +# } else if (.@i >= PET_INTIMATE_NEUTRAL) { +# bonus bAgi,4; +# bonus bCritical,1; +# } else { +# bonus bAgi,4; +# } + - Mob: ALIOT + EggItem: Aliot_Egg + FoodItem: Pet_Food + Fullness: 2 + HungryDelay: 120 + IntimacyFed: 15 + CaptureRate: 0 + SpecialPerformance: false + AllowAutoFeed: true + Script: > + .@i = getpetinfo(PETINFO_INTIMATE); + + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bAspdRate,5; + bonus bHit,12; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bAspdRate,4; + bonus bHit,9; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { + bonus bAspdRate,3; + bonus bHit,6; + } else { + bonus bAspdRate,2; + } + - Mob: ALICEL + EggItem: Alicel_Egg + FoodItem: Pet_Food + Fullness: 2 + HungryDelay: 120 + IntimacyFed: 15 + CaptureRate: 0 + SpecialPerformance: false + AllowAutoFeed: true + Script: > + .@i = getpetinfo(PETINFO_INTIMATE); + + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bCastrate,-5; + bonus2 bMagicAddEle,Ele_Neutral,5; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bCastrate,-4; + bonus2 bMagicAddEle,Ele_Neutral,3; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { + bonus bCastrate,-3; + } else { + bonus bCastrate,-2; + } + - Mob: ALIZA + EggItem: Aliza_Egg + FoodItem: Pet_Food + Fullness: 2 + HungryDelay: 120 + IntimacyFed: 15 + CaptureRate: 0 + SpecialPerformance: false + AllowAutoFeed: true + Script: > + .@i = getpetinfo(PETINFO_INTIMATE); + + if (.@i >= PET_INTIMATE_LOYAL) { + bonus bMdef,7; + bonus bHealPower,6; + } else if (.@i >= PET_INTIMATE_CORDIAL) { + bonus bMdef,6; + bonus bHealPower,4; + } else if (.@i >= PET_INTIMATE_NEUTRAL) { + bonus bMdef,5; + bonus bHealPower,2; + } else { + bonus bMdef,4; + } +# - Mob: ORK_HERO2 +# EggItem: Orc_Hero_Egg_ +# FoodItem: Traditional_Cookie +# Fullness: 2 +# HungryDelay: 120 +# IntimacyFed: 15 +# CaptureRate: 0 +# SpecialPerformance: false +# AllowAutoFeed: true +# Script: > +# .@i = getpetinfo(PETINFO_INTIMATE); +# +# if (.@i >= PET_INTIMATE_LOYAL) { +# bonus bAtkRate,7; +# bonus bCritAtkRate,3; +# } else if (.@i >= PET_INTIMATE_CORDIAL) { +# bonus bAtkRate,4; +# bonus bCritAtkRate,1; +# } else if (.@i >= PET_INTIMATE_NEUTRAL) { +# bonus bAtkRate,2; +# } else { +# bonus bAtkRate,1; +# } diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index c109223ccdf..8b745a2d3e9 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -21,7 +21,7 @@ //-- SM_PROVOKE 6,0,0,0,30000,0,0,0 //-- SM_MAGNUM -7,0,2000,0,2000,10000,0,0 +7,0,2000,0,0,10000,2000,0 //-- SM_ENDURE 8,0,0,0,10000:13000:16000:19000:22000:25000:28000:31000:34000:37000,10000,10000,0 //========================================== @@ -1824,7 +1824,7 @@ //-- SU_GROOMING 5049,1000,1000,0,3000:4000:5000:6000:7000,0,60000:50000:40000:30000:20000,0 //-- SU_PURRING -5050,1000,1000,0,3000:4000:5000:6000:7000,0,65000:60000:55000:50000:45000,-1 +5050,1000,1000,0,7000:9000:11000:13000:15000,0,65000:60000:55000:50000:45000,-1 //-- SU_SHRIMPARTY 5051,3500:3000:2500:2000:1500,1000,0,12000:14000:16000:18000:20000,0,65000:60000:55000:50000:45000,-1 //-- SU_MEOWMEOW diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index 72742754ec2..f36fe4208ce 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -16,6 +16,7 @@ // 0x20 - Skill ignores target's defense (misc type always ignores) // 0x40 - Skill ignores target's flee (magic type always ignores) // 0x80 - Skill ignores target's def cards +// 0x100 - Skill can critical // 07 splash/effect range // -1 - for screen-wide // 0 - no splash @@ -143,7 +144,7 @@ //**** // Thief -48,-1,8,0,-1,0,0,10,2,no,0,0,0,weapon,0,0x0, TF_DOUBLE,Double Attack +48,-1,8,0,-1,0x100,0,10,2,no,0,0,0,weapon,0,0x0, TF_DOUBLE,Double Attack 49,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, TF_MISS,Improve Dodge 50,1,6,1,0,1,0,10,1,no,0,0,0,weapon,0,0x0, TF_STEAL,Steal 51,1,6,4,0,1,0,10,1,no,0,0,0,none,0,0x80044, TF_HIDING,Hiding @@ -160,7 +161,7 @@ 58,-4,6,1,-1,0x2,0,10,1,no,0,0x40000,0,weapon,6,0x0, KN_SPEARSTAB,Spear Stab 59,3:5:7:9:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, KN_SPEARBOOMERANG,Spear Boomerang 60,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, KN_TWOHANDQUICKEN,Twohand Quicken -61,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, KN_AUTOCOUNTER,Counter Attack +61,0,6,4,-1,0x100,0,5,1,no,0,0,0,weapon,0,0x0, KN_AUTOCOUNTER,Counter Attack 62,-2,6,1,-1,0x2,1,10,1,no,0,0x40000,0,weapon,1,0x0, KN_BOWLINGBASH,Bowling Bash 63,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0, KN_RIDING,Peco Peco Riding 64,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, KN_CAVALIERMASTERY,Cavalier Mastery @@ -558,7 +559,7 @@ // Sniper 380,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, SN_SIGHT,Falcon Eyes 381,9,8,1,0,0xC0,0,5,1,yes,0,0,0,misc,0,0x0, SN_FALCONASSAULT,Falcon Assault -382,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike +382,9,8,1,-1,0x100,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike 383,0,6,4,0,0x3,-1,10,1,yes,0,0,0,weapon,0,0x0, SN_WINDWALK,Wind Walker //**** @@ -741,7 +742,7 @@ 508,-9,6,1,-1,0x1,0,1,1,no,0,0,0,weapon,0,0x0, GS_CRACKER,Cracker 509,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GS_SINGLEACTION,Single Action 510,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GS_SNAKEEYE,Snake Eye -511,-9,8,0,-1,0,0,10,2,no,0,0,0,weapon,0,0x0, GS_CHAINACTION,Chain Action +511,-9,8,0,-1,0x100,0,10,2,no,0,0,0,weapon,0,0x0, GS_CHAINACTION,Chain Action 512,-9,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x0, GS_TRACKING,Tracking 513,-9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GS_DISARM,Disarm 514,-9,6,1,-1,0x20,0,5,1,no,0,0,0,weapon,0,0x100, GS_PIERCINGSHOT,Piercing Shot @@ -763,7 +764,7 @@ 527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,4,0x0, NJ_TATAMIGAESHI,Improvised Defense 528,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_KASUMIKIRI,Vanishing Slash 529,7:9:11:13:15,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0x4, NJ_SHADOWJUMP,Shadow Leap -530,7:9:11:13:15,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x204, NJ_KIRIKAGE,Shadow Slash +530,7:9:11:13:15,6,1,-1,0x100,0,5,1,no,0,0,0,weapon,0,0x204, NJ_KIRIKAGE,Shadow Slash 531,0,6,4,0,0x1,0,5,1,no,0,0,0,none,7,0x0, NJ_UTSUSEMI,Cicada Skin Sheeding 532,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, NJ_BUNSINJYUTSU,Mirror Image 533,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NJ_NINPOU,Spirit of the Blade @@ -1032,7 +1033,7 @@ //**** // RA Ranger 2233,9,8,1,-1,0x2,3:3:3:3:3:4:4:4:4:5,10,-3,yes,0,0,0,weapon,0,0x80, RA_ARROWSTORM,Arrow Storm -2234,0,6,4,0,0,0,5,1,yes,0,0,0,none,0,0x0, RA_FEARBREEZE,Fear Breeze +2234,0,6,4,0,0x100,0,5,1,yes,0,0,0,none,0,0x0, RA_FEARBREEZE,Fear Breeze 2235,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_RANGERMAIN,Ranger Main 2236,9,8,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x80, RA_AIMEDBOLT,Aimed Bolt 2237,9,6,2,0,0x3,3,1,1,no,0,0x40000,0,none,0,0x2000, RA_DETONATOR,Detonator @@ -1523,7 +1524,7 @@ 8212,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800, MA_FREEZINGTRAP,Freezing_Trap 8213,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0, MA_REMOVETRAP,Remove_Trap 8214,-9,6,1,-1,0x2,0,1,1,no,0,0x1,0,weapon,6,0x80, MA_CHARGEARROW,Arrow_Repel -8215,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike +8215,9,8,1,-1,0x100,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike 8216,-2,8,1,-1,0,0,10,3,no,0,0,0,weapon,0,0x0, ML_PIERCE,Pierce 8217,-2,6,1,-1,0x1,2,10,1,no,0,0,5,weapon,2,0x20000, ML_BRANDISH,Brandish_Spear 8218,5,8,1,-1,0,0,5,5,no,0,0x40000,0,weapon,0,0x20000, ML_SPIRALPIERCE,Spiral_Pierce diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 41815bea3a1..d8f4947613e 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -389,6 +389,8 @@ HP/SP gain bonus bHPGainValue,n; Heals +n HP when killing an enemy with a melee-physical attack bonus bSPGainValue,n; Heals +n SP when killing an enemy with a melee-physical attack bonus2 bSPGainRace,r,n; Heals +n SP when killing an enemy of race r with a melee-physical attack +bonus bLongHPGainValue,n; Heals +n HP when killing an enemy with a range-physical attack +bonus bLongSPGainValue,n; Heals +n SP when killing an enemy with a range-physical attack bonus bMagicHPGainValue,n; Heals +n HP when killing an enemy with a magical attack bonus bMagicSPGainValue,n; Heals +n SP when killing an enemy with a magical attack diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 68ef25faeb2..62c1cbf51f6 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2338,6 +2338,22 @@ returned when requesting that information. --------------------------------------- +*convertpcinfo(,) +*convertpcinfo(,) +*convertpcinfo(,) + +This function will return the information for the +specified character. Whatever it returns is determined by type. + + CPC_NAME - Character's name. + CPC_CHAR - Character ID. + CPC_ACCOUNT - Account ID. + +If a character is not found (or not online) when requesting that information, +an empty string will be returned for CPC_NAME, 0 for other . + +--------------------------------------- + *strnpcinfo() This function will return the various parts of the name of the calling NPC. @@ -3610,7 +3626,7 @@ You can see the full list of available effect types you can possibly inflict in ======================== |3.- Checking commands.| ======================== -------------------------- +--------------------------------------- *playerattached() @@ -3939,7 +3955,7 @@ The renewal feature to check is determined by type. \\ --------------------------------------- -*isequipped({,{,{,}}}) +*isequipped({,{,..}}) This function will return 1 if the invoking character has all of the item IDs given equipped (if card IDs are passed, then it checks if the cards are @@ -3957,15 +3973,14 @@ in February 2005, but it will work just fine in normal NPC scripts. --------------------------------------- -*isequippedcnt({,{,{,}}}) +*isequippedcnt({,{,..}}) This function is similar to 'isequipped', but instead of 1 or 0, it will return -the number of cards in the list given that were found on the invoking character. - -If a given parameter is not a card, the function returns the amount of that -item equipped on the invoking character. +the amount of item/card equipped that were found on the invoking character from the given list. - if (isequippedcnt(4001,4005,4033,4196) == 4) mes "Finally got all four poring cards?"; +Example: + if (isequippedcnt(4001,4005,4033,4196) == 5) + mes "Finally got 5 cards from poring monsters type?"; --------------------------------------- @@ -3984,7 +3999,7 @@ not. ============================== |4.- Player-related commands.| ============================== -------------------------- +--------------------------------------- *attachrid({,force}) *detachrid; @@ -4002,7 +4017,7 @@ even if he is currently attached to another script. Since this is not always the desired behavior you can also specify false to the command and it will only return true if the player is online and was not attached to another script. -------------------------- +--------------------------------------- *addrid({,{,}}); @@ -9057,6 +9072,33 @@ mes .@name$ + " will be destroyed if no one is in the instance for " + instance_ --------------------------------------- +*instance_live_info({,}); + +Returns the specified of instance attached to the npc or, if +an instance ID is specified, of that instance. + +Valid : +ILI_NAME - Instance Name + Return the name of the instance or "" if that fails. +ILI_MODE - Instance Mode + Return IM_NONE, IM_CHAR, IM_PARTY, IM_GUILD, IM_CLAN or -1 if that fails. +ILI_OWNER - Owner ID + Return an ID according to the instance mode of the instance attached/specified or -1 if that fails. + When the instance mode is IM_NONE, ILI_OWNER will return the npc ID that created the instance, + IM_CHAR - the owner char ID + IM_PARTY - the party ID + IM_GUILD - the guild ID + IM_CLAN - the clan ID + +Examples: + // Return the instance name of the instance attached to the npc. + .@instance_name$ = instance_live_info(ILI_NAME); + + // Return the guild owner ID of the given instance ID. + .@owner = instance_live_info(ILI_OWNER, instance_id(IM_GUILD)); + +--------------------------------------- + *getvariableofinstance(,); Returns a reference to an instance variable (' prefix) of the specific instance ID. @@ -9076,13 +9118,15 @@ Examples: ========================= --------------------------------------- -*questinfo ,{,{,}}; +*questinfo {,{,""}}; -This is esentially a combination of checkquest and showevent. Use this only -in an OnInit label. For the Quest ID, specify the quest ID that you want -checked if it has been started yet. +This command should only be used in an OnInit label. +Show an emotion on top of a NPC, and optionally, a colored mark in the mini-map like "viewpoint". +When a user is doing some action, each NPC is checked for questinfo that has been set on the map. +If questinfo is present, it will check if the player fulfill the condition. +If he/she does or no condition has been set, the bubble will appear. -For Icon, use one of the following: +Available : No Icon : QTYPE_NONE ! Quest Icon : QTYPE_QUEST @@ -9099,59 +9143,46 @@ Daily Quest : QTYPE_DAILYQUEST (Only for packetver >= 20170315) Job Quest : QTYPE_JOBQUEST (Only for packetver >= 20170315) Jumping Poring : QTYPE_JUMPING_PORING (Only for packetver >= 20170315) -Map Mark Color, when used, creates a mark in the user's mini map on the position of the NPC, +, when used, creates a mark in the user's mini map on the position of the NPC, the available color values are: -0 - No Marker (default) -1 - Yellow Marker -2 - Green Marker -3 - Purple Marker +QMARK_NONE - No Marker (default) +QMARK_YELLOW - Yellow Marker +QMARK_GREEN - Green Marker +QMARK_PURPLE - Purple Marker + + can be any expression similarly to the in the 'if' command. -When a user shows up on a map, each NPC is checked for questinfo that has been set. -If questinfo is present, it will check if the quest has been started, if it has not, the bubble will appear. +List of the player's actions to trigger the questinfo condition: +- Item added to/removed from player inventory +- Base/Job level change +- Job change +- Quest given/erased/completed +- Quest objective updated (character killed a monster quest target) +- Warp -Optionally, you can also specify a Job Class if the quest bubble should only appear for a certain class. -Example +Example: izlude,100,100,4 script Test 844,{ mes "[Test]"; mes "Hello World."; close; - OnInit: - questinfo 1001, QTYPE_QUEST, 0, Job_Novice; - end; -} - ---------------------------------------- - -*setquestinfo_level ,,; - -Add level range criteria for quest info with quest id 'quest_id'. - -This command must be used after 'questinfo'. - ---------------------------------------- - -*setquestinfo_req ,,{,,,...}; - -Add 'req_quest_id' as requirement for quest info with quest id 'quest_id'. - -Value os 'state' are: - 0: Player doesn't started 'req_quest_id'. - 1: Player has 'req_quest_id' (state is either "inactive" or "active"). - 2: Player has 'req_quest_id' completed +OnInit: + // Display an icon if the player has completed the given hunting quest and his/her variable 'unknown_var' is above 0 + questinfo QTYPE_QUEST, QMARK_YELLOW, "checkquest(1001,HUNTING) == 2 && unknown_var > 0"; -This command must be used after 'questinfo'. + //.. or display an icon if the player didn't start the given quest and he/she has one red potion in inventory + questinfo QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(1001) && countitem(501) == 1"; + end; +} --------------------------------------- -*setquestinfo_job ,{,...}; - -Add job criteria for quest info with quest id 'quest_id'. -The job criteria may more than one job_id. +*questinfo_refresh {}; -This command must be used after 'questinfo'. +This command refreshes each quest bubble that has been set on the map according +to the questinfo condition for the attached/given player. --------------------------------------- @@ -9233,10 +9264,10 @@ Warg : QTYPE_WARG Warg Face : QTYPE_WARG2 (Only for packetver >= 20120410) Mark Color: -0 - No Mark -1 - Yellow Mark -2 - Green Mark -3 - Purple Mark +QMARK_NONE - No Marker (default) +QMARK_YELLOW - Yellow Marker +QMARK_GREEN - Green Marker +QMARK_PURPLE - Purple Marker --------------------------------------- @@ -10320,7 +10351,7 @@ Returns true on success and false on failure. *achievementexists({,}); This function will return if the achievement exists on the player or the supplied -. + and is completed. Returns true on success and false on failure. --------------------------------------- diff --git a/npc/cities/aldebaran.txt b/npc/cities/aldebaran.txt index 85230d1fc84..9777899ba5b 100644 --- a/npc/cities/aldebaran.txt +++ b/npc/cities/aldebaran.txt @@ -1492,17 +1492,17 @@ alde_dun03,264,16,4 script Gatekeeper#ct1 101,{ } function script F_ClockTowerGate { - .@floor = getarg(0); + .@floor$ = getarg(0); .@item_req = getarg(1); mes "[Gatekeeper Boy]"; mes "Welcome to"; mes "Kinase - Blue Gallino"; mes "The one of Local Speciality in Aldebaran."; - mes "You can't go through from "+ .@floor +" Floor,"; + mes "You can't go through from "+ .@floor$ +" Floor,"; mes "Please go back."; next; - switch(select("About Clock Tower:About the "+ .@floor +" Floor:Move to the "+ .@floor +" Floor:End Dialogue")) { + switch(select("About Clock Tower:About the "+ .@floor$ +" Floor:Move to the "+ .@floor$ +" Floor:End Dialogue")) { case 1: mes "[Gatekeeper Boy]"; mes "Homeland of Alchemy,Aldebaran!"; diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index d67d69682a0..d29582eb054 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -418,10 +418,6 @@ function Get_Job_Equip { getitem 1960,1; break; // Whip [1] case Job_Super_Novice: getitem 1208,1; break; // Main Gauche [4] - case Job_Gunslinger: - getitem 13101,1; break; // Six Shooter [2] - case Job_Ninja: - getitem 13010,1; break; // Asura [2] case Job_Star_Gladiator: getitem 1550,1; break; // Book [3] case Job_Soul_Linker: @@ -444,6 +440,10 @@ function Get_Job_Equip { getitem 1302,1; break; // Axe [4] case Job_Thief: getitem 1208,1; break; // Main Gauche [4] + case Job_Gunslinger: + getitem 13101,1; break; // Six Shooter [2] + case Job_Ninja: + getitem 13010,1; break; // Asura [2] } } return; diff --git a/npc/custom/official/GeffenMagicTournament.txt b/npc/custom/official/GeffenMagicTournament.txt index 4d06a023920..40e02dbea59 100644 --- a/npc/custom/official/GeffenMagicTournament.txt +++ b/npc/custom/official/GeffenMagicTournament.txt @@ -711,7 +711,7 @@ dali,98,141,3 script Emmitt White 4_M_KHKYEL,{ erasequest .@i; } } - + if (checkquest(9315) != -1) changequest 9315,9316; } @@ -730,7 +730,7 @@ dali,98,141,3 script Emmitt White 4_M_KHKYEL,{ erasequest .@i; } } - + if (checkquest(9315) != -1) changequest 9315,9316; } @@ -1380,7 +1380,8 @@ OnTouch_: cutin "acamaster_a.bmp", 255; hideonnpc "Geffen Academy Master"; 'GMT_1QUE = 11; - changequest 9294,9295; + if (checkquest(9294) != -1) + changequest 9294,9295; donpcevent instance_npcname("Geffen Academy Master")+"::OnStart"; 'charname$ = strcharinfo(0); 'sex = Sex; @@ -1539,7 +1540,8 @@ end; OnStart: if ( 'GMT_1QUE != 11 ){ attachrid('gmt_account_id); - changequest 9283 + 'GMT_1QUE, 9284 +'GMT_1QUE; + if (checkquest(9283 + 'GMT_1QUE) != -1) + changequest 9283 + 'GMT_1QUE, 9284 +'GMT_1QUE; detachrid; } @@ -2529,7 +2531,7 @@ OnVictory: sleep 3000; npctalk "Yahoo!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2586,7 +2588,7 @@ OnVictory: sleep 3000; npctalk "Time to get ready for my next match."; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2641,7 +2643,7 @@ OnVictory: sleep 3000; npctalk "Hu hu hu hu hu..."; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2693,7 +2695,7 @@ OnVictory: sleep 3000; npctalk "Never show your face in Geffen again!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2748,7 +2750,7 @@ OnVictory: sleep 3000; npctalk "You should go home~ Bye~!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2805,7 +2807,7 @@ OnVictory: sleep 3000; npctalk "No matter, I'll just prepare for the next match."; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2864,7 +2866,7 @@ OnVictory: sleep 3000; npctalk "I'm ready for the next match!!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2924,7 +2926,7 @@ OnVictory: sleep 3000; npctalk "Ha ha ha ha ha~!!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -2978,7 +2980,7 @@ OnVictory: sleep 3000; npctalk "Now, I shall prepare for my next match~!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3031,7 +3033,7 @@ OnVictory: sleep 3000; npctalk "Wahahaha~!!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3087,7 +3089,7 @@ OnVictory: sleep 3000; npctalk "I'm so giddy to find out who I'm up against next!~"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3144,7 +3146,7 @@ OnVictory: sleep 3000; npctalk "I need to get ready for my next match now~"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3200,7 +3202,7 @@ OnVictory: sleep 3000; npctalk "The real game is battle!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3268,7 +3270,7 @@ OnVictory: sleep 3000; npctalk "I have just one more match to win!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3335,7 +3337,7 @@ OnVictory: sleep 3000; npctalk "I will defeat her and win this tournament!"; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } @@ -3417,7 +3419,8 @@ OnTalk2: npctalk "However, next time, I won't lose!"; sleep2 2000; cutin "", 255; - changequest 9307,9308; + if (checkquest(9307) != -1) + changequest 9307,9308; warp instance_mapname("1@ge_st"), 109,50; donpcevent instance_npcname("#win")+"::OnEnable"; movenpc instance_npcname("#gefmagic_warp02"),120,213; @@ -3434,7 +3437,7 @@ OnVictory: sleep 3000; npctalk "I have to go... My friends are waiting for me."; sleep 5000; - instance_warpall instance_mapname("1@gef"),120,61; + instance_warpall instance_mapname("1@gef"),120,61, instance_id(); end; } diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt index 65e61b8c48a..33c86fcce1c 100644 --- a/npc/custom/quests/questboard.txt +++ b/npc/custom/quests/questboard.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= tr0n //===== Current Version: ===================================== -//= 1.6.5 +//= 1.6.6 //===== Description: ========================================= //= Easily add collection and hunting quests. //===== Changelogs: ========================================== @@ -16,6 +16,7 @@ // 1.5.4 Added repeatable Quests // 1.6.4 Added party support // 1.6.5 Bug fixes for party support +// 1.6.6 Bug fixes for delay time does not appear [mazvi] //============================================================ prontera,129,215,5 script Questboard 4_BOARD3,{ @@ -91,9 +92,8 @@ prontera,129,215,5 script Questboard 4_BOARD3,{ set .@selection,select(.@collectmenu$); if(.quest_repeat == true){ if(gettimetick(2) < getd(.@selection + "_collection_delay")){ - set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2); mes "[^FF7700Questboard^000000]"; - mes "You have to wait ^0000FF"+Time2Str(.@time_left)+"^000000 to do this quest again."; + mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_collection_delay"))+"^000000 to do this quest again."; close; } } @@ -145,9 +145,8 @@ prontera,129,215,5 script Questboard 4_BOARD3,{ set .@selection,select(.@huntmenu$); if(.quest_repeat == true){ if(gettimetick(2) < getd(.@selection + "_hunting_delay")){ - set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2); mes "[^FF7700Questboard^000000]"; - mes "You have to wait ^0000FF"+Time2Str(.@time_left)+"^000000 to do this quest again."; + mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_hunting_delay"))+"^000000 to do this quest again."; close; } } diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt index 65d1966c5a2..55be8a11daf 100644 --- a/npc/custom/woe_controller.txt +++ b/npc/custom/woe_controller.txt @@ -53,7 +53,7 @@ OnInit: // [1] Enable rewards. // [2] Mail all rewards. // - If not set, players receive items in their inventory. -// - Only ONE item can be sent via mail, plus Zeny. +// - Only ONE item can be sent via mail for PACKETVER < 20150513 while later clients are limited to MAIL_MAX_ITEM (5). // - Note that offline players do NOT receive rewards. // [4] Only reward Guild Masters. // - If not set, all guild members are rewarded. @@ -67,9 +67,13 @@ OnInit: set .Options, 1|8; // Rewards per castle. - // -- when given directly: ,{,,,...} - // -- via mail (option 2): ,, - setarray .Reward[0],14001,1; + // setarray .reward_id[0], {,,...} + // setarray .reward_amount[0], {,,...} + setarray .reward_id[0],14001; + setarray .reward_amount[0],1; + + // Zeny reward: + .reward_zeny = 0; // ----------------------------------------------------------- // Constants (leave this section alone). @@ -91,6 +95,7 @@ OnInit: // ----------------------------------------------------------- + .reward_id_size = getarraysize(.reward_id); set .Size, getarraysize($WOE_CONTROL); if (.AutoKick || .NoOwner) for(set .@i,0; .@i<30; set .@i,.@i+1) { @@ -160,10 +165,13 @@ function Add_Zero { } OnReward: + if (!.reward_id_size && !.reward_zeny) + return; + set .@sql$, ((.Options&4)?"position = 0":"online = 1"); if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21); freeloop(1); - for(set .@i,0; .@i<30; set .@i,.@i+1) + for(set .@i,0; .@i<30; set .@i,.@i+1) { if (getarg(0)&(1<<.@i)) { set .@gid, getcastledata(.Castles$[.@i],1); if (!.@gid) continue; @@ -175,22 +183,35 @@ OnReward: setd ".@ip_"+.@i+"_"+.@ip$,1; } if (.Options&2) { - query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ - "'no-reply',"+.@cid[.@j]+",'** Siege Reward: "+getcastlename(.Castles$[.@i])+" **',"+ - "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "+.@str$+".% % % % % [ Your reward is attached. ]',"+ - .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); - if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) { + .@charid = .@cid[.@j]; + .@sender$ = "no-reply"; + .@title$ = "** Siege Reward: "+getcastlename(.Castles$[.@i])+" **"; + .@body$ = "Brave one,\r\n \r\n Congratulations!\r\n Your guild has successfully occupied\r\n territory in the War of Emperium on\r\n "+.@str$+".\r\n \r\n \r\n \r\n \r\n [ Your reward is attached. ]"; + + if (.reward_id_size) + mail .@charid, .@sender$, .@title$, .@body$, .reward_zeny, .reward_id, .reward_amount; + else + mail .@charid, .@sender$, .@title$, .@body$, .reward_zeny; + + if (PACKETVER < 20150513 && !getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) { setd ".@str_"+.@cid[.@j],1; - message rid2name(.@aid[.@j]),"You've got mail! Please re-login to update your mailing list."; + message rid2name(.@aid[.@j]),"You've got mail!"; } } else if (isloggedin(.@aid[.@j])) { - for(set .@k,0; .@k 0) { mes "[Guard]"; mes "Hold it right th--!"; @@ -115,7 +116,7 @@ lighthalzen,267,200,3 script Guard#lhz01 868,{ } } -lighthalzen,294,223,7 script Guard#lhz02 868,{ +lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{ if (countitem(7350) > 0) { mes "[Guard]"; mes "Hold it right th--!"; @@ -184,7 +185,7 @@ lighthalzen,294,223,7 script Guard#lhz02 868,{ // Cube Room Quest //============================================================ -lighthalzen,341,224,3 script Fishbone 868,{ +lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{ // Quest is finished. if (MISC_QUEST&512) { mes "[Fishbone]"; @@ -645,7 +646,7 @@ lighthalzen,341,224,3 script Fishbone 868,{ } } -lhz_cube,237,198,0 script Bundle of Files#cube 111,{ +lhz_cube,237,198,0 script Bundle of Files#cube HIDDEN_NPC,{ if (lhz_sincube < 7) { mes "^3355FFThere are a bunch"; mes "of files scattered"; @@ -687,7 +688,7 @@ lhz_cube,237,198,0 script Bundle of Files#cube 111,{ close; } -lhz_cube,234,202,0 script Picture#cube 111,{ +lhz_cube,234,202,0 script Picture#cube HIDDEN_NPC,{ if (lhz_secret01 < 2) { mes "^3355FFThis picture hanging"; mes "on the wall catches"; @@ -780,7 +781,7 @@ lhz_cube,234,202,0 script Picture#cube 111,{ close; } -lhz_cube,242,201,0 script Drawer#cube 111,{ +lhz_cube,242,201,0 script Drawer#cube HIDDEN_NPC,{ if (lhz_secret01 < 1) { mes "^3355FFThe drawer here"; mes "looks interesting,"; @@ -820,7 +821,7 @@ lhz_cube,242,201,0 script Drawer#cube 111,{ close; } -lhz_cube,248,179,0 script Chest#cube 111,{ +lhz_cube,248,179,0 script Chest#cube HIDDEN_NPC,{ if (lhz_sincube < 7) { mes "^3355FFYou've found a chest"; mes "with an axe laid on"; @@ -851,7 +852,7 @@ lhz_cube,248,179,0 script Chest#cube 111,{ close; } -lhz_cube,237,183,0 script Barrel#cube 111,{ +lhz_cube,237,183,0 script Barrel#cube HIDDEN_NPC,{ if (lhz_sincube < 8) { mes "^3355FFYou have"; mes "found a shabbily"; @@ -948,7 +949,7 @@ lhz_cube,237,183,0 script Barrel#cube 111,{ close; } -lhz_cube,224,192,0 script Power Generator#cube 111,{ +lhz_cube,224,192,0 script Power Generator#cube HIDDEN_NPC,{ if (lhz_secret01 < 6) { mes "^3355FFThis is a noisily"; mes "operating huge machine"; @@ -997,7 +998,7 @@ lhz_cube,224,192,0 script Power Generator#cube 111,{ close; } -lhz_cube,244,201,0 script Status Light#cube 111,{ +lhz_cube,244,201,0 script Status Light#cube HIDDEN_NPC,{ if (lhz_secret01 < 7) { mes "^3355FFThe Status Light is"; mes "on. It looks like there's"; @@ -1032,7 +1033,7 @@ lhz_cube,244,201,0 script Status Light#cube 111,{ close; } -lhz_cube,234,200,0 script Desk#cube 111,{ +lhz_cube,234,200,0 script Desk#cube HIDDEN_NPC,{ if (lhz_secret02 < 2) { mes "^3355FFYou've found"; mes "a completely"; @@ -1169,7 +1170,7 @@ lhz_cube,234,200,0 script Desk#cube 111,{ } } -lhz_cube,247,198,0 script Bed#cube 111,{ +lhz_cube,247,198,0 script Bed#cube HIDDEN_NPC,{ if (lhz_secret02 == 0) { mes "^3355FFYou've found a bed"; mes "in which the sheets"; @@ -1317,7 +1318,7 @@ lhz_cube,247,198,0 script Bed#cube 111,{ close; } -lhz_cube,229,184,0 script Goblet#cube 111,{ +lhz_cube,229,184,0 script Goblet#cube HIDDEN_NPC,{ if (lhz_sincube < 10) { if (lhz_secret03 == 0) { mes "^3355FFYou see an empty"; @@ -1346,7 +1347,7 @@ lhz_cube,229,184,0 script Goblet#cube 111,{ close; } -lhz_cube,231,202,0 script Chemicals#cube 111,{ +lhz_cube,231,202,0 script Chemicals#cube HIDDEN_NPC,{ if (lhz_secret03 < 1) { mes "^3355FFThere is a bottle"; mes "containing slightly"; @@ -1394,7 +1395,7 @@ lhz_cube,231,202,0 script Chemicals#cube 111,{ close; } -lhz_cube,249,191,0 script Cabinet#cube 111,{ +lhz_cube,249,191,0 script Cabinet#cube HIDDEN_NPC,{ if (lhz_secret03 < 2) { mes "^3355FFYou've found a"; mes "cabinet that contains"; @@ -1446,7 +1447,7 @@ lhz_cube,249,191,0 script Cabinet#cube 111,{ close; } -lhz_cube,224,197,0 script Experiment Tube#cube 111,{ +lhz_cube,224,197,0 script Experiment Tube#cube HIDDEN_NPC,{ if (lhz_secret01 < 8) { mes "^3355FFYou find a strange"; mes "tube that seems to"; @@ -1545,7 +1546,7 @@ lhz_cube,224,197,0 script Experiment Tube#cube 111,{ } } -lhz_cube,248,193,0 script Box#cube1 111,{ +lhz_cube,248,193,0 script Box#cube1 HIDDEN_NPC,{ if (lhz_secret01 < 9 && lhz_secret02 < 4 && lhz_secret03 < 3) { mes "^3355FFYou find a box with"; mes "three distinctively"; @@ -1671,7 +1672,7 @@ lhz_cube,248,193,0 script Box#cube1 111,{ close; } -lhz_cube,250,184,0 script Door#cube 111,{ +lhz_cube,250,184,0 script Door#cube HIDDEN_NPC,{ mes "^3355FFYou've come upon a"; mes "door that leads outside.^000000"; next; @@ -1682,7 +1683,7 @@ lhz_cube,250,184,0 script Door#cube 111,{ close; } -lhz_dun02,224,6,0 script Exit1#lt 45,1,1,{ +lhz_dun02,224,6,0 script Exit1#lt WARPNPC,1,1,{ end; OnTouch_: if (MISC_QUEST&512) { @@ -1698,7 +1699,7 @@ OnTouch_: // Lighthalzen Pickpocket Mini-Quest //============================================================ -lighthalzen,240,216,4 script Suspicious Guy#lhz_01 870,2,2,{ +lighthalzen,240,216,4 script Suspicious Guy#lhz_01 4_M_LGTPOOR,2,2,{ end; OnTouch_: @@ -1767,7 +1768,7 @@ OnTouch_: } } -lighthalzen,220,169,3 script Suspicious Guy#lhz_02 870,2,2,{ +lighthalzen,220,169,3 script Suspicious Guy#lhz_02 4_M_LGTPOOR,2,2,{ end; OnInit: @@ -1839,7 +1840,7 @@ OnTouch_: } } -lighthalzen,164,127,4 script Suspicious Guy#lhz_03 870,2,2,{ +lighthalzen,164,127,4 script Suspicious Guy#lhz_03 4_M_LGTPOOR,2,2,{ end; OnInit: @@ -2023,7 +2024,7 @@ OnTouch_: // Friendship Quest //============================================================ -lhz_in02,201,210,5 script Digotz 869,{ +lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{ if (BaseLevel < 50) { mes "[Digotz]"; mes "Oh, an adventurer?"; @@ -2502,7 +2503,7 @@ lhz_in02,201,210,5 script Digotz 869,{ close; } -lighthalzen,337,232,3 script Maku 870,{ +lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{ mes "[Maku]"; if (friendship > 14) { cutin "lhz_macu07",2; @@ -2980,7 +2981,7 @@ lighthalzen,337,232,3 script Maku 870,{ } -yuno_in04,107,14,5 script Student 754,{ +yuno_in04,107,14,5 script Student 4_M_SAGE_A,{ if (friendship == 7 || friendship == 8) { mes "[Joey Choryee]"; mes "This is a study area where"; @@ -3009,7 +3010,7 @@ yuno_in04,107,14,5 script Student 754,{ close; } -yuno_in04,96,106,5 script Passionate Student 754,{ +yuno_in04,96,106,5 script Passionate Student 4_M_SAGE_A,{ if ((MaxWeight-Weight) < 300 || checkweight(1201,1) == 0) { mes "^3355FFWait a second!"; mes "Right now, you're carrying"; @@ -3230,7 +3231,7 @@ yuno_in04,96,106,5 script Passionate Student 754,{ close; } -yuno_in04,168,117,3 script Book#lhz 111,{ +yuno_in04,168,117,3 script Book#lhz HIDDEN_NPC,{ if (friendship == 11) { mes "^3355FFThere's nothing"; mes "over here that you"; @@ -3256,7 +3257,7 @@ yuno_in04,168,117,3 script Book#lhz 111,{ // Cursed Spirit Quest //============================================================ -lhz_dun01,147,106,0 script #kiz01-1 -1,3,3,{ +lhz_dun01,147,106,0 script #kiz01-1 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3292,11 +3293,11 @@ OnTouch_: end; } -lhz_dun01,239,135,0 duplicate(#kiz01-1) #kiz01-2 -1,3,3 -lhz_dun01,66,213,0 duplicate(#kiz01-1) #kiz01-3 -1,3,3 -lhz_dun01,225,198,0 duplicate(#kiz01-1) #kiz01-4 -1,3,3 +lhz_dun01,239,135,0 duplicate(#kiz01-1) #kiz01-2 HIDDEN_NPC,3,3 +lhz_dun01,66,213,0 duplicate(#kiz01-1) #kiz01-3 HIDDEN_NPC,3,3 +lhz_dun01,225,198,0 duplicate(#kiz01-1) #kiz01-4 HIDDEN_NPC,3,3 -lhz_dun02,244,229,0 script #kiz02-1 -1,3,3,{ +lhz_dun02,244,229,0 script #kiz02-1 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3332,11 +3333,11 @@ OnTouch_: end; } -lhz_dun02,60,293,0 duplicate(#kiz02-1) #kiz02-2 -1,3,3 -lhz_dun02,267,278,0 duplicate(#kiz02-1) #kiz02-3 -1,3,3 -lhz_dun02,94,199,0 duplicate(#kiz02-1) #kiz02-4 -1,3,3 +lhz_dun02,60,293,0 duplicate(#kiz02-1) #kiz02-2 HIDDEN_NPC,3,3 +lhz_dun02,267,278,0 duplicate(#kiz02-1) #kiz02-3 HIDDEN_NPC,3,3 +lhz_dun02,94,199,0 duplicate(#kiz02-1) #kiz02-4 HIDDEN_NPC,3,3 -lhz_dun03,244,51,0 script #kiz03-1 -1,3,3,{ +lhz_dun03,244,51,0 script #kiz03-1 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3372,10 +3373,10 @@ OnTouch_: end; } -lhz_dun03,123,191,0 duplicate(#kiz03-1) #kiz03-2 -1,3,3 -lhz_dun03,74,140,0 duplicate(#kiz03-1) #kiz03-3 -1,3,3 +lhz_dun03,123,191,0 duplicate(#kiz03-1) #kiz03-2 HIDDEN_NPC,3,3 +lhz_dun03,74,140,0 duplicate(#kiz03-1) #kiz03-3 HIDDEN_NPC,3,3 -lighthalzen,344,278,0 script #kiz03 -1,2,2,{ +lighthalzen,344,278,0 script #kiz03 HIDDEN_NPC,2,2,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3426,7 +3427,7 @@ OnTouch_: end; } -lhz_in03,178,22,0 script #kiz04 -1,2,2,{ +lhz_in03,178,22,0 script #kiz04 HIDDEN_NPC,2,2,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3505,7 +3506,7 @@ OnTouch_: end; } -lighthalzen,295,227,0 script #kiz05 -1,2,2,{ +lighthalzen,295,227,0 script #kiz05 HIDDEN_NPC,2,2,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3551,7 +3552,7 @@ OnTouch_: end; } -lighthalzen,364,315,0 script #kiz06 -1,3,3,{ +lighthalzen,364,315,0 script #kiz06 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3610,7 +3611,7 @@ OnTouch_: end; } -lhz_in01,113,150,0 script #kiz07 -1,3,3,{ +lhz_in01,113,150,0 script #kiz07 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3664,7 +3665,7 @@ OnTouch_: end; } -lhz_in01,272,227,0 script #kiz08 -1,2,2,{ +lhz_in01,272,227,0 script #kiz08 HIDDEN_NPC,2,2,{ OnTouch_: if (countitem(7345) > 0 ) { if (lhz_curse == 0) { @@ -3748,7 +3749,7 @@ OnTouch_: end; } -lhz_in01,206,129,0 script #kiz09 -1,5,5,{ +lhz_in01,206,129,0 script #kiz09 HIDDEN_NPC,5,5,{ OnTouch_: if (countitem(7345) > 0) { if (lhz_curse == 12) { @@ -3767,7 +3768,7 @@ OnTouch_: end; } -lhz_que01,21,31,5 script #li_Varmunt 755,{ +lhz_que01,21,31,5 script #li_Varmunt 4_M_SAGE_C,{ if (countitem(7345) > 0) { if (lhz_curse == 12) { mes "[??]"; @@ -3903,7 +3904,7 @@ lhz_que01,21,31,5 script #li_Varmunt 755,{ end; } -lhz_que01,29,24,3 script #li_researcher 754,{ +lhz_que01,29,24,3 script #li_researcher 4_M_SAGE_A,{ if (countitem(7345) > 0) { if (lhz_curse == 12) { mes "Doctor Varmunt,"; @@ -4038,7 +4039,7 @@ lhz_que01,29,24,3 script #li_researcher 754,{ end; } -lhz_in01,282,166,0 script #kiz10 -1,3,3,{ +lhz_in01,282,166,0 script #kiz10 HIDDEN_NPC,3,3,{ OnTouch_: if (countitem(7345) > 0) { if (lhz_curse == 16) { @@ -4070,7 +4071,7 @@ OnTouch_: end; } -lhz_que01,99,74,5 script #li_Man 48,{ +lhz_que01,99,74,5 script #li_Man 1_M_02,{ if (lhz_curse == 16) { mes "[???]"; mes "It's over."; @@ -4221,7 +4222,7 @@ OnTouch_: close; } -lighthalzen,346,263,3 script Elder#lhz 846,{ +lighthalzen,346,263,3 script Elder#lhz 4_F_EINOLD,{ if (countitem(7345) > 0) { if ((lhz_curse == 1) && (lhz_spi01 == 1) && (lhz_spi02 == 1) && (lhz_spi03 == 1) && (lhz_spi04 == 1)) { mes "[Elder]"; @@ -4689,7 +4690,7 @@ lighthalzen,346,263,3 script Elder#lhz 846,{ } } -lhz_in03,32,162,3 script Crippled Girl#li_tre 53,{ +lhz_in03,32,162,3 script Crippled Girl#li_tre 1_M_INNKEEPER,{ if (lhz_curse == 23) { if (countitem(7341) > 0) { mes "["+strcharinfo(0)+"]"; @@ -5054,7 +5055,7 @@ lhz_in03,32,162,3 script Crippled Girl#li_tre 53,{ } } -lighthalzen,324,322,0 script #li_door 45,2,2,{ +lighthalzen,324,322,0 script #li_door WARPNPC,2,2,{ OnTouch_: if ((lhz_curse > 19) && (lhz_curse < 23)) { mes "^3355FFThe door is locked.^000000"; @@ -5086,7 +5087,7 @@ OnTouch_: lhz_in03,12,162,0 warp #to_lhz 1,1,lighthalzen,321,322 -lighthalzen,319,321,0 script #li_bother -1,2,2,{ //3,3 +lighthalzen,319,321,0 script #li_bother HIDDEN_NPC,2,2,{ //3,3 OnTouch_: if ((lhz_curse == 24 ) || (lhz_curse == 25)) { mes "............."; @@ -5141,7 +5142,7 @@ OnTouch_: end; } -lhz_in01,114,181,5 script Representative#li_01 71,{ +lhz_in01,114,181,5 script Representative#li_01 1_F_LIBRARYGIRL,{ if (lhz_curse == 7) { mes "[Representative]"; mes "Greetings, and welcome"; @@ -5300,7 +5301,7 @@ lhz_in01,114,181,5 script Representative#li_01 71,{ } } -lhz_in01,27,247,5 script Representative#li_02 71,{ +lhz_in01,27,247,5 script Representative#li_02 1_F_LIBRARYGIRL,{ if (lhz_curse > 6) { mes "[Representative]"; mes "Welcome to the"; @@ -5443,7 +5444,7 @@ lhz_in01,27,247,5 script Representative#li_02 71,{ } } -lhz_in01,25,251,3 script Rekenber Guidebook#li 111,{ +lhz_in01,25,251,3 script Rekenber Guidebook#li HIDDEN_NPC,{ mes ".............."; next; mes "^3131FF#The Vision^000000"; @@ -5479,7 +5480,7 @@ lhz_in01,25,251,3 script Rekenber Guidebook#li 111,{ close; } -lhz_in01,273,121,1 script Mad Scientist#li 865,{ +lhz_in01,273,121,1 script Mad Scientist#li 4_LGTSCIENCE,{ if (lhz_curse == 13) { mes "[Wolfchev]"; mes "No one shall"; @@ -5678,7 +5679,7 @@ lhz_in01,273,121,1 script Mad Scientist#li 865,{ } } -lhz_in01,286,226,3 script Secretary Slierre#li 831,{ +lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{ if (lhz_curse == 26) { mes "[Sueii Slierre]"; mes "Excuse me, but you are"; @@ -6161,7 +6162,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 831,{ } } -lhz_que01,94,24,0 script #li_end -1,2,2,{ +lhz_que01,94,24,0 script #li_end HIDDEN_NPC,2,2,{ OnTouch_: if (lhz_curse > 30) { mes "^3131FFThere's no trace of"; @@ -6177,7 +6178,7 @@ OnTouch_: end; } -lhz_in01,43,114,0 script #li_toend 45,1,1,{ +lhz_in01,43,114,0 script #li_toend WARPNPC,1,1,{ OnTouch_: if (lhz_curse > 30) { warp "lhz_que01",97,30; @@ -6191,7 +6192,7 @@ OnTouch_: lhz_que01,97,33,0 warp #li_toin01 1,1,lhz_in01,43,120 lhz_in01,278,132,0 warp #li_toin02 1,1,lhz_in01,43,120 -lhz_que01,89,15,3 script File#li 111,{ +lhz_que01,89,15,3 script File#li HIDDEN_NPC,{ mes "Name: Engeod"; mes "Age: XX"; mes "Height: XXX"; @@ -6209,7 +6210,7 @@ lhz_que01,89,15,3 script File#li 111,{ close; } -lhz_in01,269,114,3 script A File#li-1 111,{ +lhz_in01,269,114,3 script A File#li-1 HIDDEN_NPC,{ mes "Name: Engeod"; mes "Age: XX"; mes "Height: XXX"; @@ -6229,7 +6230,7 @@ lhz_in01,269,114,3 script A File#li-1 111,{ // President Quest, a.k.a. Schwartzvalt Triology Quest //============================================================ -lighthalzen,179,170,4 script Ordinary Man 98,{ +lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{ if(!lhz_boss) { @@ -6926,7 +6927,7 @@ lighthalzen,179,170,4 script Ordinary Man 98,{ } } -lighthalzen,173,167,1 script Switch -1,2,4,{ +lighthalzen,173,167,1 script Switch HIDDEN_NPC,2,4,{ OnTouch_: if(lhz_boss == 1) @@ -7011,7 +7012,7 @@ OnTouch_: } } -yuno_fild04,165,245,4 script Dismal Guy 89,{ +yuno_fild04,165,245,4 script Dismal Guy 4_M_ORIENT02,{ if(lhz_boss < 8) { @@ -7191,7 +7192,7 @@ yuno_fild04,165,245,4 script Dismal Guy 89,{ } } -yuno_pre,69,20,4 script Secretary#1 862,{ +yuno_pre,69,20,4 script Secretary#1 4_F_LGTGIRL,{ if(lhz_boss < 11) { @@ -7447,7 +7448,7 @@ yuno_pre,69,20,4 script Secretary#1 862,{ } } -yuno_pre,95,71,5 script Guard 852,{ +yuno_pre,95,71,5 script Guard 4_M_EIN_SOLDIER,{ if(lhz_boss < 11) { @@ -7577,14 +7578,14 @@ yuno_pre,95,71,5 script Guard 852,{ } } -yuno_pre,96,69,2 script A Fine Gentleman 754,{ +yuno_pre,96,69,2 script A Fine Gentleman 4_M_SAGE_A,{ OnInit: disablenpc "A Fine Gentleman"; end; } -yuno_pre,69,79,4 script Mr. President 872,{ +yuno_pre,69,79,4 script Mr. President 4_M_PRESIDENT,{ if(checkweight(7342,1) != 1) { @@ -8501,21 +8502,21 @@ L_Mission: } } -yuno_pre,77,68,0 script Secretary#2 862,{ +yuno_pre,77,68,0 script Secretary#2 4_F_LGTGIRL,{ OnInit: disablenpc "Secretary#2"; end; } -yuno_pre,75,73,0 script A Neat Gentleman 109,{ +yuno_pre,75,73,0 script A Neat Gentleman 4_M_MANAGER,{ OnInit: disablenpc "A Neat Gentleman"; end; } -yuno_pre,117,60,0 script Eavesdrop -1,10,5,{ +yuno_pre,117,60,0 script Eavesdrop HIDDEN_NPC,10,5,{ OnTouch_: if(lhz_boss == 16) @@ -8551,7 +8552,7 @@ OnTouch_: } } -aldebaran,58,225,4 script Kafra Employee#l1 116,{ +aldebaran,58,225,4 script Kafra Employee#l1 4_F_KAFRA2,{ if(lhz_boss != 17) { @@ -8621,7 +8622,7 @@ aldebaran,58,225,4 script Kafra Employee#l1 116,{ } } -aldeba_in,155,240,5 script Kafra Employee#l2 859,{ +aldeba_in,155,240,5 script Kafra Employee#l2 4_F_AGENTKAFRA,{ if(checkweight(7343,1) != 1) { @@ -8904,7 +8905,7 @@ aldeba_in,155,240,5 script Kafra Employee#l2 859,{ } } -lhz_fild02,228,214,0 script Wounded Man 849,{ +lhz_fild02,228,214,0 script Wounded Man 4_M_DIEMAN,{ if(checkweight(7343,1) != 1) { @@ -9006,7 +9007,7 @@ OnInit: end; } -lhz_fild02,224,220,0 script Wounded Man Switch -1,3,3,{ +lhz_fild02,224,220,0 script Wounded Man Switch HIDDEN_NPC,3,3,{ OnTouch_: if(lhz_boss == 18) @@ -9020,7 +9021,7 @@ OnTouch_: } } -lhz_fild01,76,214,0 script Esuna Trigger -1,5,5,{ +lhz_fild01,76,214,0 script Esuna Trigger HIDDEN_NPC,5,5,{ OnTouch_: if((lhz_boss == 26) || (lhz_boss == 36) || (lhz_boss == 38) || (lhz_boss == 40)) @@ -9035,7 +9036,7 @@ OnTouch_: } } -lhz_fild01,66,219,4 script Mysterious Woman 859,{ +lhz_fild01,66,219,4 script Mysterious Woman 4_F_AGENTKAFRA,{ if(lhz_boss == 26) { @@ -9251,7 +9252,7 @@ OnInit: end; } -lhz_in01,93,45,4 script Researcher#1 865,{ +lhz_in01,93,45,4 script Researcher#1 4_LGTSCIENCE,{ if(lhz_boss < 28) { @@ -9353,7 +9354,7 @@ lhz_in01,93,45,4 script Researcher#1 865,{ } } -lhz_in01,285,169,3 script Researcher#2 865,{ +lhz_in01,285,169,3 script Researcher#2 4_LGTSCIENCE,{ if(checkweight(7349,1) != 1) { @@ -9506,7 +9507,7 @@ lhz_in01,285,169,3 script Researcher#2 865,{ } } -lhz_in01,187,31,0 script #Sneak 111,4,3,{ +lhz_in01,187,31,0 script #Sneak HIDDEN_NPC,4,3,{ end; @@ -9663,7 +9664,7 @@ L_Enter: } } -lhz_in01,177,44,0 script Timer_Sneak -1,8,12,{ +lhz_in01,177,44,0 script Timer_Sneak HIDDEN_NPC,8,12,{ OnTouch_: warp "lhz_in01",191,49; @@ -9690,7 +9691,7 @@ OnTimer190000: -lhz_in01,182,35,0 script File Search Engine 111,{ +lhz_in01,182,35,0 script File Search Engine HIDDEN_NPC,{ if((lhz_boss > 28) && (lhz_boss < 35)) { @@ -9820,7 +9821,7 @@ L_Search: close; } -lhz_in01,177,31,0 script Door#sneak 111,{ +lhz_in01,177,31,0 script Door#sneak HIDDEN_NPC,{ if(lhz_boss < 29) { @@ -9858,7 +9859,7 @@ lhz_in01,177,31,0 script Door#sneak 111,{ } } -lhz_in01,184,40,0 script Area 1-5 111,{ +lhz_in01,184,40,0 script Area 1-5 HIDDEN_NPC,{ if(checkweight(7344,1) != 1) { @@ -9907,7 +9908,7 @@ lhz_in01,184,40,0 script Area 1-5 111,{ } } -lhz_in01,184,52,0 script Area 1-7 111,{ +lhz_in01,184,52,0 script Area 1-7 HIDDEN_NPC,{ if((lhz_boss > 28) && (lhz_boss < 32)) { @@ -9969,7 +9970,7 @@ lhz_in01,184,52,0 script Area 1-7 111,{ } } -lhz_in01,184,46,0 script Area 3-2 111,{ +lhz_in01,184,46,0 script Area 3-2 HIDDEN_NPC,{ if((lhz_boss > 28) && (lhz_boss < 30)) { @@ -10034,7 +10035,7 @@ lhz_in01,184,46,0 script Area 3-2 111,{ } } -lhz_in01,184,48,0 script Area 3-3 111,{ +lhz_in01,184,48,0 script Area 3-3 HIDDEN_NPC,{ if((lhz_boss > 28) && (lhz_boss < 34)) { @@ -10082,7 +10083,7 @@ lhz_in01,184,48,0 script Area 3-3 111,{ } } -lhz_in01,177,56,0 script Area 6-1 111,{ +lhz_in01,177,56,0 script Area 6-1 HIDDEN_NPC,{ if((lhz_boss > 28) && (lhz_boss < 33)) { @@ -10129,7 +10130,7 @@ lhz_in01,177,56,0 script Area 6-1 111,{ } } -lhz_dun02,282,278,0 script Broken Machine 111,{ +lhz_dun02,282,278,0 script Broken Machine HIDDEN_NPC,{ if(checkweight(7346,1) != 1) { @@ -10209,7 +10210,7 @@ lhz_dun02,282,278,0 script Broken Machine 111,{ } } -sec_in02,17,170,4 script boss::lght_boss_admin 809,{ +sec_in02,17,170,4 script boss::lght_boss_admin 1_M_SIGNMONK,{ callfunc "F_GM_NPC"; mes "[Patch]"; mes "Tell me what you want."; @@ -10230,7 +10231,7 @@ sec_in02,17,170,4 script boss::lght_boss_admin 809,{ close; } -lhz_in02,19,274,2 script Maintenance Guy 851,{ +lhz_in02,19,274,2 script Maintenance Guy 4_M_REPAIR,{ mes "[Kudiuu]"; mes "Holy...!"; @@ -10244,7 +10245,7 @@ lhz_in02,19,274,2 script Maintenance Guy 851,{ // Rekenber Job Quest //============================================================ -lhz_in01,174,258,3 script Young Man#reken 868,{ +lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{ if(lhz_rekenber > 21) { @@ -10986,7 +10987,7 @@ lhz_in01,174,258,3 script Young Man#reken 868,{ end; } -lighthalzen,141,162,3 script Old Man#reken 85,{ +lighthalzen,141,162,3 script Old Man#reken 4_M_03,{ mes "[Old Man]"; mes "Lately, Kazien seems"; @@ -11016,7 +11017,7 @@ lighthalzen,141,162,3 script Old Man#reken 85,{ close; } -einbroch,55,52,3 script Laboratory Guard#reken 852,{ +einbroch,55,52,3 script Laboratory Guard#reken 4_M_EIN_SOLDIER,{ if(lhz_rekenber == 3) { @@ -11099,7 +11100,7 @@ einbroch,55,52,3 script Laboratory Guard#reken 852,{ close; } -airplane_01,96,48,3 script Man#Lyozien 868,{ +airplane_01,96,48,3 script Man#Lyozien 4_M_LGTMAN,{ if(lhz_rekenber > 21) { @@ -11537,7 +11538,7 @@ OnStop: end; } -- script ::Scamp -1,{ +- script ::Scamp HIDDEN_NPC,{ if(lhz_rekenber > 21) { @@ -11720,7 +11721,7 @@ OnStop: close; } -airplane_01,1,1,1 script #bully1 -1,{ +airplane_01,1,1,1 script #bully1 HIDDEN_NPC,{ OnInit: disablenpc "#bully1"; @@ -11763,7 +11764,7 @@ OnTimer120000: end; } -airplane_01,2,2,1 script #bully2 -1,{ +airplane_01,2,2,1 script #bully2 HIDDEN_NPC,{ OnInit: disablenpc "#bully2"; @@ -11806,7 +11807,7 @@ OnTimer120000: end; } -airplane_01,99,47,3 script #packidentity 139,2,2,{ +airplane_01,99,47,3 script #packidentity HIDDEN_WARP_NPC,2,2,{ end; OnInit: @@ -11846,7 +11847,7 @@ OnTimer120000: end; } -lhz_in01,187,247,3 script #flashback1 139,2,2,{ +lhz_in01,187,247,3 script #flashback1 HIDDEN_WARP_NPC,2,2,{ OnTouch_: if(lhz_rekenber == 22) @@ -11868,7 +11869,7 @@ OnTouch_: end; } -lhz_in01,75,248,3 script #flashback2 139,2,2,{ +lhz_in01,75,248,3 script #flashback2 HIDDEN_WARP_NPC,2,2,{ OnTouch_: if(lhz_rekenber == 22) @@ -11906,7 +11907,7 @@ OnTouch_: end; } -airplane_01,10,10,3 script #LyozienSwitch 111,{ +airplane_01,10,10,3 script #LyozienSwitch HIDDEN_NPC,{ callfunc "F_GM_NPC"; mes "[Lyozien Switch]"; mes "Input password."; diff --git a/npc/quests/quests_payon.txt b/npc/quests/quests_payon.txt index 54e2a17fa9f..cabc2101c06 100644 --- a/npc/quests/quests_payon.txt +++ b/npc/quests/quests_payon.txt @@ -17,6 +17,7 @@ //= 1.5a replaced item "names" with item id. [Lupus] //= 1.6 Updated Dialogs from "Oxygen Mask Quest" [Samuray22] //= 1.7 Updated headgear quests. [L0ne_W0lf] +//= 1.8 Updating NPC Position. [JohnnyPlayy] //============================================================ // 'Pretend Murdered' Quest @@ -216,7 +217,7 @@ payon_in02,25,71,4 script Boy 86,{ // 'Helm of Angel' and 'Deviruchi Cap' Quest //============================================================ -payon_in01,56,12,7 script Young man#12 89,{ +- script Young man#12 89,{ mes "[Young man]"; mes "...What is it?"; next; diff --git a/npc/re/cities/brasilis.txt b/npc/re/cities/brasilis.txt index 5de751194ee..d847f8f8a7e 100644 --- a/npc/re/cities/brasilis.txt +++ b/npc/re/cities/brasilis.txt @@ -85,7 +85,7 @@ brasilis,155,165,3 script Signpost#bra1 858,{ close; } -brasilis,195,231,3 script Signpost#bra2 858,{ +brasilis,191,239,3 script Signpost#bra2 858,{ mes ":: Verass Monument ::"; close; } diff --git a/npc/re/custom/lasagna/lasagna_npcs.txt b/npc/re/custom/lasagna/lasagna_npcs.txt index 6288a05ab55..72cd95f2326 100644 --- a/npc/re/custom/lasagna/lasagna_npcs.txt +++ b/npc/re/custom/lasagna/lasagna_npcs.txt @@ -89,7 +89,7 @@ lasa_fild01,49,304,3 script Vigilante Ajegna#doram0 4_DR_SOLDIER,{ close; } OnInit: - questinfo 7712, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7712)" ); end; } @@ -165,7 +165,7 @@ OnTouch: end; OnInit: if (strnpcinfo(0) == "Applicant Paul#doramt13") - questinfo 7723, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7723)" ); end; } lasa_fild01,50,321,6 duplicate(Applicant Paul#doramt13) Applicant MacCarnie#doramt13 4_M_MERCAT1 @@ -236,8 +236,7 @@ lasa_fild01,54,325,3 script Vigilante Gnocchi#doramt13 4_DR_SOLDIER,{ } close; OnInit: - questinfo 7723, QTYPE_QUEST, 1; - setquestinfo_req 7723, 7723,1;// todo : display when isbegin_quest(7723) == 1 only + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7723) == 1" ); end; } @@ -393,7 +392,7 @@ lasa_fild01,60,322,3 script Vigilante Aglio#doram02 4_DR_AGLIO,{ mes "Also, I'll give you a new staff."; mes "It should be better than that sprout you brought with you."; mes "Now you know how to equip an item because I already explained it to you, don't you?"; - completequest 7714;// Refreshing Apple Juice + erasequest 7714;// Refreshing Apple Juice getitem 569,30;// Novice Potion getitem 1687,1;// Beginner Foxtail Staff [1] getexp 70,70; @@ -532,12 +531,7 @@ lasa_fild01,60,322,3 script Vigilante Aglio#doram02 4_DR_AGLIO,{ mes "Well, problems do occur at the harbor from time to time, but I thought it wouldn't be an issue for you."; close; OnInit: - questinfo 7715, QTYPE_QUEST, 1; - setquestinfo_req 7715, 7713,2; - questinfo 7712, QTYPE_QUEST, 1; - setquestinfo_req 7712, 7712,1; - // questinfo 7713, QTYPE_QUEST, 1; - // setquestinfo_req 7713, 7713,2;// todo display when HUNTING is QUEST_COMPLETE + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7712) > 0 && (checkquest(7713,HUNTING) == -1 || checkquest(7713,HUNTING) == 2)" ); end; } @@ -646,7 +640,7 @@ OnTouch: npctalk "Hey, there! Get over here for a minute!", "", bc_self; end; OnInit: - questinfo 7719, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7719)" ); end; } @@ -818,8 +812,7 @@ OnTouch: end; OnInit: - questinfo 7721, QTYPE_QUEST, 1; - setquestinfo_req 7721, 7716,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7716) == 1 && isbegin_quest(7721) != 2" ); end; } @@ -876,8 +869,7 @@ lasagna,168,125,3 script Kid#doram04t 4_DR_KID_01,{ npctalk "You're too young! Just join the Vigilante Corp.", "Tool Merchant#doram05t", bc_self; end; OnInit: - questinfo 7716, QTYPE_QUEST, 1; - setquestinfo_req 7716, 7716,1;// todo display when Active, removed when completed + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7716) == 1" ); end; } @@ -992,6 +984,10 @@ lasagna,165,125,5 script Tool Merchant#doram05t 4_DR_M_01,{ close2; callshop "tool_shop_lasagna",2; end; + +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7717) == 1" ); + end; } - shop tool_shop_lasagna -1,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,713:-1,601:-1,602:-1,1065:-1 @@ -1215,7 +1211,8 @@ lasagna,224,126,5 script Healer Haru#doram07t 4_DR_M_02,{ } OnInit: - questinfo 7722, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7722) == 0" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7717) == 1" ); end; } @@ -1332,7 +1329,7 @@ malaya,286,175,3 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#m mora,110,118,3 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#mora 4_M_MERCAT1 morocc,169,105,3 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#moro 4_M_MERCAT1 mosk_in,30,246,3 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#mosk 4_M_MERCAT1 -payon,157,96,5 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#pay 4_M_MERCAT1 +payon,155,96,5 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#pay 4_M_MERCAT1 prontera,137,223,5 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#prt 4_M_MERCAT1 ra_in01,243,272,5 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#ra 4_M_MERCAT1 um_in,104,118,3 duplicate(Cat Paw Shrimp Merchant#iz) Cat Paw Shrimp Merchant#um 4_M_MERCAT1 @@ -1674,7 +1671,8 @@ OnTouch: npctalk "Meow! Hey, a new friend! I've got a story to tell you. You don't want to miss this!", "", bc_self; end; OnInit: - questinfo 7720, QTYPE_QUEST, 1;// perma for human + // note: permanent for human + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7720)" ); end; } @@ -1731,8 +1729,7 @@ OnTouch: npctalk "Please don't miss the announcement about the details of Con-Chliina!", "", bc_self; end; OnInit: - questinfo 14545, QTYPE_QUEST, 1; - setquestinfo_req 14545, 11445,2; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14545)" ); end; } @@ -2635,9 +2632,7 @@ lasa_fild01,353,370,5 script Shepherd#dorcon 4_DR_KID_01,{ close; } OnInit: - questinfo 14546, QTYPE_QUEST, 1; - setquestinfo_req 14546, 14592,0; - setquestinfo_level 14546,6,9; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14546) && !isbegin_quest(14592) && BaseLevel >= 6 && BaseLevel <= 9" ); end; } @@ -2784,9 +2779,7 @@ lasa_fild02,102,372,5 script Florin#dorcon 4_DR_F_01,{ } OnInit: - questinfo 14588, QTYPE_QUEST, 1; - setquestinfo_req 14588, 14592,0; - setquestinfo_level 14588,10,13; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14588) && !isbegin_quest(14592) && BaseLevel >= 10 && BaseLevel <= 13" ); end; } @@ -2928,9 +2921,7 @@ lasa_fild02,177,241,5 script Prok#dorcon 4_DR_M_02,{ } OnInit: - questinfo 14589, QTYPE_QUEST, 1; - setquestinfo_req 14589, 14592,0; - setquestinfo_level 14589,14,15; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14589) && !isbegin_quest(14592) && (BaseLevel == 14 || BaseLevel == 15)" ); end; } @@ -3056,9 +3047,7 @@ lasa_fild02,326,170,5 script Fisher#dorcon 4_CAT_ADV2,{ } OnInit: - questinfo 14590, QTYPE_QUEST, 1; - setquestinfo_req 14590, 14592,0; - setquestinfo_level 14590,16,19; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14590) && !isbegin_quest(14592) && BaseLevel >= 16 && BaseLevel <= 19" ); end; } @@ -3245,9 +3234,7 @@ lasa_fild02,331,251,5 script Sleepy meow#dorcon 4_CAT_REST,{ } OnInit: - questinfo 14591, QTYPE_QUEST, 1; - setquestinfo_req 14591, 14592,0; - setquestinfo_level 14591,20,20; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14591) && !isbegin_quest(14592) && BaseLevel == 20" ); end; } @@ -3740,21 +3727,8 @@ lasagna,222,187,3 script Chef#dorcon 4_CAT_CHEF,{ end; OnInit: - questinfo 14546, QTYPE_QUEST, 1; - setquestinfo_req 14546, 14592,0, 14588,0, 14589,0, 14590,0; - setquestinfo_level 14546,6,9; - - questinfo 14588, QTYPE_QUEST, 1; - setquestinfo_req 14588, 14592,0, 14546,0, 14589,0, 14590,0; - setquestinfo_level 14588,10,13; - - questinfo 14589, QTYPE_QUEST, 1; - setquestinfo_req 14589, 14592,0, 14546,0, 14588,0, 14590,0; - setquestinfo_level 14589,14,15; - - questinfo 14590, QTYPE_QUEST, 1; - setquestinfo_req 14590, 14592,0, 14546,0, 14588,0, 14589,0; - setquestinfo_level 14590,16,19; + questinfo( QTYPE_QUEST, QMARK_YELLOW, + "BaseLevel >= 6 && BaseLevel <= 19 && !isbegin_quest(14546) && !isbegin_quest(14592) && !isbegin_quest(14588) && !isbegin_quest(14589) && !isbegin_quest(14590)" ); end; } @@ -4030,7 +4004,7 @@ OnTouch: npctalk "Vigilante Guide: If you're ever in need of help, please visit the Vigilante Corp at any time.", "", bc_self; end; OnInit: - questinfo 11435, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(11435)" ); end; } lasagna,202,291,3 duplicate(Vigilante Guide#lasa) Vigilante Guide#lasa2 4_DR_SOLDIER,5,5 @@ -5044,7 +5018,7 @@ OnTouch: callsub S_quest21; end; OnInit: - questinfo 14545, QTYPE_QUEST, 1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14545)" ); end; } @@ -5256,12 +5230,7 @@ conch_in,65,58,3 script Purser#dorcon 4_CAT_ADV1,{ close; OnInit: - questinfo 14532, QTYPE_QUEST, 1; - setquestinfo_req 14532,14531,1; - questinfo 14536, QTYPE_QUEST, 1; - setquestinfo_req 14536,14535,1; - questinfo 14547, QTYPE_QUEST, 1; - setquestinfo_req 14547,14531,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(14531) == 1" ); end; } @@ -7861,8 +7830,7 @@ lasagna,298,84,5 script Vigilante#dorcon01 4_DR_SOLDIER,{ mes "The wind is very uneasy today."; close; OnInit: - questinfo 14541, QTYPE_QUEST, 1; - setquestinfo_req 14541,14539,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(14548) == 1 || isbegin_quest(14539) == 1" ); end; } @@ -8080,6 +8048,9 @@ lasa_dun01,153,103,3 script Vigilante#dorcon02 4_DR_SOLDIER,{ mes "[Machie]"; mes "Tut."; close; +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(14541) == 1 || isbegin_quest(14549) == 1" ); + end; } lasa_dun_q,162,158,3 script Tartufi#dorcon01 4_TARUTUPI,{ @@ -8963,6 +8934,8 @@ lasagna,226,181,3 script Kalu#dorcon 4_CAT_CHEF,{ if (lasagna_quest[2] == 8) { mes "[Kalu]"; mes "Just deliver this big lunchbox to Panna who's out on a cave patrol."; + if (countitem(25048) < 1) + getitem 25048,1;// Hearty Lunchbox close; } if (lasagna_quest[2] == 9) { @@ -9088,8 +9061,7 @@ lasagna,226,181,3 script Kalu#dorcon 4_CAT_CHEF,{ end; OnInit: - questinfo 14567, QTYPE_QUEST, 1; - setquestinfo_level 14567,140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(14567) && BaseLevel >= 140" ); end; } diff --git a/npc/re/guides/guides_malangdo.txt b/npc/re/guides/guides_malangdo.txt new file mode 100644 index 00000000000..5df21e7ad60 --- /dev/null +++ b/npc/re/guides/guides_malangdo.txt @@ -0,0 +1,135 @@ +//===== rAthena Script ======================================= +//= Malangdo Guide +//===== Changelogs: ========================================== +//= 1.0 First Version. [JohnnyPlayy] +//============================================================ + +malangdo,218,101,3 script Malangdo Guide#Malangdo 4_CAT_SAILOR3,{ + mes "[Malangdo Guide]"; + mes "Nice to meet you, welcome to ^8C4210Malangdo^000000. The island of cat paw!"; + mes "Need some guidance?"; + F_Navi("[Malangdo Guide]"); + while(1) { + next; + switch(select("[ Major Facilities ]:[ Trader & Assistant ]:Clear Mini-Map:Cancel")) { + case 1: + set .@loop,1; + while (.@loop) { + switch(select("[ Cat Gamers Director ]:[ Special Vending Machine ]:[ Coin Exchanger ]:[ Starry Coral ]:Previous Menu")) { + case 1: + callsub L_Mark, F_Navi("Cat Gamers Director","malangdo,119,137","FF0000"); + viewpoint 1,119,137,0,0xFF0000; + next; + break; + case 2: + callsub L_Mark, F_Navi("Special Vending Machine","malangdo,216,165","FF4500"); + viewpoint 1,216,165,1,0xFF4500; + next; + break; + case 3: + callsub L_Mark, F_Navi("Coin Exchanger","malangdo,216,165","DAA520"); + viewpoint 1,216,165,2,0xDAA520; + next; + break; + case 4: + callsub L_Mark, F_Navi("Starry Coral","malangdo,73,238","7B68EE"); + next; + viewpoint 1,73,238,3,0x7B68EE; + break; + case 5: + set .@loop,0; + break; + } + } + break; + case 2: + set .@loop,1; + while (.@loop) { + switch(select("[ Chief Thomas ]:[ Stinky Merchant ]:[ Wandering Merchant ]:[ Inn Owner ]:[ Storekeeper ]:[ Tool Dealer ]:[ Portali ]:[ Clink ]:[ Holink ]:[ Roving Merchant ]:Previous Menu")) { + case 1: + callsub L_Mark, F_Navi("Chief Thomas","malangdo,164,163","0A9696"); + viewpoint 1,164,163,4,0x0A9696; + next; + break; + case 2: + callsub L_Mark, F_Navi("Stinky Merchant","malangdo,173,145","4B0082"); + viewpoint 1,173,145,5,0x4B0082; + next; + break; + case 3: + callsub L_Mark, F_Navi("Wandering Merchant","malangdo,162,145","FF4500"); + viewpoint 1,162,145,6,0x7B68EE; + next; + break; + case 4: + callsub L_Mark, F_Navi("Inn Owner","malangdo,147,120","FF6A00"); + viewpoint 1,147,120,7,FF6A00; + next; + break; + case 5: + callsub L_Mark, F_Navi("Storekeeper","malangdo,184,138","7F3300"); + viewpoint 1,184,138,8,0x7F3300; + next; + break; + case 6: + callsub L_Mark, F_Navi("Tool Dealer","malangdo,232,160","7B68EE"); + viewpoint 1,232,160,9,0x7B68EE; + next; + break; + case 7: + callsub L_Mark, F_Navi("Portali","malangdo,190,167","FF4500"); + viewpoint 1,190,167,10,0x7B68EE; + next; + break; + case 8: + callsub L_Mark, F_Navi("Clink","malangdo,225,174","0A9696"); + viewpoint 1,225,174,11,0x0A9696; + next; + break; + case 9: + callsub L_Mark, F_Navi("Holink","malangdo,221,176","DA70D6"); + viewpoint 1,221,176,12,0xDA70D6; + next; + break; + case 10: + callsub L_Mark, F_Navi("Roving Merchant","malangdo,150,132","3131FF"); + viewpoint 1,150,132,13,0x3131FF; + next; + break; + case 11: + set .@loop,0; + break; + } + } + break; + case 3: + mes "[Malangdo Guide]"; + mes "I will remove all marks from your Mini-Map."; + mes "Need more help?"; + viewpoint 2,1,1,0,0xFFFFFF; + viewpoint 2,1,1,1,0xFFFFFF; + viewpoint 2,1,1,2,0xFFFFFF; + viewpoint 2,1,1,3,0xFFFFFF; + viewpoint 2,1,1,4,0xFFFFFF; + viewpoint 2,1,1,5,0xFFFFFF; + viewpoint 2,1,1,6,0xFFFFFF; + viewpoint 2,1,1,7,0xFFFFFF; + viewpoint 2,1,1,8,0xFFFFFF; + viewpoint 2,1,1,9,0xFFFFFF; + viewpoint 2,1,1,10,0xFFFFFF; + viewpoint 2,1,1,11,0xFFFFFF; + viewpoint 2,1,1,12,0xFFFFFF; + viewpoint 2,1,1,13,0xFFFFFF; + break; + case 4: + mes "[Malangdo Guide]"; + mes "I wish you a pleasant trip."; + close; + } + } +L_Mark: + mes "[Malangdo Guide]"; + mes "I will show you the location of the " + getarg(0); + mes "Do you need other information?"; + return; +} diff --git a/npc/re/instances/HorrorToyFactory.txt b/npc/re/instances/HorrorToyFactory.txt index 8d5d3848f22..17bcd175243 100644 --- a/npc/re/instances/HorrorToyFactory.txt +++ b/npc/re/instances/HorrorToyFactory.txt @@ -1214,7 +1214,7 @@ OnStart: OnStart: .@event$ = instance_npcname( strnpcinfo(0) ) + "::OnMyMobDead"; killmonster 'xm_d_map$, .@event$; - while (1) { + while (unitexists('celene_id) == true) { getunitdata 'celene_id, .@data; .@x = .@data[UMOB_X] + rand(1,20) - 10; .@y = .@data[UMOB_Y] + rand(1,20) - 10; @@ -1542,7 +1542,8 @@ OnTimer1000: 1@xm_d,3,1,3 script #adsw2 CLEAR_NPC,{ if (callfunc("F_GM_NPC",1854,0) == 1) { - getunitdata 'Antonio, .@mob; + if (unitexists('Antonio) == true) + getunitdata 'Antonio, .@mob; mapannounce 'xm_d_map$, "Factory announcement: Exist in " + .@mob[UMOB_X] + " - " + .@mob[UMOB_Y] + ".",bc_map,"0x00ff44"; } end; @@ -1601,7 +1602,6 @@ OnInstanceInit: hideonnpc instance_npcname("#eff_f0" + .@i); disablenpc instance_npcname("#bssk01"); disablenpc instance_npcname("#bssk02"); - hideonnpc instance_npcname("#bssk02"); for ( .@i = 1; .@i < 5; ++.@i ) hideonnpc instance_npcname("#crssk" + .@i); disablenpc instance_npcname("#kimion1"); diff --git a/npc/re/instances/MorseCave.txt b/npc/re/instances/MorseCave.txt index 7d90798e348..1ff95d7924d 100644 --- a/npc/re/instances/MorseCave.txt +++ b/npc/re/instances/MorseCave.txt @@ -383,7 +383,7 @@ OnMobDead: } -1@rev,34,126,4 script Grim Reaper Ankou#RZ Event_3 3029,{ end; } +1@rev,34,126,4 script Grim Reaper Ankou#RZ Event_3 3029,{ end; } 1@rev,112,126,4 duplicate(Grim Reaper Ankou#RZ Event_3) Grim Reaper Ankou#RZ Event_4 3029 1@rev,34,55,4 duplicate(Grim Reaper Ankou#RZ Event_3) Grim Reaper Ankou#RZ Event_5 3029 1@rev,112,48,4 duplicate(Grim Reaper Ankou#RZ Event_3) Grim Reaper Ankou#RZ Event_6 3029 diff --git a/npc/re/instances/OctopusCave.txt b/npc/re/instances/OctopusCave.txt index bdbbfcc630f..a5bf40e958d 100644 --- a/npc/re/instances/OctopusCave.txt +++ b/npc/re/instances/OctopusCave.txt @@ -226,7 +226,7 @@ OnMyMobDead: donpcevent instance_npcname("oct_boss_con")+"::OnEnable"; mapannounce .@map$,"Hey you!! I'll personally take care of you all! Let's bring it on!",bc_map,"0x00ff99"; enablenpc instance_npcname("oct_boss_warp"); - instance_warpall .@map$,199,99; + instance_warpall .@map$,199,99, instance_id(); end; } mapannounce .@map$,"Arrgg!! That hurts!!! I need another strategy...",bc_map,"0x00ff99"; diff --git a/npc/re/jobs/novice/academy.txt b/npc/re/jobs/novice/academy.txt index 31e659a9812..836d34ff9bd 100644 --- a/npc/re/jobs/novice/academy.txt +++ b/npc/re/jobs/novice/academy.txt @@ -83,7 +83,7 @@ OnTouch: end; OnInit: - questinfo 21001, QTYPE_QUEST, 1, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(21001) && Class == Job_Novice" ); end; } iz_int01,56,32,3 duplicate(Wounded Swordsman#intro_npc01_iz_int) Wounded Swordsman#intro_npc01_iz_int01 4_TOWER_01,5,5 @@ -125,7 +125,7 @@ iz_int,56,32,3 script Wounded Swordsman#intro_npc02_iz_int HIDDEN_WARP_NPC,{ end; OnInit: - questinfo 21001, QTYPE_QUEST, 1, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(21001) && Class == Job_Novice" ); end; } iz_int01,56,32,3 duplicate(Wounded Swordsman#intro_npc02_iz_int) Wounded Swordsman#intro_npc02_iz_int01 HIDDEN_WARP_NPC @@ -237,7 +237,7 @@ int_land,78,103,5 script Captain Carocc#intro_npc03 4_M_REINDEER,{ close; OnInit: - questinfo 21008, QTYPE_QUEST, 1, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(21008) && Class == Job_Novice" ); end; } @@ -328,8 +328,7 @@ int_land,73,100,3 script Lumin#new_ship 4_M_NOV_RUMIN,{ end; OnInit: - questinfo 7471, QTYPE_QUEST, 1, Job_Novice; - setquestinfo_req 7471,21008,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "Class == Job_Novice && !isbegin_quest(7471) && isbegin_quest(21008) == 1" ); end; } int_land01,73,100,3 duplicate(Lumin#new_ship) Lumin#new_ship01 4_M_NOV_RUMIN @@ -380,8 +379,7 @@ int_land,58,69,5 script Sailor#intro_npc04 4W_SAILOR,{ close; OnInit: - questinfo 21002, QTYPE_QUEST, 1, Job_Novice; - setquestinfo_req 21002,21008,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "Class == Job_Novice && !isbegin_quest(21002) && isbegin_quest(21008) == 1" ); end; } @@ -793,9 +791,7 @@ izlude,198,213,3 script Captain Carocc#iz 4_M_REINDEER,5,5,{ end; OnInit: - questinfo 7472, QTYPE_QUEST, 1, Job_Novice; - setquestinfo_level 7472,1,14; - setquestinfo_req 7472,7473,0; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "Class == Job_Novice && BaseLevel <= 14 && !isbegin_quest(7472) && !isbegin_quest(7473)" ); end; OnTouch: @@ -1115,8 +1111,7 @@ izlude,122,207,3 script Criatura Academy Staff#0 4_M_KHKYEL,3,3,{ } OnInit: - questinfo 7473, QTYPE_QUEST, 1, Job_Novice; - setquestinfo_level 7473,1,14; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "Class == Job_Novice && BaseLevel <= 14 && !isbegin_quest(7473)" ); end; OnTouch: @@ -1636,13 +1631,8 @@ izlude,120,207,4 script Information Staff#0 8W_SOLDIER,{ } OnInit: - questinfo 7474, QTYPE_QUEST, 1; - setquestinfo_level 7474,1,14; - - // questinfo 7495, QTYPE_QUEST, 1;// officially disabled - // setquestinfo_req 7495,7475,1; - // setquestinfo_req 7495,7476,1; - // setquestinfo_req 7495,7477,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel <= 14 && !isbegin_quest(7474)" ); + // questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7495) && isbegin_quest(7475) == 1 && isbegin_quest(7476) == 1 && isbegin_quest(7477) == 1" );// officially disabled end; } @@ -1775,8 +1765,7 @@ izlude,179,75,3 script Airship#iz 4_BULLETIN_BOARD2,3,3,{ } OnInit: - questinfo 7475, QTYPE_QUEST, 0; - setquestinfo_req 7475,7474,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7475) && isbegin_quest(7474) == 1" ); end; OnTouch: @@ -1918,8 +1907,7 @@ izlude,207,167,3 script Arena#iz 4_BULLETIN_BOARD2,3,3,{ } OnInit: - questinfo 7476, QTYPE_QUEST, 0; - setquestinfo_req 7476,7474,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7476) && isbegin_quest(7474) == 1" ); end; OnTouch: @@ -2061,8 +2049,7 @@ izlude,45,94,3 script Bulletin Board#iz 4_BULLETIN_BOARD2,3,3,{ } OnInit: - questinfo 7477, QTYPE_QUEST, 0; - setquestinfo_req 7477,7474,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7477) && isbegin_quest(7474) == 1" ); end; OnTouch: @@ -2275,8 +2262,7 @@ iz_ac01,59,43,3 script Therapist#ac 4_M_6THPRIN1,{ } OnInit: - questinfo 7478, QTYPE_QUEST, 0; - setquestinfo_req 7478,4269,2; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7478) && isbegin_quest(4269) == 2" ); end; } @@ -2419,8 +2405,7 @@ izlude,140,249,7 script Academy Student#0 4_M_NOV_RUMIN,{ end; OnInit: - questinfo 7479, QTYPE_QUEST, 1; - setquestinfo_req 7479,7478,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7479) && isbegin_quest(7478) == 1" ); end; } @@ -2589,7 +2574,7 @@ izlude,140,260,3 script Instructor Argos#iz 4_M_LIEMAN,{ } OnInit: - questinfo 15001, QTYPE_QUEST, 0, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_NONE, "Class == Job_Novice && !isbegin_quest(15001)" ); end; } @@ -2800,7 +2785,7 @@ iz_ac01,100,39,5 script Academy Receptionist#1 4_F_01,{ } OnInit: - questinfo 4269, QTYPE_QUEST, 0, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_NONE, "Class == Job_Novice && !isbegin_quest(4269)" ); end; } @@ -3657,7 +3642,7 @@ izlude,115,181,5 script Shop Helper#iz 4_F_KHELLISIA,{ } OnInit: - questinfo 1237, QTYPE_QUEST, 0; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(1237)" ); end; } @@ -3843,7 +3828,7 @@ iz_ac01,53,74,3 script Attribute Expert#ac 1_M_WIZARD,{ } OnInit: - questinfo 2299, QTYPE_QUEST, 0; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(2299)" ); end; } @@ -4396,10 +4381,7 @@ iz_ac01,147,50,3 script Dacquoise#ac 4_COOK,{ } OnInit: - questinfo 14154, QTYPE_QUEST, 1, Job_Novice; - questinfo 14155, QTYPE_QUEST, 1, Job_Novice; - questinfo 14156, QTYPE_QUEST, 1, Job_Novice; - questinfo 14157, QTYPE_QUEST, 1, Job_Novice; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "Class == Job_Novice && (!isbegin_quest(14154) || !isbegin_quest(14155) || !isbegin_quest(14156) || !isbegin_quest(14157))" ); end; } @@ -4738,16 +4720,8 @@ L_Quest: } OnInit: - questinfo 11339, QTYPE_QUEST ,0 ,Job_Novice; - questinfo 11340, QTYPE_QUEST ,0 ,Job_Novice; - questinfo 11341, QTYPE_QUEST ,0 ,Job_Novice; - questinfo 11342, QTYPE_QUEST ,0 ,Job_Novice; - questinfo 11344, QTYPE_QUEST ,0 ,Job_Novice; - setquestinfo_req 11339,4269,2; - setquestinfo_req 11340,4269,2; - setquestinfo_req 11341,4269,2; - setquestinfo_req 11342,4269,2; - setquestinfo_req 11344,4269,2; + questinfo( QTYPE_QUEST, QMARK_NONE, + "Class == Job_Novice && isbegin_quest(4269) == 2 && (!isbegin_quest(11339) || !isbegin_quest(11340) || !isbegin_quest(11341) || !isbegin_quest(11342) || !isbegin_quest(11344))" ); end; } @@ -4907,7 +4881,7 @@ iz_ac01,45,80,5 script Adept Adventurer#ac 4_M_JOB_BLACKSMITH,{ } OnInit: - questinfo 2298, QTYPE_QUEST, 0; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(2298)" ); end; } @@ -9569,8 +9543,7 @@ gef_fild07,89,208,6 script Magician's Guild Guide#1 2_F_MAGICMASTER,{ close; OnInit: - questinfo 9265, QTYPE_QUEST, 1; - setquestinfo_req 9265,9264,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(9265) && isbegin_quest(9264) == 1" ); end; } @@ -9614,8 +9587,7 @@ geffen,43,123,6 script Magician's Guild Guide#2 2_F_MAGICMASTER,{ close; OnInit: - questinfo 9266, QTYPE_QUEST, 1; - setquestinfo_req 9266,9265,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(9266) && isbegin_quest(9265) == 1" ); end; } @@ -10805,12 +10777,9 @@ iz_ac02,52,136,3 script Guest Lecturer Mayssel#0 4_F_MAYSEL,{ } OnInit: - questinfo 7480, QTYPE_QUEST, 0, Job_Novice; - setquestinfo_req 7480,4269,2; - questinfo 7483, QTYPE_QUEST, 0; - setquestinfo_req 7483,7481,1,7482,1; - - // questinfo 7495, QTYPE_QUEST, 0;// officially disabled + questinfo( QTYPE_QUEST, QMARK_NONE, "Class == Job_Novice && !isbegin_quest(7480) && isbegin_quest(4269) == 2" ); + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7483) && isbegin_quest(7481) == 1 && isbegin_quest(7482) == 1" ); + // questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7495)" );// officially disabled // setquestinfo_req 7495,7484,2,7485,3; end; } @@ -11333,10 +11302,8 @@ iz_ac02,49,134,5 script Vicente#ac 4_M_HUMAN_02,{ } OnInit: - questinfo 7481, QTYPE_QUEST, 0; - setquestinfo_req 7481,7480,1; - questinfo 7484, QTYPE_QUEST, 0; - setquestinfo_req 7484,7483,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7481) && isbegin_quest(7480) == 1" ); + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7484) && isbegin_quest(7483) == 1" ); end; } @@ -11773,10 +11740,8 @@ iz_ac02,55,134,3 script Verkhasel#ac 4_M_GUILLOTINE,{ } OnInit: - questinfo 7482, QTYPE_QUEST, 0; - setquestinfo_req 7482,7480,1; - questinfo 7485, QTYPE_QUEST, 0; - setquestinfo_req 7485,7483,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7482) && isbegin_quest(7480) == 1" ); + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7485) && isbegin_quest(7483) == 1" ); end; } @@ -11944,8 +11909,7 @@ iz_ac02,62,139,3 script Lumin#ac 4_M_NOV_RUMIN,{ } OnInit: - questinfo 7487, QTYPE_QUEST, 0; - setquestinfo_req 7487,7485,1; + questinfo( QTYPE_QUEST, QMARK_NONE, "!isbegin_quest(7487) && isbegin_quest(7485) == 1" ); end; } @@ -12810,8 +12774,7 @@ izlude,153,126,1 script Refinery Owner Han#iz 4_M_02,{ } OnInit: - questinfo 5153, QTYPE_QUEST, 1; - setquestinfo_level 5153,1,20; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel <= 20 && !isbegin_quest(5153)" ); end; } @@ -13950,8 +13913,7 @@ izlude,96,125,7 script Enchanter Mounds#iz 4_CAT_SAILOR2,{ } OnInit: - questinfo 5157, QTYPE_QUEST, 1; - setquestinfo_level 5157,1,20; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel <= 20 && !isbegin_quest(5157)" ); end; } diff --git a/npc/re/merchants/eden_market.txt b/npc/re/merchants/eden_market.txt new file mode 100644 index 00000000000..f81971f7765 --- /dev/null +++ b/npc/re/merchants/eden_market.txt @@ -0,0 +1,1956 @@ +//===== rAthena Script ======================================= +//= Paradise Group Market +//===== By: ================================================== +//= Anity99 +//===== Current Version: ===================================== +//= 1.0.2 +//===== Compatible With: ===================================== +//= rAthena Project +//===== Description: ========================================= +//= The Para Market is an NPC vending system in which certain monster-drop +//= items are available from NPCs at a high price. Items are only available +//= from designated Para Market NPCs. The Para Market is open all day and +//= all week, however there are certain NPCs that are only available on +//= the weekends. Items sold in the Para Market are sold in limited +//= quantities for the entire server. It is unknown how often they restock +//= their wares. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Nyalin] +//= 1.0.1 Convert to Hercules [Ridley8819] +//= 1.0.2 Convert to rAthena [Anity99] +//= 1.0.3 Fix typos and update marketshop [Anity99] +//============================================================ + +// $event_paramk, 0 // Holiday Wednesday +// $event_paramk, 1 // Monday, Tuesday, Thursday, Friday, Saturday, Sunday +// $event_paramk, 2 // Friday, Saturday, Sunday +// $event_paramk, 3 // Saturday, Sunday +// $event_paramk, 4 // Late Saturday, Sunday + +function script F_CoolDown { + if (@cd_marketshop + getarg(0) > gettimetick(2)) + end; + @cd_marketshop = gettimetick(2); + return; +} + +// Shop NPC +// Limited +- marketshop para_coin10 FAKE_NPC,6304:500000:10,6080:100000:10,6081:300000:10,6380:1000000:1000,6004:100000:1 + +- marketshop para_hei10 FAKE_NPC,6608:150000:1,6607:20000:1,6755:200000:1,7642:10000:1,22687:200000:1,23016:1000000:1 + +- marketshop para_key10 FAKE_NPC,7026:100000:10,7027:100000:10 // todo + +- marketshop para_wp00 FAKE_NPC,1181:10000000:1 + +- marketshop para_arm10 FAKE_NPC,5007:2000000:1 + +- marketshop para_ptn00 FAKE_NPC,678:80000:999,12016:50000:9999,525:100000:1000,12422:40000:100,12423:50000:100,12425:40000:100,12426:50000:100 + +- marketshop para_ptn10 FAKE_NPC,505:40000:100,12679:100000:500,12676:30000:500,12680:50000:100 + +- marketshop para_itm00 FAKE_NPC,12106:1500000:100,12107:500000:100,616:2500000:100,12194:200000:100 + +- marketshop para_itm10 FAKE_NPC,12008:5000:99999,12009:5000:99999,12012:5000:100,12010:5000:100,12011:5000:100,12013:20000:100,12014:80000:100,7931:5000:100 + +- marketshop para_seed10 FAKE_NPC,12290:5000:100,12376:5000:100,12291:10000:100,12377:10000:100,576:2000:100,587:2000:100,526:10000:100,607:70000:20,608:50000:20 + +- marketshop para_mora10 FAKE_NPC,11526:5000:100,11525:5000:1000,11520:50000:100,12574:20000:100 + +- marketshop para_ref10 FAKE_NPC,998:10000:500,1003:10000:500,1002:10000:500,999:10000:500 + +- marketshop para_ref20 FAKE_NPC,984:200000:10,985:200000:100,987:240000:1,988:600000:1,989:1200000:1 + +- marketshop para_jew10 FAKE_NPC,969:100000:20,7289:50000:20,7290:50000:20,7291:50000:20,7292:50000:20,7293:50000:20,7294:50000:20,7295:50000:20,7296:50000:20,7297:50000:20 + +- marketshop para_alc10 FAKE_NPC,971:20000:20,972:12000:20,970:12000:20:7136:7000:20,7135:18000:20 + +- marketshop para_alc20 FAKE_NPC,1061:3000:1000,905:1000:1000,1059:1000:1000,7033:1000:1000,929:4000:1000 + +- marketshop para_alc30 FAKE_NPC,1000:10000:100,1001:10000:100,990:10000:100,991:10000:100,992:10000:100,993:10000:100 + +- marketshop para_fod10 FAKE_NPC,6252:40000:100,6253:8000:100,6254:30000:100,6256:15000:100,6257:15000:100,6259:15000:100,6260:10000:100,22658:80000:50,22569:100000:50 + +- marketshop para_mag10 FAKE_NPC,12108:20000:99999,717:1500:99999,715:4500:99999,716:4500:99999,14512:100000:100,14513:100000:100,14514:100000:100,12737:500:99999,12734:1500:99999,12738:2000:100,12735:3000:50,12736:10000:10,6360:200:99999,6363:200:99999,6361:200:99999,6362:200:99999 + +- marketshop para_mag11 FAKE_NPC,717:1500:99999,12737:500:99999,12734:1500:99999,6360:200:99999,6363:200:99999,6361:200:99999,6362:200:99999 + +- marketshop para_mag20 FAKE_NPC,12119:8000:100,12121:8000:100,12120:5000:100,12118:15000:100 + +- marketshop para_plt01 FAKE_NPC,709:10000:50,7932:4000:99999,7933:4000:99999,7934:4000:99999,7935:4000:99999,7936:4000:99999,7937:4000:99999 + +// Update Market Shop +- script Update_Shop -1,{ +OnInit: +OnClock0000: + npcshopupdate "para_coin10",6304,0,1; + npcshopupdate "para_coin10",6080,0,1; + npcshopupdate "para_coin10",6081,0,1; + npcshopupdate "para_coin10",6380,0,1; + npcshopupdate "para_coin10",6004,0,1; + npcshopupdate "para_hei10",6608,0,1; + npcshopupdate "para_hei10",6607,0,1; + npcshopupdate "para_hei10",6755,0,1; + npcshopupdate "para_hei10",7642,0,1; + npcshopupdate "para_hei10",22687,0,1; + npcshopupdate "para_hei10",23016,0,1; + npcshopupdate "para_key10",7026,10; + npcshopupdate "para_key10",7027,10; + npcshopupdate "para_wp00",1181,0,1; + npcshopupdate "para_arm10",5007,0,1; + npcshopupdate "para_ptn00",678,0,999; + npcshopupdate "para_ptn00",12016,0,9999; + npcshopupdate "para_ptn00",525,0,1000; + npcshopupdate "para_ptn00",12422,0,100; + npcshopupdate "para_ptn00",12423,0,100; + npcshopupdate "para_ptn00",12425,0,100; + npcshopupdate "para_ptn00",12426,0,100; + npcshopupdate "para_ptn10",505,0,100; + npcshopupdate "para_ptn10",12679,0,500; + npcshopupdate "para_ptn10",12676,0,500; + npcshopupdate "para_ptn10",12680,0,100; + npcshopupdate "para_itm00",12106,0,100; + npcshopupdate "para_itm00",12107,0,100; + npcshopupdate "para_itm00",616,0,100; + npcshopupdate "para_itm00",12194,0,100; + npcshopupdate "para_itm10",12008,0,99999; + npcshopupdate "para_itm10",12009,0,99999; + npcshopupdate "para_itm10",12012,0,100; + npcshopupdate "para_itm10",12010,0,100; + npcshopupdate "para_itm10",12011,0,100; + npcshopupdate "para_itm10",12013,0,100; + npcshopupdate "para_itm10",12014,0,100; + npcshopupdate "para_itm10",7931,0,100; + npcshopupdate "para_seed10",12290,0,100; + npcshopupdate "para_seed10",12376,0,100; + npcshopupdate "para_seed10",12291,0,100; + npcshopupdate "para_seed10",12377,0,100; + npcshopupdate "para_seed10",576,0,100; + npcshopupdate "para_seed10",587,0,100; + npcshopupdate "para_seed10",526,0,100; + npcshopupdate "para_seed10",607,0,20; + npcshopupdate "para_seed10",608,0,20; + npcshopupdate "para_mora10",11526,0,100; + npcshopupdate "para_mora10",11525,0,1000; + npcshopupdate "para_mora10",11520,0,100; + npcshopupdate "para_mora10",12574,0,100; + npcshopupdate "para_ref10",998,0,500; + npcshopupdate "para_ref10",1003,0,500; + npcshopupdate "para_ref10",1002,0,500; + npcshopupdate "para_ref10",999,0,500; + npcshopupdate "para_ref20",984,0,10; + npcshopupdate "para_ref20",985,0,100; + npcshopupdate "para_ref20",987,0,1; + npcshopupdate "para_ref20",988,0,1; + npcshopupdate "para_ref20",989,0,1; + npcshopupdate "para_jew10",969,0,20; + npcshopupdate "para_jew10",7289,0,20; + npcshopupdate "para_jew10",7290,0,20; + npcshopupdate "para_jew10",7291,0,20; + npcshopupdate "para_jew10",7292,0,20; + npcshopupdate "para_jew10",7293,0,20; + npcshopupdate "para_jew10",7294,0,20; + npcshopupdate "para_jew10",7295,0,20; + npcshopupdate "para_jew10",7296,0,20; + npcshopupdate "para_jew10",7297,0,20; + npcshopupdate "para_alc10",971,0,20; + npcshopupdate "para_alc10",972,0,20; + npcshopupdate "para_alc10",970,0,20; + npcshopupdate "para_alc10",7136,0,20; + npcshopupdate "para_alc10",7135,0,20; + npcshopupdate "para_alc20",1061,0,1000; + npcshopupdate "para_alc20",905,0,1000; + npcshopupdate "para_alc20",1059,0,1000; + npcshopupdate "para_alc20",7033,0,1000; + npcshopupdate "para_alc20",929,0,1000; + npcshopupdate "para_alc30",1000,0,100; + npcshopupdate "para_alc30",1001,0,100; + npcshopupdate "para_alc30",990,0,100; + npcshopupdate "para_alc30",991,0,100; + npcshopupdate "para_alc30",992,0,100; + npcshopupdate "para_alc30",993,0,100; + npcshopupdate "para_fod10",6252,0,100; + npcshopupdate "para_fod10",6253,0,100; + npcshopupdate "para_fod10",6254,0,100; + npcshopupdate "para_fod10",6256,0,100; + npcshopupdate "para_fod10",6257,0,100; + npcshopupdate "para_fod10",6259,0,100; + npcshopupdate "para_fod10",6260,0,100; + npcshopupdate "para_fod10",22658,0,50; + npcshopupdate "para_fod10",22659,0,50; + npcshopupdate "para_mag10",12108,0,99999; + npcshopupdate "para_mag10",717,0,99999; + npcshopupdate "para_mag10",715,0,99999; + npcshopupdate "para_mag10",716,0,99999; + npcshopupdate "para_mag10",14512,0,100; + npcshopupdate "para_mag10",14513,0,100; + npcshopupdate "para_mag10",14514,0,100; + npcshopupdate "para_mag10",12737,0,99999; + npcshopupdate "para_mag10",12734,0,99999; + npcshopupdate "para_mag10",12738,0,100; + npcshopupdate "para_mag10",12735,0,50; + npcshopupdate "para_mag10",12736,0,10; + npcshopupdate "para_mag10",6360,0,99999; + npcshopupdate "para_mag10",6363,0,99999; + npcshopupdate "para_mag10",6361,0,99999; + npcshopupdate "para_mag10",6362,0,99999; + npcshopupdate "para_mag11",717,0,99999; + npcshopupdate "para_mag11",12737,0,99999; + npcshopupdate "para_mag11",12734,0,99999; + npcshopupdate "para_mag11",6360,0,99999; + npcshopupdate "para_mag11",6363,0,99999; + npcshopupdate "para_mag11",6361,0,99999; + npcshopupdate "para_mag11",6362,0,99999; + npcshopupdate "para_mag20",12119,0,100; + npcshopupdate "para_mag20",12121,0,100; + npcshopupdate "para_mag20",12120,0,100; + npcshopupdate "para_mag20",12118,0,100; + npcshopupdate "para_plt01",709,0,50; + npcshopupdate "para_plt01",7932,0,99999; + npcshopupdate "para_plt01",7933,0,99999; + npcshopupdate "para_plt01",7934,0,99999; + npcshopupdate "para_plt01",7935,0,99999; + npcshopupdate "para_plt01",7936,0,99999; + npcshopupdate "para_plt01",7937,0,99999; + end; +} + +// General Sales +- shop para_wp01 FAKE_NPC,1501:-1,1504:-1,1507:-1,1510:-1,1513:-1,1519:-1,1516:-1,1522:-1,1601:-1,1604:-1,1607:-1,1610:-1,1617:-1,1619:-1,1801:-1,1803:-1,1805:-1,1807:-1,1811:-1,1809:-1 + +- shop para_wp02 FAKE_NPC,1101:-1,1104:-1,1107:-1,1110:-1,1113:-1,1122:-1,1119:-1,1123:-1,1129:-1,1116:-1,1151:-1,1154:-1,1157:-1,1160:-1,1146:-1 + +- shop para_wp03 FAKE_NPC,1701:-1,1704:-1,1707:-1,1710:-1,1713:-1,1714:-1,1718:-1,1721:-1,1901:-1,1903:-1,1905:-1,1950:-1,1952:-1,1954:-1 + +- shop para_wp04 FAKE_NPC,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1219:-1,1222:-1,13003:-1,1245:-1,1247:-1,1248:-1,1249:-1,13000:-1,1250:-1,1252:-1,1254:-1 + +- shop para_wp05 FAKE_NPC,1301:-1,1351:-1,1354:-1,1357:-1,1360:-1,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1 + +- shop para_arm01 FAKE_NPC,2328:-1,2314:-1,2312:-1,2316:-1,2341:-1,2340:-1,2411:-1,2228:-1,2230:-1 + +- shop para_arm02 FAKE_NPC,2101:-1,2103:-1,2105:-1,2107:-1 + +- shop para_hat01 FAKE_NPC,2301:-1,2303:-1,2305:-1,2307:-1,2309:-1,2335:-1,2323:-1,2325:-1,2321:-1,2332:-1,2501:-1,2503:-1,2505:-1,2401:-1,2403:-1,2405:-1 + +- shop para_hat02 FAKE_NPC,2239:-1,2203:-1,2201:-1,2243:-1,2242:-1,2205:-1,2220:-1,2226:-1,2222:-1,5114:-1,2216:-1,5092:-1,2218:-1,2211:-1,2212:-1,2208:-1,2232:-1 + +- shop para_ptn01 FAKE_NPC,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,657:-1 + +- shop para_itm01 FAKE_NPC,7940:-1,1065:-1 + +- shop para_seed01 FAKE_NPC,522:-1 + +- shop para_mora01 FAKE_NPC,11522:-1,11523:-1,11524:-1,11519:-1 + +- shop para_fod01 FAKE_NPC,7482:-1,577:-1,580:-1,7457:-1,581:-1,7453:-1,7455:-1,7454:-1,7456:-1,7452:-1,579:-1 + +- shop para_unm01 FAKE_NPC,537:-1,643:-1,10013:-1,10014:-1,6113:-1,6114:-1,6115:-1,6110:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,6095:-1,7824:-1,6097:-1,6107:-1,6105:-1,6099:-1,25231:1000,25232:1000,25233:1000 + + +// setting map-variable +- script MV_Eden Market Group FAKE_NPC,{ +OnInit: +OnClock0000: + switch( gettime(DT_DAYOFWEEK) ) { + case WEDNESDAY: + $event_paramk = 0; + break; + case FRIDAY: + $event_paramk = 2; + break; + case SATURDAY: + if (gettime(DT_HOUR) > 21) + $event_paramk = 4; + else + $event_paramk = 3; + break; + case THURSDAY: + default: + $event_paramk = 1; + break; + } + end; + +OnSat2200: + $event_paramk = 4; + end; +} + +// Eden Market Group Hustler +moc_para01,106,38,4 script Market Group Hustler#ent 4_M_YOYOROGUE,{ + mes "[Hustler]"; + mes "Hey, adventurer."; + mes "I can take you to somewhere nice. Are you interested?"; + next; + switch (select("Move to Eden Market Group!:About Eden Market Group.:Cancel.")) { + case 1: + mes "[Hustler]"; + mes "Moving~!"; + close2; + warp "paramk",97,17; + end; + case 2: + mes "[Hustler]"; + mes "Hahaha... The Eden Market Group is a place where merchants gather around to sell various items."; + mes "And I don't mean common stuff like Jellopy, which you can acquire anywhere. Here, we only deal in real goods."; + next; + mes "[Hustler]"; + mes "Simple ingredients, precious stones, rare items from dungeons and excavation sites, and exotic artifacts that hail from another dimension..."; + mes "Everything you could ever want!"; + next; + select("You mean, this is a black market?!"); + mes "[Hustler]"; + mes "Ah... I wouldn't say that."; + mes "This marketplace is, say, technically legal..."; + mes "Keep in mind that most special products are of ^4d4dfflimited quantity^000000. If you are late, they might be sold out."; + next; + mes "[Hustler]"; + mes "Don't expect discounts for most limited quantity items."; + mes "You have to pay the full price."; + next; + mes "[Hustler]"; + mes "Adventurers sometimes come by to sell what they have found on their expeditions."; + mes "But you have to see for yourself!"; + next; + mes "[Hustler]"; + mes "Keep in mind that most stores are closed one day out of the week; ^4d4dffmost stores are not open on Wednesdays^000000."; + mes "Though, not all of them close on Wednesdays; majority of them are still open."; + next; + mes "[Hustler]"; + mes "More special items are sold on weekends."; + mes "I have even seen an Izidor709 being sold~"; + mes "It was amazing."; + mes "Of course it was super expensive and only a handful were up for sale."; + next; + mes "[Hustler]"; + mes "How about it? Interested?"; + mes "Isn't it worth paying a visit?"; + mes "Hahahahaha!"; + close; + case 3: + mes "[Hustler]"; + mes "Come by anytime, if you want to go to the Eden Market Group!"; + close; + } +} + +// Eden Market Group Guide +paramk,101,22,3 script Market Group Guide#info 4_F_ZONDAGIRL,{ + mes "[Guide]"; + mes "Hello. Welcome to Eden Market Group, the official marketplace run by the continental merchant coalition, supported by the Eden Group."; + next; + switch (select("About when we're open.:About Special Products.:About Eden Market Group.:Cancel.")) { + case 1: + mes "[Guide]"; + mes "Eden Market Group is a marketplace that contains many different shops."; + next; + mes "[Guide]"; + mes "Wednesday is an official holiday designated by the marketplace; most shops are closed on this day."; + next; + mes "[Guide]"; + mes "However, depending on the owner's wishes, and the type of items being offered, some shops remain partially open even on the holiday."; + next; + mes "[Guide]"; + mes "And, some shops offer special items on certain days of the week. Keep that in mind."; + close; + case 2: + mes "[Guide]"; + mes "Some shops will sell different items on weekends, certain days of the week, or even during certain hours; these items are different than their usual daily items."; + next; + mes "[Guide]"; + mes "'Wonderful Friends' and 'Strong Friends' will sell one rare item each weekend."; + mes "'Miner's Coalition' will sell the anvil for blacksmithing only on weekends."; + next; + mes "[Guide]"; + mes "I cannot tell you what items individual shops sell, because they are all different."; + mes "Why don't you find out for yourself by visiting often?"; + close; + case 3: + mes "[Guide]"; + mes "There are many people with the soul of a merchant that would like to sell their items to people in need of such."; + mes "Eden Market Group has designated a place for such people to buy and sell."; + next; + mes "[Guide]"; + mes "We provide the means for goods that would otherwise have been contraband to be bought and sold in a fair and transparent manner, working in conjunction with the merchant coalitions and adventurers."; + next; + mes "[Guide]"; + mes "Some people mutter that Eden Market Group is a black market... Haha, what a silly idea..."; + mes "We are merely a merchant coalition."; + next; + mes "[Guide]"; + mes "A portion of our profits go towards running the Eden Group, an adventurer's guild."; + mes "You can sell the loot from your adventures here, and the profits we make go towards providing services that benefit you. We are killing two birds with one stone, really."; + next; + mes "[Guide]"; + mes "Keep in mind that limited quantity items will never go on sale!"; + close; + case 4: + mes "[Guide]"; + mes "Have a good time!"; + close; + } + +OnTimer60000: + npctalk "Welcome. This is the Eden Market Group."; + +OnInit: + initnpctimer; + end; +} + +// Guards +paramk,103,17,3 script Market Guard#1 4_M_YOUNGKNIGHT,{ + callfunc("F_CoolDown", 5); + switch (atoi(strnpcinfo(2))) { + default: + npctalk "Welcome."; + break; + case 3: + npctalk "Welcome to the Eden Market Group."; + break; + case 4: + npctalk "How are you? This is the Eden Market Group."; + break; + case 5: + npctalk "Thank you for shopping at the Eden Market Group."; + break; + case 6: + npctalk "Welcome. The Eden Market Group welcomes you."; + break; + } + end; +} + +// Guard Duplicates +paramk,92,17,6 duplicate(Market Guard#1) Market Guard#2 4_M_YOUNGKNIGHT +paramk,53,47,3 duplicate(Market Guard#1) Market Guard#3 4_M_YOUNGKNIGHT +paramk,142,48,3 duplicate(Market Guard#1) Market Guard#4 4_M_YOUNGKNIGHT +paramk,142,67,3 duplicate(Market Guard#1) Market Guard#5 4_M_YOUNGKNIGHT +paramk,53,67,3 duplicate(Market Guard#1) Market Guard#6 4_M_YOUNGKNIGHT + + +// Center-North ConversationNPC +// A wise customer +paramk,78,44,3 script A wise customer#gst01 4_TOWER_14,6,6,{ +OnTouch: + callfunc("F_CoolDown", 4); + npctalk "I am waiting for the weapon that will be sold on the weekends. I heard that if I come by on the right day, both the red version and the blue version would be offered."; + end; +} + +// A dining customer +paramk,119,80,3 script A dining customer#gst02 4_M_CHN8GUEK,6,6,{ +OnTouch: + callfunc("F_CoolDown", 4); + npctalk "So spicy! I don't care if this is the 'taste of our homeland' or whatever, it's far too spicy! Aaaaaaahh!"; + end; +} + +// Customer +paramk,106,61,3 script Customer#gst03 4_TOWER_04,6,6,{ +OnTouch: + callfunc("F_CoolDown", 4); + npctalk "I come here when I need a break. I love this place. Comfortable, and lots of interesting items around."; + end; +} + +// Window-shopper +paramk,77,60,3 script Window-shopper#gst04 4_TOWER_02,6,6,{ +OnTouch: + callfunc("F_CoolDown", 4); + npctalk "I wonder if it's really okay for me to window-shop all day without buying anything..."; + end; +} + +// Cassie +paramk,113,56,3 script Cassie#gst05 1_F_PUBGIRL,6,6,{ + npctalk "Welcome to the Eden Market Group~ You want a fancy drink?"; + mes "[Cassie]"; + mes "Do you wish to buy a drink?"; + next; + switch (select("Tropical Sograt.:Vermilion on the Beach.:No.")) { + case 1: + .@item = 12112; + break; + case 2: + .@item = 12113; + break; + case 3: + mes "[Cassie]"; + mes "Have a good time."; + close; + } + if (Zeny < 800) { + mes "[Cassie]"; + mes "A drink costs 800z."; + close; + } + mes "[Cassie]"; + mes "Enjoy it"; + Zeny -= 800; + getitem(.@item, 1); + close; + +OnTouch: + callfunc("F_CoolDown", 4); + npctalk "Welcome to the Eden Market Group. Do you want a fancy drink?"; + end; +} + +// Leria +paramk,74,15,0 script Leria#coin 4_M_BIBI,{ + if ($event_paramk > 0) { + mes "[Leria]"; + mes "I sell coins that I have collected from alternate dimensions."; + mes "Purchase whatever catches your eye."; + mes "Be warned: they are rather pricey. I had to go through immense trouble in order to procure them."; + next; + if (select("See what is up for sale.:Cancel.") == 1) { + mes "[Leria]"; + mes "I may not have any stock left since I sell only a handful of items."; + close2; + callshop "para_coin10",1; + end; + } + mes "[Leria]"; + mes "Since I scour the world to find the items that I sell, the price is high..."; + mes "But there are those who buy them anyway."; + next; + mes "[Leria]"; + mes "Well, those who need them must pay the price. Isn't that so?"; + close; + } else { // holiday + mes "[Leria]"; + mes "Ah... Today is the marketplace holiday."; + mes "Come back tomorrow if you need coins."; + close; + } +} + +// Heimhunter +paramk,71,15,3 script Heimhunter#hei 4_GEFFEN_11,{ + if ($event_paramk > 0) { + mes "[Heimhunter]"; + mes "Ah, are you the customer that wants 'that' from the ancient castle?"; + mes "I can only get one per day, but I will sell it."; + next; + if (select("See the item.:Cancel.") == 1) { + mes "[Heimhunter]"; + mes "There's only one.."; + mes "It might have been bought by someone else already."; + mes "Please understand."; + close2; + callshop "para_hei10",1; + end; + } + mes "[Heimhunter]"; + mes "As you wish."; + close; + } else { // holiday + mes "[Heimhunter]"; + mes "Today is the official market holiday."; + mes "I will take a break, too."; + close; + } +} + +// Zephet +paramk,68,15,0 script Zephet#key 4_M_HUMERCHANT,{ + if ($event_paramk > 3) { + mes "[Zephet]"; + mes "Do you need keys?"; + mes "I may have some extra keys for the clock tower?.."; + next; + if (select("Buy keys.:Cancel.") == 1) { + mes "[Zephet]"; + mes "I gather and sell the keys for the clock tower all by myself..."; + mes "Even though I scavenge for them all week, there's not a lot available."; + mes "They may be sold out already."; + close2; + callshop "para_key10",1; + end; + } + mes "[Zephet]"; + mes "You have no need of keys?"; + mes "Remember that I sell keys here only on weekends."; + mes "Just for your information."; + close; + } else { // holiday + mes "[Zephet]"; + mes "I don't have enough keys yet."; + mes "Come back after Saturday afternoon."; + close; + } +} + + +// Strong Friends - Weapon shop +// Sign +paramk,72,33,0 script [Strong Friends]#wp00 HIDDEN_NPC,{ + mes " == Strong Friends == "; + mes "From common weapons to priceless jewel-encrusted swords!"; + mes "Every weapon that you could ever want is here for your perusal."; + close; +} + +// Miffy +paramk,65,30,3 script Miffy#wp01 4_F_LGTGIRL,{ + if ($event_paramk > 1) { + mes "[Miffy]"; + mes "A limited collection, only available on fiery Friday, Saturday and Sunday!"; + mes "We offer an assortment of ancient weapons that adventurers have retrieved from dungeons!"; + next; + if (select("Look at the items.:Cancel.") == 1) { + mes "[Miffy]"; + mes "Let us show you the 'Strong Friends' special collection."; + mes "If you open the chest and there's nothing there, "; + mes "That means the weapon has already been sold."; + mes "The spoils go toward people with quick reflexes."; + close2; + callshop "para_wp00",1; + end; + } + mes "[Miffy]"; + mes "Special weapons sold on weekends!"; + mes "Come see us anytime!"; + close; + } else { // Wednesday Holiday + mes "[Miffy]"; + mes "Hello. This is the weapon shop 'Strong Friends'."; + mes "We sell weapons that adventurers retrieve from dungeons and in battle, "; + mes "roving over the continent."; + next; + mes "[Miffy]"; + mes "^000000Friday-Saturday-Sunday, a limited weapon collection offered for 3 consecutive days!^000000"; + mes "Come see us anytime!"; + close; + } +} + +// Nelsha +paramk,70,31,3 script Nelsha#wp02 4_M_SITDOWN,{ + mes "[Nelsha]"; + mes "Hello."; + mes "This is 'Strong Friends', where a range of basic weapons are available for your perusal."; + next; + setarray .@shopname$[0], "para_wp01", "para_wp02", "para_wp03", "para_wp04", "para_wp05"; + setarray .@shopdesc$[0], "Maces, Rods and Knuckles", "One-Handed Swords and Two-Handed Sword", "Bows, Innstruments and Whips", "Daggers and Katars", "Axes and Spears"; + .@s = select("Maces, Rods, Knuckles:One-Handed Swords, Two-Handed Sword:Bows, Innstruments, Whips:Daggers, Katars:Axes, Spears:Cancel") - 1; + if (.@s == 5) { + mes "[Nelsha]"; + mes "Thank you for shopping."; + close; + } + mes "[Nelsha]"; + mes "I will show you " + .@shopdesc$[.@s]; + close2; + callshop(.@shopname$[.@s], 1); + end; +} + + +// Reliable Friends +// Sign +paramk,72,33,3 script [Reliable Friends]#arm00 HIDDEN_NPC,{ + mes " == Reliable Friends == "; + mes "Do you need shields, armor, and sturdy helmets?"; + mes "You can rely on Reliable Friends!"; + close; +} + +// Coco +paramk,78,31,3 script Coco#arm01 4_F_SITDOWN,{ + mes "[Coco]"; + mes "Do you need sturdy armors to protect your frail body?"; + mes "Or shields, to block the blows of your enemies?"; + next; + switch (select("Look at armors.:Look at shields.:Cancel.")) { + case 1: + mes "[Coco]"; + mes "Cheap and sturdy armor."; + close2; + callshop "para_arm01",1; + end; + case 2: + mes "[Coco]"; + mes "May, or may not, block blows made with reasonable force..."; + close2; + callshop "para_arm02",1; + end; + case 3: + mes "[Coco]"; + mes "Come again."; + close; + } +} + + +// Handsome Friends +// Sign +paramk,84,33,3 script [Handsome Friends]#cst00 HIDDEN_NPC,{ + mes " == Handsome Friends == "; + mes "A clothier for someone who loves to dress up!"; + close; +} + +// Minho Doh +paramk,90,31,3 script Minho Doh#cst01 4W_M_01,{ + if ($event_paramk > 2) { + mes "[Minho Doh]"; + mes "Limited item collection, only available on weekends!"; + mes "Only one item. If you want it, purchase quickly! You know the drill."; + next; + if (select("See the collection.:Cancel.") == 1) { + mes "[Minho Doh]"; + mes "Here is our special collection!"; + mes "If all the chests are empty, that means you are too late!"; + close2; + callshop "para_arm10",1; + end; + } + mes "[Minho Doh]"; + mes "See you again!"; + mes "Hahahahaha!"; + close; + } else { // holiday + mes "[Minho Doh]"; + mes "Do you want to peruse our special collection of items?"; + mes "But the collection wouldn't be special if you can see them every day, right?"; + next; + mes "[Minho Doh]"; + mes "Come on weekends if you want to see our special collection."; + mes "We sell ONE item per day, on ^000000 Saturdays and Sundays^000000."; + next; + mes "[Minho Doh]"; + mes "Hahahaha.. Aren't you looking forward to the special items soon to be revealed? Muhahahahaha!"; + close; + } +} + +// Lapelt +paramk,94,32,3 script Lapelt#hat01 4_M_LGTMAN,{ + mes "[Lapelt]"; + mes "Welcome! This is 'Handsome Friends', a clothier that will make you fashionable!"; + mes "We sell common clothing and hats even on holidays."; + next; + switch (select("Clothes and shoes.:Hats and glasses.:Cancel.")) { + case 1: + mes "[Lapelt]"; + mes "Don't look down on the items just because they are cheap."; + mes "They are well-made items from all over the world."; + close2; + callshop "para_hat01",1; + end; + case 2: + mes "[Lapelt]"; + mes "Fashion comes from matching accessories!"; + mes "With matching items and a good hat, you can stand on the apex of fashion!"; + close2; + callshop "para_hat02",1; + end; + case 3: + mes "[Lapelt]"; + mes "Goodbye."; + close; + } +} + + +// Meds for Pharmacists +// Sign +paramk,96,33,3 script [Meds for Pharma]#ptn00 HIDDEN_NPC,{ + mes " == Meds for Pharmacists == "; + mes "We sell assorted potions."; + mes ""; + mes "[Days of Operation]"; + mes "Special potions - Mon, Tue, Thu, Fri, Sat"; + mes "Common potions - every day"; + close; +} + +// Head Pharmacist +paramk,100,30,3 script Head Pharmacist#ptn01 4_F_SCIENCE,{ + if ($event_paramk > 0) { + mes "[Head Pharmacist]"; + mes "Potent poisons that will knock you out with one sip, meds that will protect your body and spirit, meds that will temporarily grant supernatural speed."; + mes "We have them all."; + mes "'Meds for Pharmacists', here to supply you with the medication you need."; + next; + if (select("Meds, please!:Cancel.") == 1) { + mes "[Head Pharmacist]"; + mes "This is what we currently have left."; + mes "If there's nothing, it means that we are sold out."; + mes "We do not brew potions in large batches. Please understand."; + close2; + callshop "para_ptn00",1; + end; + } + mes "[Head Pharmacist]"; + mes "Come back if you have questions about the meds."; + close; + } else { // holiday + mes "[Head Pharmacist]"; + mes "Oh, you need potions?"; + mes "We do not sell common meds. We stick to special potions."; + mes "And today is a holiday. We are currently brewing new potions."; + next; + mes "[Head Pharmacist]"; + mes "I will show you a collection of our superior potions if you come back tomorrow, okay?"; + mes "Hehe~"; + close; + } +} + +// Johanna +paramk,106,32,3 script Johanna#ptn02 4_M_BRZ_JACI,{ + mes "[Johanna]"; + mes "Welcome to 'Meds for Pharmacists'."; + mes "What do you need?"; + next; + switch (select("Look at items.:Sell items.:Days of Operation.:Cancel.")) { + case 1: + mes "[Johanna]"; + mes "Healing potions here."; + mes "Good potions sold at an affordable price."; + close2; + callshop "para_ptn01",1; + end; + case 2: + mes "[Johanna]"; + mes "I will take them off your hands and pay you a hefty price."; + mes "Don't tell other people I paid so much."; + close2; + callshop "para_ptn01",2; + end; + case 3: + mes "[Johanna]"; + mes "Most shops in the Eden Market Group do not operate on holidays."; + mes "Some shops remain open on holidays, however."; + next; + mes "[Johanna]"; + mes "Our pharmacy offers common healing potions even on holidays, though not the special potions."; + mes "Take advantage of our services!"; + close; + case 4: + mes "[Johanna]"; + mes "Goodbye."; + close; + } +} + +// Wyn, independent contractor || Name is too long +paramk,106,27,3 script Brewer Wyn#ptn03 4_M_ALCHE_A,{ + if ($event_paramk > 0) { + mes "[Wyn]"; + mes "..Hello..."; + mes "This is 'For Meds Pharmacists'...."; + mes "Do you need Blue Potions...?"; + mes "I make 100 of them each day... yes... just me."; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Wyn]"; + mes "Uhhh.. Not sure we have any left."; + mes "A moment please. If not, we are sold out.."; + mes "Aaaaa... Do I have to make more."; + mes "Aaa... The stench of herbs"; + mes "Feel like throwing up... Aaa.."; + close2; + callshop "para_ptn10",1; + end; + } + mes "[Wyn]"; + mes "Thank you.. Come again."; + close; + } else { // holiday + mes "[Wyn]"; + mes "Uhhh... Headache.."; + mes "I started working to pay off my college tuition..."; + mes "I feel like throwing up. Surrounded by the smell of herbs all week."; + mes "Blerch-!"; + close; + } +} + + +// We-Have-Everything +// sign +paramk,108,33,3 script [WeHaveEverything]#itm00 HIDDEN_NPC,{ + mes " == We-Have-Everything == "; + mes "Elemental quivers, Traps, A DIY kit for poisons."; + mes "Available always."; + mes ""; + mes "[Days of Operation]"; + mes "Wed - holiday!"; + mes "Fri, Sat, Sun - Event Sales!"; + close; +} + +// Is-this-your-lucky-day Napeed#itm01 +paramk,114,30,3 script Lucky Day Napeed#itm01 4_F_03,{ + if ($event_paramk > 0) { + mes "[Napeed]"; + mes "Thank you for visiting during the weekend sale."; + mes "100 random item packages, sold on weekends only! Only one hundred available!"; + mes "Do you have anything you want?"; + next; + if (select("Look at items.:Cancel.")) { + mes "[Napeed]"; + mes "The popular choices are, 'Box of accessories', 'Gift-wrapped Mask', 'Worn Album', 'Presents to take to your Hometown'..."; + mes "If you do not see anything, it means we are sold out. Come back on next weekend~"; + close2; + callshop "para_itm00",1; + end; + } + mes "[Napeed]"; + mes "Thank you for frequenting 'We-Have-Everything'!"; + close; + } else { // holiday + mes "[Napeed]"; + mes "Welcome, welcome~! This store is 'We-Have-Everything'. Everything we do have, we have, and everything we don't have, we don't!"; + mes "We are currently not open."; + mes "Today is a holiday, so we are brewing potions."; + close; + } +} + +// Parayo +paramk,118,31,3 script Manager Parayo#itm02 4_F_KHELLISIA,{ + if ($event_paramk > 0) { + mes "[Parayo]"; + mes "Thank you for coming to 'We-Have-Everything'."; + mes "We sell assorted elemental quivers and traps."; + mes "Is there anything you want?"; + next; + switch (select("Look at elemental quivers.:Look at traps.:Cancel.")) { + case 1: + mes "[Parayo]"; + mes "We try to be stocked up in order to serve as many customers as possible"; + mes "But sometimes we are sold out, unfortunately."; + close2; + callshop "para_itm10",1; + end; + case 2: + mes "[Parayo]"; + mes "Here are the traps."; + mes "'We-Have-Everything' is always here for you."; + close2; + callshop "para_itm01",1; + end; + case 3: + mes "[Parayo]"; + mes "Thank you for being a loyal customer of 'We-Have-Everything'."; + mes "Come again."; + close; + } + } else { // holiday + mes "[Parayo]"; + mes "Hello, this is 'We-Have-Everything'."; + mes "Wednesdays are Eden Market Group official holidays, so we are not open during this time."; + mes "Goodbye."; + close; + } +} + + +// Malangdonya +// sign +paramk,122,33,3 script [Malangdonya]#seed00 HIDDEN_NPC,{ + mes " == Malangdonya == "; + mes "Special items from Malangdo."; + mes "The Yggdrasil series and the Doram series is here!"; + mes ""; + mes "[Days of Operation]"; + mes "Special series - Mon, Tue, Thu, Fri, Sat, Sun"; + mes "Always Selling - Mastela Fruit."; + close; +} + +// Whiteberry +paramk,126,34,3 script Whiteberry#seed01 4_CAT_SAILOR1,{ + if ($event_paramk > 0) { + mes "[Whiteberry]"; + mes "Purr~ Welcome."; + mes "The Catpaw merchant group is pleased to welcome you. We sell special products from Malangdo, purr~"; + } else { // holiday + mes "[Whiteberry]"; + mes "We sell Mastela Fruit~"; + mes "We sell certain items even on holidays~"; + } + next; + switch (select("Look at items.:Sell items.:Cancel.")) { + case 1: + mes "[Whiteberry]"; + mes "Fresh Mastela Fruit here, purr~"; + mes "Please purchase a lot."; + mes "Though we grow them ourselves, honestly they're too sour.. ah... never mind."; + close2; + callshop "para_seed01",1; + end; + case 2: + mes "[Whiteberry]"; + mes "Purr~ Will buy at a reasonable price."; + mes "Please sell items that are useful."; + close2; + callshop "para_seed01",2; + end; + case 3: + mes "[Whiteberry]"; + mes "Purr~ Goodbye~"; + close; + } +} + +// Blackphone +paramk,129,33,3 script Blackphone#seed02 4_M_MERCAT2,{ + if ($event_paramk > 0) { + mes "[Blackphone]"; + mes "Meow~ Welcome"; + mes "Meow~ The Malangdonya Catpaw merchant group welcomes you."; + mes "Meow~ We sell various crops from Malangdo, as well as the Doram series."; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Blackphone]"; + mes "Meow~ Here are Doram cans and bottles, yggdrasil, and thorn berries."; + mes "Meow~ If you see nothing, that means we are sold out. Come back tomorrow."; + close2; + callshop "para_seed10",1; + end; + } + mes "[Blackphone]"; + mes "Meow~ Come back soon. We offer interesting items."; + close; + } else { // holiday + mes "[Blackphone]"; + mes "Meow~ We do not open on holidays."; + mes "Meow~ Today is the day we have our products shipped from Malangdo."; + mes "Meow~ If you need bottles or cans of of Doram, or Yggdrasil fruits, come back tomorrow."; + close; + } +} + + +// These comments are spoken continuously when in a specific region +// Restraurant +// Jeffrey +paramk,144,13,3 script Jeffrey#food00 1_M_MERCHANT,{ + mes "[Jeffrey]"; + mes "Everyone assumes that I am the cook here. I'm not! I'm just here to collect on the debt that the restaurant owner owes me!"; + next; + mes "[Jeffrey]"; + mes "I made a few dishes just to shut up the complaining customers, but this is getting out of hand!"; + close; + +OnTimer30000: + npctalk "Let me make this clear! I am not the cook! Don't wait around to be served! I am NOT making any more dishes!"; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Vincent +paramk,140,18,3 script Vincent#food01 4_TOWER_15,{ + mes "[Vincent]"; + mes "... The new cook makes amazing food, but apparently he's pretty lazy."; + close; + +OnTimer33000: + npctalk "Take orders, don't just stand there in the kitchen! Please!"; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Panel +paramk,138,19,3 script Panel#food02 4_TOWER_14,{ + mes "[Panel]"; + mes "This restaurant opened only recently, but it became really popular after they hired a new cook."; + close; + +OnTimer35000: + npctalk "Who cares if I am served late. All that matters is how delicious the food is."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Matina +paramk,136,20,3 script Matina#food03 4_TOWER_05,{ + mes "[Matina]"; + mes "What is it? Are you going to order? Forget it. Look at the line-up."; + close; + +OnTimer37000: + npctalk "Why aren't you taking orders? This place is not really consumer-friendly..."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Lucy +paramk,134,21,3 script Lucy#food04 4_TOWER_10,{ + mes "[Lucy]"; + mes "Ah. I am going to wait a little more, but if I am still not served, I will leave."; + close; + +OnTimer40000: + npctalk "This is the limit! I can't wait any more. Five minutes, and I'm going home."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Mara +paramk,136,16,3 script Mara#food05 4_TOWER_02,{ + mes "[Mara]"; + mes "I heard that the owner of this restaurant went on a trip to a faraway land, and the new cook is running this place. I heard that his cooking skill is amazing."; + close; + +OnTimer28000: + npctalk "The new cook seems to have a foul temper. I find that attractive, really."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Lana +paramk,133,16,3 script Lana#food06 4_TOWER_04,{ + mes "[Lana]"; + mes "I came two days ago, yesterday, and today too. The pasta they serve here is amazing. The only problem is that it's so hard to order here."; + close; + +OnTimer25000: + npctalk "Did my order go through? I am starving here!"; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Rahoul +paramk,127,16,3 script Rahoul#food07 4_TOWER_12,{ + mes "[Rahoul]"; + mes "I have been waiting for hours already and the cook is still not taking orders. Ah, I am so hungry that I might drop dead."; + close; + +OnTimer23000: + npctalk "Huh. I wonder how long they would make me wait..."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Nameless Drunk +paramk,124,20,3 script Drunk#food08 4_TOWER_06,{ + mes "[Drunk]"; + mes "Hey, bring more wine..."; + close; + +OnTimer50000: + npctalk "Ehhhh.... Wine......."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Annoyed Customer +paramk,127,10,3 script Annoyed Customer#food09 4_TOWER_07,{ + mes "[Annoyed Customer]"; + mes "I am going to talk to the owner once he comes back from his trip. Tell him to fire his employees there at the back."; + mes "So many customers milling about, and they aren't even serving anyone"; + close; + +OnTimer20000: + npctalk "I wish I could do something about the employees."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Kalin +paramk,124,11,3 script Kalin#food10 4_F_01,{ + mes "[Kalin]"; + mes "I am Thrann's colleague and I like being a cleaner at this store. I can be as lazy as I want and still get paid."; + close; +} + +// Thrann +paramk,121,11,3 script Thrann#food11 4_F_02,{ + mes "[Thrann]"; + mes "I spend hours here drinking coffee in peace, though I am technically at work, pretending to clean. They don't even kick me out."; + close; + +OnTimer47000: + npctalk "Such ruckus! If they are not taking orders because there's something wrong in the kitchen, it's only understandable."; + initnpctimer; + end; + +OnInit: + initnpctimer; + end; +} + +// Sobok the Cook +paramk,127,88,3 script Sobok the Cook#fd01 4_M_CHNCOOK,{ + mes "[Sobok]"; + mes "I am called Sobok, of the Sobokru, Eden Market Group's leading restaurant."; + mes "Do you wish to order? The dishes cost 3000 Zeny each - The weekend special is 5000 Zeny."; + next; + switch( select("Goose Soup.:Maccaroni Noodles.:Weekend Special.:Cancel.") ) { + case 1: + .@hp = 100; + .@sp = 0; + .@zeny = 3000; + .@talk$ = "Goose Soup shall detoxify and heal you."; + break; + case 2: + .@hp = 0; + .@sp = 100; + .@zeny = 3000; + .@talk$ = "Maccaroni Noodles shall refresh your spirit."; + break; + case 3: + .@hp = 100; + .@sp = 100; + .@zeny = 5000; + .@talk$ = "Ultimate combination for body and mind."; + break; + case 4: + mes "[Sobok]"; + mes "Come by when you may."; + close; + } + mes "[Sobok]"; + mes .@talk$; + next; + if (select("Yes:No") == 2) + close; + if (Zeny < .@zeny) { + mes "[Sobok]"; + mes "Do you think you can eat for free??"; + close; + } + mes "[Sobok]"; + mes "Delicious, isn't it?"; + Zeny -= .@zeny; + percentheal(.@hp, .@sp); + close; +} + + +// Cafe Mora +// Pomegranate +paramk,75,86,3 script Pomegranate#mora01 4_F_RAFLE_PK,{ + mes "[Pomegranate]"; + mes "Come forth, hasten!"; + mes "Ask you where this is? Cafe Mora, open always."; + mes "Pomegranate, this thing and that thing sell."; + next; + switch (select("Check Shop.:Why do you speak like that?:Anything else?")) { + case 1: + mes "[Pomegranate]"; + mes "Have! Sap of Mora Village!"; + mes "Sell! Beef toast."; + mes "Delicious. Beef toast. Much. Good~"; + mes "Pomegranate!"; + close2; + callshop "para_mora01",1; + end; + case 2: + mes "[Pomegranate]"; + mes "Know you not, Mora Tongue."; + mes "Pomegranate. Know. Human speech."; + mes "Pomegranate, awesome."; + mes "Study, did. Super hard!"; + close; + case 3: + mes "[Pomegranate]"; + mes "Sell. Master. Fri-Sat-Sun."; + mes "Delicious. Squeezed fruit. Mora best!"; + close; + } +} + +// Cocktail Master +paramk,65,86,3 script Cocktail Master#mora01 4_M_RAFLE_VI,{ + if ($event_paramk > 1) { + mes "[Cocktail Master]"; + mes "Welcome to Mora Cafe."; + mes "We offer fruits and drinksfrom Mora."; + mes "They are ^4d4dffRafflechino, Mora Hip Tea, Mora Mandarin, and Mora Berry^000000. We may run out of stock."; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Cocktail Master]"; + mes "If there is nothing, that means we are sold out. Come back tomorrow."; + close2; + callshop "para_mora10",1; + end; + } + mes "[Cocktail Master]"; + mes "We are thankful that you came to visit us."; + close; + } else { // holiday + mes "[Cocktail Master]"; + mes "Do you wish to purchase special Mora Drinks?"; + mes "We are saddened to inform you that we only make drinks on weekends. Come back on ^4d4dffFri, Sat, Sun^000000."; + mes "Pomegranate, sell this and that."; + close; + } +} + + +// Forge +// Hans of the miner coalition +paramk,49,103,3 script Hans #ref01 1_M_SIGNMCNT,{ + if ($event_paramk > 3) { + mes "[Hans]"; + mes "We sell metal ores mined by our coalition."; + mes "If you need iron, steel, coal, or iron ores, look around."; + next; + if (select("Look at ores.:Cancel.") == 1) { + mes "[Hans]"; + mes "We are sold out, if there is nothing here."; + mes "We mine iron, steel, coal, and iron ores every day, so come back tomorrow."; + close2; + callshop "para_ref10",1; + end; + } + mes "[Hans]"; + mes "Our stock of basic metal like iron, steel, coal, etc, are replenished every day."; + mes "Keep that in mind."; + close; + } else { // holiday + mes "[Hans]"; + mes "We're closed today."; + mes "I am just about to visit the mines."; + mes "Come back tomorrow if you need anything."; + close; + } +} + +// Dus the Smith +paramk,53,104,3 script Dus the Smith#ref02 2_M_OLDBLSMITH,{ + if ($event_paramk > 3) { + mes "[Dus the Smith]"; + mes "Oridecon, Elunium, and Anvils here."; + mes "Not a lot, but handcrafted, you'll see."; + next; + if (select("Look at items.:Cancel.")) { + mes "[Dus the Smith]"; + mes "Not sure if we have any left."; + mes "Please buy if we do."; + close2; + callshop "para_ref20",1; + end; + } + mes "[Dus the Smith]"; + mes "Rare ores are hard to come by, and hard to refine."; + mes "That's why our stock is limited."; + close; + } else { // holiday + mes "[Dus the Smith]"; + mes "Ah, a customer?"; + mes "Sorry, we are not selling ores today."; + next; + mes "[Dus the Smith]"; + mes "They're hard to make, you see."; + mes "What do we sell you ask?"; + mes "Ahhh, we sell Oridecon, Elunium, and Anvils here."; + next; + mes "[Dus the Smith]"; + mes "If you need rare ores or anvils, come on weekends."; + mes "Late Saturday afternoon would be perfect."; + close; + } +} + + +// Rain-of-Gems +// sign +paramk,63,98,3 script [Rain-of-Gems]#jw HIDDEN_NPC,{ + mes "? Rain of Gems ?"; + mes "We deal in gold and gemstones!"; + mes ""; + mes "[Days of Operation]"; + mes "We're closed on holidays."; + close; +} + +// Aurora +paramk,69,102,3 script Aurora#jew01 4_F_02,{ + if ($event_paramk > 0) { + mes "[Aurora]"; + mes "Welcome~"; + mes "This is 'Rain of Gems'. Our items range from pure gold to uncut gemstones like rosestone!"; + mes "We sell gold, opals, phlogopite, muscovite, et cetera."; + mes "They are rare and hard to come by, therefore pricey!"; + next; + switch (select("Look at items.:Sell items.:Cancel.")) { + case 1: + mes "[Aurora]"; + mes "If you don't see anything, that means everything is sold out!"; + mes "Thank you for visiting~!"; + close2; + callshop "para_jew10",1; + end; + case 2: + mes "[Aurora]"; + mes "We will buy at a reasonable price."; + close2; + callshop "para_jew10",2; + end; + case 3: + mes "[Aurora]"; + mes "We deal in products like gold, phlogopite, agate and turquoise."; + mes "But uncut gemstones are rare."; + next; + mes "[Aurora]"; + mes "We procure them from mines, but the supply is limited~"; + mes "Our stock is replenished every week, so if you time it just right.. maybe? Haha."; + close; + } + } else { // holiday + mes "[Aurora]"; + mes "Aw, sorry that you came by today."; + mes "Our Market Group is not open on Wednesdays."; + mes "We need time to restock and check our inventory levels, and of course, time to rest up."; + next; + mes "[Aurora]"; + mes "If you come by tomorrow, we would be happy to offer you our range of products that will make your weapons more powerful!"; + close; + } +} + + +// The Alchemical Cat +// sign +paramk,73,98,3 script [Alchemical Cat]#alc00 HIDDEN_NPC,{ + mes " == The Alchemical Cat == "; + mes "Reagents for alchemy and"; + mes "ingredients to make medication"; + mes "All sold here~"; + mes ""; + mes "[Days of Operation]"; + mes "Every day except for holidays"; + close; +} + +// Dye the Alchemist +paramk,75,102,3 script Dye the Alchemist#alc01 4_M_ALCHE_C,{ + if ($event_paramk > 0) { + mes "[Dye the Alchemist]"; + mes "Reagents for alchemy!"; + mes "We sell Alcohol, Karvodailnirol, and Detrimindexta!"; + mes "We sell 20 each, per day!"; + next; + if (select("Look at the reagents.:Cancel.")) { + mes "[Dye the Alchemist]"; + mes "Not sure if we have any left!"; + mes "If not, everything is sold out!"; + mes "They may be a bit expensive, but easy consumption... well, you know what I am talking about. Yeah?"; + close2; + callshop "para_alc10",1; + end; + } + mes "[Dye the Alchemist]"; + mes "Come by tomorrow, we brew reagents every day!"; + close; + } else { // holiday + mes "[Dye the Alchemist]"; + mes "We are closed on Wednesdays~"; + mes "Come back tomorrow!"; + close; + } +} + +// Earl the Alchemist +paramk,80,104,3 script Earl the Alchemist#alc02 4_TOWER_16,{ + if ($event_paramk > 0) { + mes "[Earl the Alchemist]"; + mes "Ingredients to make reagents, potions, "; + mes "and elemental stones for magical experiements, all sold here!"; + next; + mes "[Earl the Alchemist]"; + mes "Not sure how much remains of our stock, since our supply is limited, but..."; + mes "Looking for something?"; + next; + switch (select("Look at ingredients.:Look at elemental stones.:Cancel.")) { + case 1: + mes "[Earl the Alchemist]"; + mes "Immortal Hearts, Stems, and many other ingredients from various dungeons"; + mes "offered here at a reasonable price"; + next; + mes "[Earl the Alchemist]"; + mes "If you don't see anything, that means everything is sold out."; + close2; + callshop "para_alc20",1; + end; + case 2: + mes "[Earl the Alchemist]"; + mes "Stardust, and Star Crumb here."; + mes "Not sure if we have any left."; + close2; + callshop "para_alc30",1; + end; + case 3: + mes "[Earl the Alchemist]"; + mes "Come again!"; + mes "Keep in mind that we don't open on Wednesdays, because that's when we have items shipped in!"; + close; + } + } else { // holiday + mes "[Earl the Alchemist]"; + mes "Wednesday is a holiday."; + mes "Come back tomorrow if there's anything you want to buy."; + close; + } +} + + +// Manbok Groceries +// sign +paramk,83,98,3 script [Manbok Groceries]#fod00 HIDDEN_NPC,{ + mes " == Manbok Groceries == "; + mes "We offer amazing cooking ingredients!"; + mes "Wolf blood and Petite's Tails!"; + mes ""; + mes "[Days of Operation]"; + mes "Every day except for holidays"; + close; +} + +// Manbok +paramk,87,101,3 script Manbok#fod01 1_M_03,{ + if ($event_paramk > 0) { + mes "[Manbok]"; + mes "Welcome."; + mes "If you need cooking ingredients, you have come to the right place."; + next; + switch (select("Advanced cooking ingredients.:Sauces and spies.:Sell items.:Cancel.")) { + case 1: + mes "[Manbok]"; + mes "Not sure how many we have left."; + mes "Well,^4d4dffif you see nothing, that means everything is sold out^000000."; + mes "Peruse at your pleasure."; + close2; + callshop "para_fod10",1; + end; + case 2: + mes "[Manbok]"; + mes "Sauces and spices from all over the world.."; + mes "I am the person to go to if you want cooking ingredients."; + close2; + callshop "para_fod01",1; + end; + case 3: + mes "[Manbok]"; + mes "If it's a product I deal in, I will purchase them from you at a reasonable price."; + close2; + callshop "para_fod01",2; + end; + case 4: + mes "[Manbok]"; + mes "You might know this already, but I will say it anyways."; + mes "We have limited supplies. Our ingredients are often sold out if you hesitate for too long."; + next; + mes "[Manbok]"; + mes "Just saying."; + close; + } + } else { // holiday + mes "[Manbok]"; + mes "Not open on Wednesdays."; + mes "We restock today. Come back tomorrow."; + close; + } +} + + +// Magical Store, Ma-Ma-Ma-Ma +// sign +paramk,93,98,3 script Ma-Ma-Ma-Ma#mag HIDDEN_NPC,{ + mes " == Ma-Ma-Ma-Ma == "; + mes " == Magical Store == "; + mes "Ingredients and gems for magic, "; + mes "Specializing in magic scrolls"; + mes ""; + mes "[Days of Operation]"; + mes "Some items not sold on holidays"; + mes "But open every day."; + close; +} + +// Madoha +paramk,95,102,3 script Madoha#mag01 4_M_SAGE_A,{ + if ($event_paramk > 0) { + mes "[Madoha]"; + mes "Welcome."; + mes "This is Ma-Ma-Ma-Ma the Magical Store, run by the Ma brothers, helping non-Mages use magic."; + next; + mes "[Madoha]"; + mes "We sell magic scrolls and gems."; + mes "Anything particular that you are looking for?"; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Madoha]"; + mes "Blue, red, yellow gems. Magic scrolls like Meteor Storm, Stormgust, Lord of Vermillion..."; + mes "^4d4dffIf there is nothing, it means everything is sold out^000000, please be aware."; + close2; + callshop "para_mag10",1; + end; + } + mes "[Madoha]"; + mes "Making magic scrolls is interesting work."; + mes "Magic scrolls also help a lot of non-mage adventurers by allowing them to use magic they don't know."; + next; + mes "[Madoha]"; + mes "But there's a limit to how many scrolls I can scribe per week, so they sometimes run out."; + close; + } else { // holiday + mes "[Madoha]"; + mes "Oh, a customer?"; + mes "Today is a holiday. We only sell basic magical ingredients today. No scrolls. Is that okay?"; + mes "We have blue gems, points, and runestones.."; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Madoha]"; + mes "We try to be stocked up as much as possible but we may have run out."; + mes "If you see nothing, that means everything is sold out."; + close2; + callshop "para_mag11",1; + end; + } + mes "[Madoha]"; + mes "Yellow and red gems, and magic scrolls, are sold on other days, "; + mes "So come back tomorrow."; + close; + } +} + +// Magiha +paramk,100,102,3 script Magiha#mag02 4_M_SAGE_C,{ + if ($event_paramk > 0) { + mes "[Magiha]"; + mes "Welcome tooooooo."; + mes "Ma-Ma-Ma-Ma, the Magical Store."; + mes "We sell resistance potions to raise your elemental resistance.."; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Magiha]"; + mes "We brew and sell four types of resistance potions that ward against water, wind, earth, or fire."; + mes "If you see nothing, that means all the potions are sold out."; + close2; + callshop "para_mag20",1; + end; + } + mes "[Magiha]"; + mes "Come again!"; + close; + } else { // holiday + mes "[Magiha]"; + mes "Today is a holiday! I did not brew any potions today..."; + mes "Come back tomorrow."; + close; + } +} + +// Blessings of Yggdrasil +// sign +paramk,103,98,3 script [Yggdrasil Blessing]#00 HIDDEN_NPC,{ + mes " == Blessings of Yggdrasil == "; + mes "Moving in soon"; + close; +} + + +// Exotic Plants +// sign +paramk,113,98,3 script [Exotic Plants]#plt HIDDEN_NPC,{ + mes " == Exotic Plants == "; + mes "Poisonous plants sold."; + mes "Days of Operation: always"; + close; +} + +// Hwaran +paramk,116,100,3 script Hwaran#plt01 4_F_RUSGREEN,{ + mes "[Hwaran]"; + mes "Welcome to Exotic Plants."; + mes "I deal with plants that are shockingly bitter when you chew on them."; + mes "Will you look around?"; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Hwaran]"; + mes "Please shower them with affection, though they are poisonous plants."; + mes "I selected these babies from the farm myself. Very potent when made into meds."; + close2; + callshop "para_plt01",1; + end; + } + mes "[Hwaran]"; + mes "So many frequent customers to my store are from the assassin's guild, surprisingly enough. I don't know why."; + mes "Obviously they must be peace-loving people at heart, since they are so fond of plants."; + close; +} + +// You and Me +// sign +paramk,133,98,3 script [You and Me]#unm00 HIDDEN_NPC,{ + mes " == You and Me == "; + mes "Specializing in items for Cute Pets"; + mes "We introduce you to beasts you can mount, and companions you can hunt with"; + mes "[Days of Operation]"; + mes "Always!"; + close; +} + +// Gecko the Trainer +paramk,124,97,3 script Gecko the Trainer#unm01 4_M_DESERT,{ + mes "[Gecko the Trainer]"; + switch( Class ) { + case Job_Rune_Knight: + case Job_Rune_Knight_T: + case Job_Baby_Rune: + mes "Welcome. Would you like to rent a Dragon?"; + next; + if (select("Yes:No") == 2) { + mes "[Gecko the Trainer]"; + mes "I see. Then have a great day."; + close; + } + // if (!getskilllv("RK_DRAGONTRAINING")) { + if (!getskilllv("KN_RIDING")) { + mes "[Gecko the Trainer]"; + mes "Please learn how to ride a Dragon first."; + close; + } else if (checkriding() || checkdragon()) { + mes "[Gecko the Trainer]"; + mes "You already have a Dragon."; + close; + } else if (ismounting()) { + mes "[Gecko the Trainer]"; + mes "Please remove your cash mount."; + close; + } + setdragon; + close; + + case Job_Royal_Guard: + case Job_Royal_Guard_T: + case Job_Baby_Guard: + mes "Welcome. Would you like to rent a Gryphon?"; + next; + if (select("Yes:No") == 2) { + mes "[Gecko the Trainer]"; + mes "I see. Then have a great day."; + close; + } + if (!getskilllv("KN_RIDING")) { + mes "[Gecko the Trainer]"; + mes "Please learn how to ride a Gryphon first."; + close; + } + if (checkriding()) { + mes "[Gecko the Trainer]"; + mes "You already have a Gryphon."; + close; + } + if (ismounting()) { + mes "[Gecko the Trainer]"; + mes "Please remove your cash mount."; + close; + } + setriding; + close; + + default: + mes "I'm here to provide Rune Knights and Royal Guards with riding creatures."; + close; + } +} + +// Tete +paramk,126,100,3 script Tamer Tete#unm02 4_M_DST_CHILD,{ + mes "[Tete]"; + mes "'You and Me', we love animals!"; + mes "We are open 24/7 to provide you with all the items your Cute Pets and companion animals need!"; + mes "Do you need items for your Pet?"; + next; + if (select("Look at items.:Cancel.") == 1) { + mes "[Tete]"; + mes "We have a diverse selection of food for Pets."; + mes "We have incubators, too!"; + close2; + callshop "para_unm01",1; + end; + } + mes "[Tete]"; + mes "Thank you for coming by~!"; + close; +} + +// Mist the Hunter +paramk,130,98,3 script Mist the Hunter#unm03 4_M_JOB_HUNTER,{ + if (Upper == 0) .@price = 2500; // Normal Falcon - default price + if (Upper == 1) .@price = 2500; // Scarf Falcon + if (Upper == 2) .@price = 2500; // Baby Falcon + mes "[Mist, the Hunter]"; + if (BaseJob == Job_Hunter) { + if (checkoption(Option_Wug) || checkoption(Option_Wugrider)) { + mes "Um..."; + mes "You can't rent a Falcon"; + mes "until you dismiss your warg first!"; + close; + } + mes "Do you need a Falcon?"; + mes "You can rent your own"; + mes "trusty bird of prey for a"; + mes "fee of just " + .@price + " zeny~"; + next; + switch (select("Rent Falcon.:Buy a Falcon Flute.:Cancel.")) { + case 1: + if (checkwug()) { + mes "[Mist, the Hunter]"; + mes "Um..."; + mes "You can't rent a Falcon"; + mes "until you dismiss your warg first!"; + close; + } + if (Zeny < .@price) { + mes "[Mist, the Hunter]"; + mes "What is this?"; + mes "You don't have"; + mes "enough zeny?!"; + mes "You better start"; + mes "hunting money"; + mes "instead of monsters~"; + close; + } + if (getskilllv("HT_FALCON") == 0) { + mes "[Mist, the Hunter]"; + mes "Gosh~"; + mes "Go learn how to"; + mes "manage a Falcon"; + mes "first! I can't rent one"; + mes "to you if you can't"; + mes "handle it, you know."; + close; + } + if (checkfalcon()) { + mes "[Mist, the Hunter]"; + mes "Um..."; + mes "You already have"; + mes "a Falcon. It's right"; + mes "there, can't you see it?"; + close; + } + Zeny -= .@price; + setfalcon; + close; + case 2: + mes "[Mist, the Hunter]"; + mes "With a magical Flute, you can call your Falcon from anywhere!"; + next; + mes "[Mist, the Hunter]"; + mes "It's marvelous, isn't it? Ha ha ha!"; + next; + mes "[Mist, the Hunter]"; + mes "Why I'm selling these Falcon Flutes?"; + mes "It's because I have no clue how they work."; + mes "Ha ha ha!"; + next; + mes "[Mist, the Hunter]"; + mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000."; + mes "I don't have the Skill, so I don't know how to handle Falcons."; + mes "As it's for now, I may never have a Falcon."; + next; + mes "[Mist, the Hunter]"; + mes "But I can't give you one for free!"; + mes "I have to make money since I also need to eat!"; + next; + mes "[Mist, the Hunter]"; + mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?"; + next; + if (eaclass()&EAJL_THIRD) { + mes "[Mist, the Hunter]"; + mes "For Rangers, however, I have a special price of 10,000 zeny!"; + .@price = 10000; + next; + } else + .@price = 12500; + if (select("Don't buy one.:Buy a Falcon Flute.") == 1) { + mes "[Mist, the Hunter]"; + mes "That's too bad. If you need one, come back!"; + close; + } + if (Zeny >= .@price) { + if (countitem(12848) >= 1) { // Falcon_Flute + mes "[Mist, the Hunter]"; + mes "As I can see you already have a Falcon Flute!"; + mes "Don't worry, my young friend, once you've purchased the Falcon Flute you won't need to do so again"; + mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; + close; + } + mes "[Mist, the Hunter]"; + mes "Here, take this flute."; + mes "With it you can whistle for your Falcon from anywhere."; + Zeny -= .@price; + getitem(12848, 1); // Falcon_Flute + next; + mes "[Mist, the Hunter]"; + mes "Just a reminder."; + mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; + close; + } + mes "[Mist, the Hunter]"; + mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; + close; + + case 3: + mes "[Mist the Hunter]"; + mes "Look at other items in our store."; + mes "We may be offering a new Pet Items soon~"; + mes "Hahahaha!"; + close; + } + } else { + mes "Young fool!"; + mes "Falcons can only"; + mes "be used by Hunters"; + mes "and Snipers, capish?"; + mes "...Heh heh, jealous?"; + close; + } +} + +// exit +paramk,97,5,0 warp paramk#ex 1,1,moc_para01,106,35 diff --git a/npc/re/merchants/nightmare_biolab.txt b/npc/re/merchants/nightmare_biolab.txt index e1f097d6713..d883bc11782 100644 --- a/npc/re/merchants/nightmare_biolab.txt +++ b/npc/re/merchants/nightmare_biolab.txt @@ -3,6 +3,13 @@ //===== Description: ========================================= //= [Walkthrough Conversion] //= Nightmare Biolab exchange NPCs +// NOTE: The nightmare biolab monsters are currently missing +// some items used in the file. +// Silent Energy Particles (ID: 25127) +// Weak Energy Particles (ID: 25128) +// Unstable Energy Particles (ID: 25129) +// Sinister Energy Particles (ID: 25130) +// Cursed Crystal (ID: 23080) //===== Changelogs: ========================================== //= 1.0 First version. [Capuche] //============================================================ @@ -1603,7 +1610,7 @@ OnTouch: end; OnInit: - // questinfo 14683,QTYPE_QUEST,1; // display when quest 14683 active + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(14683) == 1" ); end; } @@ -1729,7 +1736,8 @@ OnTouch: end; OnInit: - questinfo atoi(strnpcinfo(2)),QTYPE_QUEST,1; + .@condition$ = "!isbegin_quest(" + strnpcinfo(2) + ")"; + questinfo( QTYPE_QUEST, QMARK_YELLOW, .@condition$ ); end; } diff --git a/npc/re/quests/quest_payon.txt b/npc/re/quests/quest_payon.txt new file mode 100644 index 00000000000..2ab30c3462c --- /dev/null +++ b/npc/re/quests/quest_payon.txt @@ -0,0 +1,7 @@ +//===== rAthena Script ======================================= +//= Quest Payon Renewal +//===== Changelogs: ========================================== +//= 1.0 First Version. [JohnnyPlayy] +//============================================================ + +payon_in01,46,21,4 duplicate(Young man#12) Young man#1 4_M_ORIENT02 diff --git a/npc/re/quests/quests_14_3.txt b/npc/re/quests/quests_14_3.txt index 130696442e7..c568baba454 100644 --- a/npc/re/quests/quests_14_3.txt +++ b/npc/re/quests/quests_14_3.txt @@ -196,8 +196,7 @@ morocc,138,238,4 script Piled Rags#ep14bs 4_M_DIEMAN,{ close; OnInit: - questinfo 11349, QTYPE_QUEST, 1; - setquestinfo_level 11349,140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 140 && !isbegin_quest(11349)" ); end; } diff --git a/npc/re/quests/quests_14_3_bis.txt b/npc/re/quests/quests_14_3_bis.txt index 1e36694912c..273b5765273 100644 --- a/npc/re/quests/quests_14_3_bis.txt +++ b/npc/re/quests/quests_14_3_bis.txt @@ -244,12 +244,7 @@ moro_vol,98,107,3 script Magic Scholar#143avt01 4_M_FAIRYAVANT,{ end; OnInit: - questinfo 7583, QTYPE_QUEST2; - setquestinfo_req 7583,7581,1; - setquestinfo_req 7583,7584,0; - setquestinfo_level 7583,140,175; - // 3759 is probably ep14_2_mylord - // SetQuestItem 7583 3759 33 "<" + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 140 && ep14_2_mylord > 33 && !isbegin_quest(7583) && !isbegin_quest(7584) && isbegin_quest(7581) == 1" ); end; } @@ -414,12 +409,7 @@ moro_vol,95,108,7 script Hishieh#143hisie01 4_M_FARIY_HISIE,{ end; OnInit: - questinfo 7595, QTYPE_QUEST2; - setquestinfo_req 7595,7593,1; - setquestinfo_req 7595,7600,0; - setquestinfo_level 7595,160,175; - // 3759 = [ep14_2_mylord] - // SetQuestItem 7595 3759 33 "<" + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 160 && ep14_2_mylord > 33 && !isbegin_quest(7595) && !isbegin_quest(7600) && isbegin_quest(7593) == 1" ); end; } @@ -603,16 +593,8 @@ moro_vol,108,88,5 script Commander Hibba Agip#14301 4_M_REDSWORD,{ end; OnInit: - questinfo 7593, QTYPE_QUEST2; - setquestinfo_req 7593,7597,0; - setquestinfo_req 7593,7598,0; - setquestinfo_level 7593,160,175; - // 3789 = [ep4_3_mockill] - // SetQuestItem 7593 3789 0 "<" - - questinfo 7598, QTYPE_QUEST2; - setquestinfo_req 7598,7593,0; - setquestinfo_req 7598,7597,1; + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 160 && ep4_3_mockill > 0 && !isbegin_quest(7593) && !isbegin_quest(7597) && !isbegin_quest(7598)" ); + questinfo( QTYPE_QUEST2, QMARK_NONE, "!isbegin_quest(7598) && !isbegin_quest(7593) && isbegin_quest(7597) == 1" ); end; } @@ -700,10 +682,7 @@ moro_vol,110,90,3 script Adjutant Abidal#14302 4_M_SAGE_C,{ end; OnInit: - questinfo 7594, QTYPE_QUEST2; - setquestinfo_req 7594,7593,1; - setquestinfo_req 7594,7599,0; - setquestinfo_level 7594,160,175; + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 160 && !isbegin_quest(7594) && !isbegin_quest(7599) && isbegin_quest(7593) == 1" ); end; } @@ -795,9 +774,7 @@ moro_vol,111,87,1 script Instructor Igrid#14303 4_M_CRU,{ end; OnInit: - questinfo 7581, QTYPE_QUEST2, 0; - setquestinfo_req 7581,7582,0; - setquestinfo_level 7581,140,175; + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 140 && !isbegin_quest(7581) && !isbegin_quest(7582)" ); end; } @@ -1038,16 +1015,11 @@ moro_vol,136,84,3 script Jeruth Hesranta#ep143 4_MAN_JERUTOO,{ OnInit: /* officially disabled - questinfo 1, QTYPE_QUEST2; - setquestinfo_level 1,140,160; + questinfo QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 140 && BaseLevel <= 160"; + // 3650 = [ep13_3_secret] SetQuestItem 1 3650 24 */ - - questinfo 7579, QTYPE_QUEST2; - setquestinfo_req 7579,7580,0; - setquestinfo_level 7579,140,160; - // 3650 = [ep13_3_secret] - // SetQuestItem 7579 3650 26 "<" + questinfo( QTYPE_QUEST2, QMARK_NONE, "BaseLevel >= 140 && BaseLevel <= 160 && ep13_3_secret > 26 && !isbegin_quest(7579) && !isbegin_quest(7580)" ); end; } diff --git a/npc/re/quests/quests_15_1.txt b/npc/re/quests/quests_15_1.txt index 8b239a8628b..9239525cc27 100644 --- a/npc/re/quests/quests_15_1.txt +++ b/npc/re/quests/quests_15_1.txt @@ -72,8 +72,7 @@ prontera,121,77,3 script Phantasmagorika Spokesperson 4_F_ZONDAGIRL,{ } OnInit: - questinfo 7610, QTYPE_QUEST, 1; - setquestinfo_level 7610, 140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 140 && isbegin_quest(7610) != 2" ); end; } geffen,135,64,3 duplicate(Phantasmagorika Spokesperson) Phantasmagorika Spokesperson#2 4_F_ZONDAGIRL @@ -187,8 +186,7 @@ moc_para01,38,175,5 script Lime Evenor#evtat01 4_F_EDEN_OFFICER,{ } OnInit: - questinfo 7607, QTYPE_QUEST, 1; - setquestinfo_level 7607,140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 140 && isbegin_quest(7607) != 2" ); end; } @@ -810,10 +808,8 @@ ver_eju,114,40,4 script Manager Michelle#atnd05 4_M_LGTGUARD,{ } OnInit: - questinfo 7611,QTYPE_QUEST,1; - setquestinfo_req 7611,7612,0; - // questinfo 7612,QTYPE_QUEST,1; - // setquestinfo_req 7612,7611,2;// todo : display when HUNTING completed + // note: only 7612 required + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7612)" ); end; } @@ -915,8 +911,7 @@ verus04,182,168,5 script Receptionist Nara#atnd06 4_F_HUWOMAN,{ close; OnInit: - questinfo 7610, QTYPE_QUEST, 1; - setquestinfo_level 7610,140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7610) != 2" ); end; } @@ -1136,15 +1131,10 @@ verus04,179,165,5 script Commander Louis#atnd07 4_M_LGTGUARD,{ } OnInit: - questinfo 7611,QTYPE_QUEST,1; - setquestinfo_req 7611,7612,0; - // questinfo 7612,QTYPE_QUEST,1; - // setquestinfo_req 7612,7611,2;// todo : display when HUNTING completed - - questinfo 7613,QTYPE_QUEST,1; - setquestinfo_req 7613,7614,0; - // questinfo 7614,QTYPE_QUEST,1; - // setquestinfo_req 7614,7613,2;// todo : display when HUNTING completed + // note: only playtime quest required + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7612)" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7614)" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7617) == 1" ); end; } @@ -2214,7 +2204,7 @@ verus04,141,193,5 script Archaeologist Aures#atnd09 4_M_OLDSCHOLAR,{ mes "but I want to know how much progress Lloyd has made with his investigation."; mes "Could you go check up on him?"; mes "Thank you."; - erasequest 7619;// Assisting the Excavation Team + completequest 7619;// Assisting the Excavation Team setquest 7620;// Young Blood? VER_MAIN = 9; close3; @@ -2407,7 +2397,7 @@ verus04,141,193,5 script Archaeologist Aures#atnd09 4_M_OLDSCHOLAR,{ } OnInit: - questinfo 7615,QTYPE_QUEST,1;// inaccurate + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7619) && VER_MAIN < 8" ); end; } @@ -3231,8 +3221,8 @@ S_Daily: } OnInit: - questinfo 7615,QTYPE_QUEST,1;// inaccurate - setquestinfo_req 7615,7616,0; + // note: only playtime quest required + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(7616)" ); end; } @@ -3292,6 +3282,10 @@ verus03,167,257,5 script Access Controller Damhw#atnd 4_M_LGTGUARD,{ mes "Then I expect there to be good results!"; completequest 7641;// Access Permitted (note : player can enter in verus01 without this quest) close; + +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(7641) == 1" ); + end; } verus03,172,257,3 duplicate(Access Controller Damhw#atnd) Access Controller Gyuhw#atnd 4_M_LGTGUARD verus03,52,250,5 duplicate(Access Controller Damhw#atnd) Access Controller Geuma#atnd 4_M_LGTGUARD @@ -5675,8 +5669,7 @@ juperos_01,242,91,3 script Rekenber Guard#atd06 4_M_LGTGUARD,{ close; OnInit: - questinfo 7610, QTYPE_QUEST, 1; - setquestinfo_level 7610, 140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 140 && isbegin_quest(7610) != 2" ); end; } @@ -5697,8 +5690,7 @@ yuno_fild07,211,179,5 script Excavator Guide#atd07 4_M_LGTGUARD,{ close; OnInit: - questinfo 7610, QTYPE_QUEST, 1; - setquestinfo_level 7610, 140,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 140 && isbegin_quest(7610) != 2" ); end; } @@ -7175,8 +7167,7 @@ yuno_fild07,216,157,5 script Guide Elisha#ep15_1bs2 4_F_ZONDAGIRL,{ close; OnInit: - questinfo 11363,QTYPE_QUEST,1; - setquestinfo_req 11363,11364,0,11365,0,11366,0; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "!isbegin_quest(11363) && !isbegin_quest(11364) && !isbegin_quest(11365) && !isbegin_quest(11366)" ); end; } diff --git a/npc/re/quests/quests_rockridge.txt b/npc/re/quests/quests_rockridge.txt index 0c8f9db92e6..62db5d642b1 100644 --- a/npc/re/quests/quests_rockridge.txt +++ b/npc/re/quests/quests_rockridge.txt @@ -163,8 +163,7 @@ OnTouch: end; OnInit: - questinfo 7790, QTYPE_QUEST, 1; - setquestinfo_level 7790,100,175; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 100 && !isbegin_quest(7790)" ); end; } @@ -238,9 +237,9 @@ harboro1,80,218,5 script Costello#harboro1 10210,{ mes "[Costello]"; mes "Go to the Sheriff and tell him that you came to help with the Buffalo Bandits situation. He'll tell you what to do."; mes "Please help Pink Rose? I mean, Rock Ridge."; + rock_main_quest = 2; erasequest 7791; setquest 7792;// Problems in Rock Ridge 2 - rock_main_quest = 2; next; select("Who's the sheriff?"); mes "[Costello]"; @@ -307,9 +306,9 @@ harboro1,80,218,5 script Costello#harboro1 10210,{ next; mes "^4d4dffCostello is looking around him and babbling anxiously."; mes "I should go tell Wyatt that Costello wants to hear what the bandits have to say.^000000"; + rock_main_quest = 4; erasequest 7793; setquest 7794;// Expected Response - rock_main_quest = 4; close; } if (rock_main_quest == 4 || rock_main_quest == 5) { @@ -417,10 +416,7 @@ harboro1,80,218,5 script Costello#harboro1 10210,{ close; OnInit: - questinfo 7792, QTYPE_QUEST, 1; - setquestinfo_req 7792,7791,1; - questinfo 7794, QTYPE_QUEST, 1; - setquestinfo_req 7794,7793,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 1 || rock_main_quest == 3" ); end; } @@ -539,9 +535,9 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ mes "If you don't think you can find it, then just follow the railroad."; mes "We'll wait for him by the train."; mes "Let's go see how ugly that leader of the Buffalo Bandits, ^4d4dffJohnny James^000000, is."; + rock_main_quest = 5; erasequest 7794;// Expected Response setquest 7795;// Negotiation on the Railroad - rock_main_quest = 5; close; } if (rock_main_quest == 5) { @@ -598,6 +594,7 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ mes "but Ivoka has a different idea."; mes "Let's listen to what he has to say."; rock_main_quest = 7; + questinfo_refresh(); // the update of the variable refreshes questinfo close; } if (rock_main_quest == 7) { @@ -627,9 +624,9 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ next; mes "[Wyatt Warp]"; mes "Who knows? You might find something to use against the Buffalo Bandits."; + rock_main_quest = 10; erasequest 7798; setquest 7799;// Shawn McCurdy's Weapon 1 - rock_main_quest = 10; close; } if (rock_main_quest == 10) { @@ -729,9 +726,9 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ mes "Now go to ^4d4dffShawn McCurdy^000000, will you?"; mes "We're almost done with the bandits!"; mes "Hang in there!"; + rock_main_quest = 16; erasequest 7804;// Location of the Ores setquest 7805;// Location of the Ores 2 - rock_main_quest = 16; close; } if (rock_main_quest == 16) { @@ -801,14 +798,14 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ mes "Here, you've earned it."; mes "Be proud of yourself."; mes "And this is reward money."; + rock_main_quest = 22; delitem 25248,1;// Purple_Ore_Crate + erasequest 7808;// Case Solved setquest 9457;// Solved Anyway completequest 9457;// Solved Anyway - completequest 7808;// Case Solved getitem .@item_id[.@s],1;// Sheriff's_Left_Badge getitem 25250,200;// Rock_Ridge_Coin getexp 2500000,1200000; - rock_main_quest = 22; close; } mes "[Wyatt Warp]"; @@ -818,18 +815,9 @@ har_in01,20,30,5 script Wyatt Warp#har_in01 10211,{ close; OnInit: - questinfo 7793, QTYPE_QUEST, 1; - setquestinfo_req 7793,7792,1; - questinfo 7795, QTYPE_QUEST, 1; - setquestinfo_req 7795,7794,1; - questinfo 7797, QTYPE_QUEST, 1; - setquestinfo_req 7797,7796,1; - questinfo 7799, QTYPE_QUEST, 1; - setquestinfo_req 7799,7798,1; - questinfo 7809, QTYPE_QUEST, 1; - setquestinfo_req 7809,7803,1; - questinfo 7805, QTYPE_QUEST, 1; - setquestinfo_req 7805,7804,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, + "rock_main_quest == 2 || rock_main_quest == 4 || rock_main_quest == 6 || rock_main_quest == 9 || rock_main_quest == 15 || rock_main_quest == 21" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 14 && isbegin_quest(7809) == 0 && countitem(25247) > 0" ); end; } @@ -918,9 +906,9 @@ har_in01,14,24,5 script Ivoka Skudi#rr03 10212,{ mes "Ivoka's right."; mes "Let the spy see you talk to Johnny."; mes "And convince Johnny that Albert has given up on you."; + rock_main_quest = 8; erasequest 7796; setquest 7797;// Hear Me Out 1 - rock_main_quest = 8; close; } if (rock_main_quest == 8) { @@ -956,8 +944,7 @@ har_in01,14,24,5 script Ivoka Skudi#rr03 10212,{ close; OnInit: - questinfo 7797, QTYPE_QUEST, 1; - setquestinfo_req 7797,7796,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 6 || rock_main_quest == 7" ); end; } @@ -1134,9 +1121,9 @@ har_in01,89,26,5 script Johnny James#har_in01 10213,{ mes "...Damn it!"; mes "Don't come back until you have ^4d4dffAlbert's mane^000000 to show to me, got it?"; mes "Now get outta here!"; + rock_main_quest = 9; erasequest 7797; setquest 7798;// Perfectly Prime - rock_main_quest = 9; close; } if (rock_main_quest < 14) { @@ -1187,10 +1174,10 @@ har_in01,89,26,5 script Johnny James#har_in01 10213,{ mes "It'll take many of you wimps to lift the elevator."; mes "Good luck."; mes "And don't forget to tell the sheriff I cooperated."; + rock_main_quest = 15; delitem 25249,1;// Buffalo_Bandit_Mane erasequest 7803;// Happy for Broken Trust setquest 7804;// Location of the Ores - rock_main_quest = 15; close; } if (rock_main_quest == 15) { @@ -1205,8 +1192,7 @@ har_in01,89,26,5 script Johnny James#har_in01 10213,{ close; OnInit: - questinfo 7798, QTYPE_QUEST, 1; - setquestinfo_req 7798,7797,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 8 || rock_main_quest == 14" ); end; } @@ -1339,18 +1325,17 @@ rockrdg1,156,312,3 script Unmoving Freight Train# 4_ENERGY_RED,{ classchange( HIDDEN_WARP_NPC, "Johnny James#revt04", bc_self ); sleep2 2000; npctalk "Let's go back, shall we?", "Wyatt Warp#revt03", bc_self; + rock_main_quest = 6; erasequest 7795; setquest 7796;// Unexpected Arrest - rock_main_quest = 6; setpcblock PCBLOCK_NPC, false; - close; + end; } mes "It's worthless and abandoned."; close; OnInit: - questinfo 7796, QTYPE_QUEST, 1; - setquestinfo_req 7796,7795,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 5" ); end; } @@ -1462,9 +1447,9 @@ harboro1,288,193,5 script Shawn McCurdy#harboro1 10215,{ mes "[Shawn McCurdy]"; mes "The entrance to the second floor of the mine is ^4d4dfffarther south from the main entrance of the mine^000000."; mes "I need to make some arrangements. I'll meet you there."; + rock_main_quest = 11; erasequest 7799; setquest 7800;// Shawn McCurdy's Weapon 2 - rock_main_quest = 11; close; } if (rock_main_quest == 11) { @@ -1507,8 +1492,7 @@ harboro1,288,193,5 script Shawn McCurdy#harboro1 10215,{ end; OnInit: - questinfo 7800, QTYPE_QUEST, 1; - setquestinfo_req 7800,7799,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 10" ); end; } @@ -1594,8 +1578,7 @@ rockrdg2,347,216,5 script Shawn McCurdy#rockrdg2 10215,{ close; OnInit: - questinfo 7801, QTYPE_QUEST, 1; - setquestinfo_req 7801,7800,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 11 || rock_main_quest == 12" ); end; } @@ -1610,9 +1593,9 @@ rockmi2,10,86,5 script Shawn McCurdy#rockmi2 10215,{ mes "[Shawn McCurdy]"; mes "In the meantime, I'll check the pulley that we need to use to go back up."; mes "We made it in a hurry, so it's a bit unsafe sometimes. Hah hah."; + rock_main_quest = 12; erasequest 7800; setquest 7801;// Shawn McCurdy's Weapon 3 - rock_main_quest = 12; close; } if (rock_main_quest == 12) { @@ -1652,9 +1635,9 @@ rockmi2,10,86,5 script Shawn McCurdy#rockmi2 10215,{ mes "[Shawn McCurdy]"; mes "The bandits might stand guard around the mine."; mes "Please be careful."; + rock_main_quest = 17; erasequest 7805;// Location of the Ores 2 setquest 7806;// Location of the Ores 3 - rock_main_quest = 17; close; } if (rock_main_quest == 17) { @@ -1709,8 +1692,7 @@ rockmi2,10,86,5 script Shawn McCurdy#rockmi2 10215,{ end; OnInit: - questinfo 7801, QTYPE_QUEST, 1; - setquestinfo_req 7801,7800,1; + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 11 || rock_main_quest == 16" ); end; } @@ -2362,8 +2344,11 @@ rockrdg1,341,133,3 script Mrs. Cacturon#rrrem01 10220,{ close; } end; - -// fix me : questinfo when main quest completed only, playtime 2 or hunting 2 +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && (!isbegin_quest(16078) || (checkquest(16078,HUNTING) == 2 && countitem(25246) >= 5))" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(16080,HUNTING) == 2" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(16079,PLAYTIME) == 2" ); + end; } rockrdg1,339,134,3 script Little Lecter#rrrem02 10222,{ @@ -3301,7 +3286,35 @@ harboro1,357,155,3 script Steel Vigilante#1 4_M_MASKMAN,{ else npctalk "Enthusiastic Job Seeker: I want to work, too!", "Enthusiastic Job Seeker#11"; end; } - getexp 8640,0; // fix me: seem to be (base exp = count * mob base exp, job exp = count * mob job exp) + switch(.@quest_id) { + case 12391:// Buffaloes with Rifles + .@mob_id = 3736; + .@count = 15; + break; + case 12392:// Punishing the Red Masks + .@mob_id = 3737; + .@count = 15; + break; + case 12393:// Eye Patch Desperadoes + .@mob_id = 3738; + .@count = 15; + break; + case 12394:// Exterminate Gray Four-legged Beasts + .@mob_id = 3739; + .@count = 20; + break; + case 12395:// Exterminate Swamp Arclouzes + .@mob_id = 3787; + .@count = 10; + break; + case 12396:// Exterminate Brown Rats + .@mob_id = 3788; + .@count = 10; + break; + } + .@base_exp = getmonsterinfo(.@mob_id, MOB_BASEEXP) * .@count; + .@job_exp = getmonsterinfo(.@mob_id, MOB_JOBEXP) * .@count; + getexp .@base_exp, .@job_exp; getitem 25250,2;// Rock Ridge Coin erasequest .@quest_id; setquest 12390;// Relieved for Now @@ -3401,7 +3414,27 @@ harboro1,357,152,3 script Steel Vigilante#2 4_M_ACROSS,{ end; } } - getexp 50800,47160;// fix me: seem to be (base exp = count * mob base exp, job exp = count * mob job exp) + switch(.@quest_id) { + case 12399:// Hunt Heinous Criminals + .@mob_id = 3747; + .@count = 10; + break; + case 12400:// Hunt Heinous Criminals + .@mob_id = 3748; + .@count = 10; + break; + case 12401:// Hunt Heinous Criminals + .@mob_id = 3749; + .@count = 10; + break; + case 12402:// Eliminate Dangerous Gas + .@mob_id = 3740; + .@count = 10; + break; + } + .@base_exp = getmonsterinfo(.@mob_id, MOB_BASEEXP) * .@count; + .@job_exp = getmonsterinfo(.@mob_id, MOB_JOBEXP) * .@count; + getexp .@base_exp, .@job_exp; getitem 25250,3;// Rock Ridge Coin erasequest .@quest_id; setquest 12398;// You're Good @@ -4319,7 +4352,11 @@ harboro2,164,80,5 script Demon#srdg01 4_M_NFMAN,{ } end; -// fix me : questinfo when playtime 2 +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && !isbegin_quest(14672) && checkquest(14673,PLAYTIME) == -1" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(14672,HUNTING) == 2 && countitem(25277) > 9 && countitem(6213) > 0" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(14673,PLAYTIME) == 2" ); + end; } harboro2,166,80,5 script Traces of Fire#srdg01 4_TRACE,{ @@ -4471,15 +4508,14 @@ rockrdg2,295,328,5 script Frail Ghast#rockdaily 10231,{ end; OnInit: - questinfo 1298, QTYPE_QUEST, 1; - // fix me: questinfo 9457 - // on hunting == -1 - // on hunting == 2 - // on playtime == 2 + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && !isbegin_quest(1298) && checkquest(1299,PLAYTIME) == -1" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(1298,HUNTING) == 2" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "rock_main_quest == 22 && checkquest(1299,PLAYTIME) == 2" ); end; } -// fix me: incomplete, missing quest 1323 (same text) + +// Mrs. McPhy harboro1,347,65,3 script Mrs. McPhy#rockdaily 1_F_MERCHANT_02,{ if (BaseLevel < 100) { mes "[Mrs. McPhy]"; @@ -4495,7 +4531,6 @@ harboro1,347,65,3 script Mrs. McPhy#rockdaily 1_F_MERCHANT_02,{ mes "Grr, I can't believe you! You're getting only half your dinner tonight!"; close; } - switch( checkquest(1329,PLAYTIME) ) { case -1: break; @@ -4516,29 +4551,91 @@ harboro1,347,65,3 script Mrs. McPhy#rockdaily 1_F_MERCHANT_02,{ mes "We have no one else to turn to. Please come back if you change your mind."; close; } - if (rand(2) == 0) { - .@quest_id = 1325; + .@r = rand(4); + if (.@r == 0) + .@string$ = "glove"; + else if (.@r == 1) + .@string$ = "alarm clock"; + else if (.@r == 2) .@string$ = "spoon"; - } - else { - .@quest_id = 1326; + else .@string$ = "hat"; - } mes "[Mrs. McPhy]"; mes "Today Spotty took a " + .@string$ + ". Could you look for it? It may be easily replaceable, but I can't keep buying things every time Spotty takes something."; next; mes "[Mrs. McPhy]"; mes "Go outside the village and talk to my husband. He'll tell you where it might be."; erasequest 1329;// Spotty in the Dreamland - setquest .@quest_id;// Spotty, No! + setquest rand(1323,1327);// Spotty, No! + if (isbegin_quest(1330)) // debug + erasequest 1330; + if (isbegin_quest(1322) == 0) { // debug + setquest 1322; + completequest 1322; + } + setquest 1330;// Spotty's Holes close; } + for ( .@quest_id = 1321; .@quest_id < 1329; .@quest_id++ ) { + if (isbegin_quest(.@quest_id) == 1) + break; + } - if (isbegin_quest(1330) == 0) { - if (isbegin_quest(1321) == 1) {// debug: player can't finish the quest on official - setquest 1330; - end; - } + switch( .@quest_id ) { + case 1321: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + mes "[Mrs. McPhy]"; + mes "Spotty would be a perfect dog if he doesn't take things out of the house. Sigh..."; + if (isbegin_quest(1330) == 0) // debug + setquest 1330;// Spotty's Holes + close; + + case 1322:// First time doing the quest + mes "[Mrs. McPhy]"; + mes "Adventurer, we've found the ring!"; + mes "After all the time we spent searching the village, we've found it inside his house."; + next; + mes "[Mrs. McPhy]"; + mes "By the way, what's that shining thing in your hand?"; + next; + select("Show what's in your hand."); + mes "[Mrs. McPhy]"; + mes "This is a Rock Ridge Coin. You can use it like money inside the village. I wasn't comfortable letting you help us for free. I'm glad you can at least have this."; + next; + mes "[Mrs. McPhy]"; + mes "That Rock Ridge Coin is yours. Thank you for helping us."; + erasequest 1330;// Spotty's Holes + completequest 1322;// Found Something + getitem 25250,1;// Rock Ridge Coin + setquest 1329;// Spotty in the Dreamland + next; + mes "[Mrs. McPhy]"; + mes "And, mm... Do you mind helping us again tomorrow? Spotty keeps taking things from the house to the wasteland, and we need them back."; + next; + mes "[Mrs. McPhy]"; + mes "Spotty tired itself out and fell asleep. Could you come back tomorrow after 4:00 a.m.? We'll have something to give you next time."; + close; + + case 1328: + mes "[Mrs. McPhy]"; + mes "You've found it! Thank you so much. We've been trying to correct Spotty's behavior, and it's difficult."; + next; + mes "[Mrs. McPhy]"; + mes "Here's the Rock Ridge Coin we promised. Thank you for searching the wasteland for us."; + erasequest 1328;// Found Missing Items + erasequest 1330;// Spotty's Holes + getitem 25250,1;// Rock Ridge Coin + setquest 1329;// Spotty in the Dreamland + next; + mes "[Mrs. McPhy]"; + mes "Could you come back again? If you're not busy, you're welcome anytime after 4:00 a.m each day."; + close; + + default:// first time mes "[Mrs. McPhy]"; mes "How many times do I have to tell you to keep your dog away from our things? Do you really want me to send it away on a ship?"; next; @@ -4644,72 +4741,34 @@ harboro1,347,65,3 script Mrs. McPhy#rockdaily 1_F_MERCHANT_02,{ mes "S-should I? Uh, mm... Okay."; close; } - if (isbegin_quest(1321) == 1 || isbegin_quest(1325) == 1 || isbegin_quest(1326) == 1) { - mes "[Mrs. McPhy]"; - mes "Spotty would be a perfect dog if he doesn't take things out of the house. Sigh..."; - close; - } - if (isbegin_quest(1322) == 1) {// First time doing the quest - mes "[Mrs. McPhy]"; - mes "Adventurer, we've found the ring!"; - mes "After all the time we spent searching the village, we've found it inside his house."; - next; - mes "[Mrs. McPhy]"; - mes "By the way, what's that shining thing in your hand?"; - next; - select("Show what's in your hand."); - mes "[Mrs. McPhy]"; - mes "This is a Rock Ridge Coin. You can use it like money inside the village. I wasn't comfortable letting you help us for free. I'm glad you can at least have this."; - next; - mes "[Mrs. McPhy]"; - mes "That Rock Ridge Coin is yours. Thank you for helping us."; - erasequest 1322;// Found Something - completequest 1330;// Spotty's Holes - getitem 25250,1;// Rock Ridge Coin - setquest 1329;// Spotty in the Dreamland - next; - mes "[Mrs. McPhy]"; - mes "And, mm... Do you mind helping us again tomorrow? Spotty keeps taking things from the house to the wasteland, and we need them back."; - next; - mes "[Mrs. McPhy]"; - mes "Spotty tired itself out and fell asleep. Could you come back tomorrow after 4:00 a.m.? We'll have something to give you next time."; - close; - } - if (isbegin_quest(1328) == 1) { - mes "[Mrs. McPhy]"; - mes "You've found it! Thank you so much. We've been trying to correct Spotty's behavior, and it's difficult."; - next; - mes "[Mrs. McPhy]"; - mes "Here's the Rock Ridge Coin we promised. Thank you for searching the wasteland for us."; - erasequest 1328;// Found Missing Items - setquest 1329;// Spotty in the Dreamland - getitem 25250,1;// Rock Ridge Coin - next; - mes "[Mrs. McPhy]"; - mes "Could you come back again? If you're not busy, you're welcome anytime after 4:00 a.m each day."; - close; - } end; OnInit: - questinfo 1321, QTYPE_QUEST, 1; - setquestinfo_level 1321,100,175; - questinfo 1329, QTYPE_QUEST, 1; - setquestinfo_req 1329,1322,1; - // questinfo if playtime == 2 + questinfo( QTYPE_QUEST, QMARK_YELLOW, + "BaseLevel > 99 && checkquest(1329,PLAYTIME) == -1 && !isbegin_quest(1321) && !isbegin_quest(1322) && !isbegin_quest(1323) && !isbegin_quest(1324) && !isbegin_quest(1325) && !isbegin_quest(1326) && !isbegin_quest(1327) && !isbegin_quest(1328)" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel > 99 && (isbegin_quest(1322) == 1 || isbegin_quest(1328) == 1)" ); + questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel > 99 && checkquest(1329,PLAYTIME) == 2" ); end; } rockrdg1,36,250,5 script Mr. McPhy#rkdlout 4W_M_02,{ - if (isbegin_quest(1321) == 1) { + for ( .@quest_id = 1321; .@quest_id < 1330; .@quest_id++ ) { + if (isbegin_quest(.@quest_id) == 1) + break; + } + switch( .@quest_id ) { + case 1321: mes "[Mr. McPhy]"; mes "My wife said Spotty went out the back door and ran straight past the barbed-wire fence."; next; mes "[Mr. McPhy]"; mes "But he couldn't have gone too far because he came back to me pretty quickly. Why don't you walk along the fence and look for holes with white hair floating around them?"; close; - } - if (isbegin_quest(1325) == 1 || isbegin_quest(1326) == 1) { + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: mes "[Mr. McPhy]"; mes "My wife sent me here to give you directions, but I have no idea where he might have been."; next; @@ -4719,13 +4778,13 @@ rockrdg1,36,250,5 script Mr. McPhy#rkdlout 4W_M_02,{ mes "[Mr. McPhy]"; mes "And he doesn't seem to venture out too far. It's probably because he's still young. I've marked three possible locations in the middle of your map. You don't have to look further than those locations."; close; - } - if (isbegin_quest(1322) == 1 || isbegin_quest(1328) == 1) { + case 1322: + case 1328: mes "[Mr. McPhy]"; mes "Did you find something? Then let's go back!"; + classchange( HIDDEN_WARP_NPC, "", bc_self ); close; - } - if (isbegin_quest(1329) == 1) { + case 1329: mes "[Mr. McPhy]"; mes "Ah, Adventurer. Shhh! Please keep your voice down: the Buffalo Bandits might hear us."; next; @@ -4738,138 +4797,107 @@ rockrdg1,36,250,5 script Mr. McPhy#rkdlout 4W_M_02,{ mes "[Mr. McPhy]"; mes "She didn't say anything when I quit my job because I was too scared of the Buffalo Bandits. She's a good woman."; close; + default: + mes "[Mr. McPhy]"; + mes "*Gasp* Buffalo Bandits!"; + close2; + classchange( HIDDEN_WARP_NPC, "", bc_self ); + end; } - mes "[Mr. McPhy]"; - mes "*Gasp* Buffalo Bandits!"; - close2; - classchange( HIDDEN_WARP_NPC, "", bc_self ); end; -// OnInit: -// questinfo 1321, QTYPE_QUEST, 1;// fix me: quest ID -// end; -} - -rockrdg1,43,145,3 script Hole#rkq1321 4_CRACK,{ - if (isbegin_quest(1321) == 1) { - mes "- There's a hole in the ground."; - mes "It has something shining inside it,"; - next; - mes "But it's not a gold ring."; - mes "I should take it with me for now. -"; - erasequest 1321;// Spotty and Her Ring - setquest 1322;// Found Something - close; - } - mes "- There's a hole in the ground."; - mes "It only has a stone sticking out of the ground inside it. -"; - close; -} - -rockrdg1,170,233,3 script Hole#rkdqgd1 4_CRACK,{ - if (isbegin_quest(1321) == 0) { - mes "- There's a hole in the ground."; - mes "It has a little bit of white hair scattered inside it. -"; - close; - } - mes "- There's a hole in the ground."; - mes "It's empty. -"; - next; - mes "- I don't have to search farther than this. -"; - close; - OnInit: - // questinfo , QTYPE_QUEST, 1;// fix me: 1321 required ? + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(1321) > 0" ); end; } -rockrdg1,183,143,3 script Hole#rkdqgd2 4_CRACK,{ - if (isbegin_quest(1321) == 0) { +rockrdg1,170,233,3 script Hole#rkdqgd1 4_CRACK,{ + setarray .@list[0],1321,1323,1324,1325,1326,1327; + .@size = getarraysize(.@list); + for ( .@i = 0; .@i < .@size; .@i++ ) { + if (isbegin_quest(.@list[.@i])) + break; + } + if (.@list[.@i] == 0) { mes "- There's a hole in the ground."; mes "It has a little bit of white hair scattered inside it. -"; close; } mes "- There's a hole in the ground."; - mes "It's empty. -"; + if (strnpcinfo(2) == "rkdqgd3") + mes "It only has wet soil inside it. -"; + else + mes "It's empty. -"; next; mes "- I don't have to search farther than this. -"; close; OnInit: - // questinfo , QTYPE_QUEST, 1;// fix me: 1321 required ? + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(1330) > 0" ); end; } +rockrdg1,183,143,3 duplicate(Hole#rkdqgd1) Hole#rkdqgd2 4_CRACK +rockrdg1,215,72,3 duplicate(Hole#rkdqgd1) Hole#rkdqgd3 4_CRACK -rockrdg1,215,72,3 script Hole#rkdqgd3 4_CRACK,{ - if (isbegin_quest(1321) == 0) { - mes "- There's a hole in the ground."; - mes "It has a little bit of white hair scattered inside it. -"; - close; - } - mes "- There's a hole in the ground."; - mes "It only has wet soil inside it. -"; - next; - mes "- I don't have to search farther than this. -"; - close; -OnInit: - // questinfo , QTYPE_QUEST, 1;// fix me: 1321 required ? - end; -} +rockrdg1,43,145,3 script Hole#rkq1321 4_CRACK,{ + .@quest_id_npc = atoi( replacestr(strnpcinfo(2), "rkq", "") ) ; + setarray .@list[0],1321,1323,1324,1325,1326,1327; + .@size = getarraysize(.@list); + for ( .@i = 0; .@i < .@size; .@i++ ) { + if (isbegin_quest(.@list[.@i])) + break; + } -rockrdg1,58,195,3 script Hole#rkq1324 4_CRACK,{ mes "- There's a hole in the ground."; - mes "It has a tumbleweed rolling around inside it. -"; - close; -} - -rockrdg1,109,60,3 script Hole#rkq1326 4_CRACK,{ - if (isbegin_quest(1326) == 1) { - mes "- There's a hole in the ground."; - mes "It has something inside it. -"; - next; - mes "- This must be what Mr. McPhy is looking for. I should bring it to her. -"; - erasequest 1326;// Spotty, No! - setquest 1328;// Found Missing Items + if (.@list[.@i] == 0) { + mes "It has a little bit of white hair scattered inside it. -"; close; } - mes "- There's a hole in the ground."; - mes "It has a little bit of white hair scattered inside it. -"; - close; -} - -rockrdg1,71,149,3 script Hole#rkq1325 4_CRACK,{ - if (isbegin_quest(1325) == 1) { - mes "- There's a hole in the ground."; + if (.@list[.@i] == .@quest_id_npc) { + if (.@list[.@i] == 1321) { + mes "It has something shining inside it,"; + next; + mes "But it's not a gold ring."; + mes "I should take it with me for now. -"; + erasequest 1321; + setquest 1322;// Found Something + close; + } mes "It has something inside it. -"; next; mes "- This must be what Mr. McPhy is looking for. I should bring it to her. -"; - erasequest 1325;// Spotty, No! + erasequest .@list[.@i]; setquest 1328;// Found Missing Items close; } - mes "- There's a hole in the ground."; - mes "A small insect is scuttling around inside it. -"; - close; -} - -rockrdg1,100,230,3 script Hole#rkq1323 4_CRACK,{ - if (isbegin_quest(1323) == 1) { - mes "- There's a hole in the ground."; - mes "It has something inside it. -"; - next; - mes "- This must be what Mr. McPhy is looking for. I should bring it to her. -"; - erasequest 1323;// Spotty, No! - setquest 1328;// Found Missing Items + switch( .@list[.@i] ) { + case 1321: + mes "It only has a stone sticking out of the ground inside it. -"; + close; + case 1323: + mes "It has a small animal bone inside it. -"; + close; + case 1324: + mes "It has a tumbleweed rolling around inside it. -"; + close; + case 1325: + mes "A small insect is scuttling around inside it. -"; + close; + case 1326: + mes "It only has weeds growing inside it. -"; + close; + case 1327: + mes "It's only filled with dust. -"; close; } } +rockrdg1,100,230,3 duplicate(Hole#rkq1321) Hole#rkq1323 4_CRACK +rockrdg1,58,195,3 duplicate(Hole#rkq1321) Hole#rkq1324 4_CRACK +rockrdg1,71,149,3 duplicate(Hole#rkq1321) Hole#rkq1325 4_CRACK +rockrdg1,109,60,3 duplicate(Hole#rkq1321) Hole#rkq1326 4_CRACK +rockrdg1,191,101,3 duplicate(Hole#rkq1321) Hole#rkq1327 4_CRACK -rockrdg1,100,230,3 script Unknown #50572 4_CRACK,{ - mes "- There's a hole in the ground."; - mes "It has a little bit of white hair scattered inside it. -"; - close; -} // Mr. McPhy quests harboro1,345,61,3 script Spotty#rockdaily 4_DOG01,{ @@ -4880,17 +4908,17 @@ harboro1,345,61,3 script Spotty#rockdaily 4_DOG01,{ } harboro1,344,61,5 script Mr. McPhy#rockdaily 4W_M_02,{ - switch( isbegin_quest(1330) ) { - case 0:// First time - mes "[Mr. McPhy]"; - mes "Spotty, do you want a treat? Hmm?"; - close; - case 1: - if (isbegin_quest(1321) == 1) { + switch( isbegin_quest(1322) ) { + case 0: + if (isbegin_quest(1321) == 0) { mes "[Mr. McPhy]"; - mes "My wife and I decided to check the village separately, but I'm not sure if we'd be done before you're back."; + mes "Spotty, do you want a treat? Hmm?"; close; } + mes "[Mr. McPhy]"; + mes "My wife and I decided to check the village separately, but I'm not sure if we'd be done before you're back."; + close; + case 1: mes "[Mr. McPhy]"; mes "Oh, poor Spotty. You're itching from losing so much hair. Do you want your daddy to brush you?"; close; @@ -4985,11 +5013,10 @@ harboro1,344,61,5 script Mr. McPhy#rockdaily 4W_M_02,{ } end; -// OnInit: - // fix me: questinfo 1331, QTYPE_QUEST, 1; - // playtime == 2 - // display when hunting completed - // end; +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, + "isbegin_quest(1322) == 2 && (checkquest(1332,PLAYTIME) == 2 || checkquest(1332,PLAYTIME) == -1 && (checkquest(1331,HUNTING) == -1 || checkquest(1331,HUNTING) == 2))" ); + end; } // Misc NPCs diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf index b77b3393800..09dec33d721 100644 --- a/npc/re/scripts_athena.conf +++ b/npc/re/scripts_athena.conf @@ -43,6 +43,7 @@ npc: npc/re/guides/guides_juno.txt npc: npc/re/guides/guides_lighthalzen.txt npc: npc/re/guides/guides_louyang.txt npc: npc/re/guides/guides_lutie.txt +npc: npc/re/guides/guides_malangdo.txt npc: npc/re/guides/guides_malaya.txt npc: npc/re/guides/guides_mora.txt npc: npc/re/guides/guides_morroc.txt @@ -121,6 +122,7 @@ npc: npc/re/merchants/socket_enchant2.txt //npc: npc/re/merchants/cash_trader-idRO.txt npc: npc/re/merchants/te_merchant.txt npc: npc/re/merchants/shadow_refiner.txt +npc: npc/re/merchants/eden_market.txt // --------------------------- Others --------------------------- npc: npc/re/other/achievements.txt @@ -174,6 +176,7 @@ npc: npc/re/quests/monstertamers.txt npc: npc/re/quests/mrsmile.txt npc: npc/re/quests/ninja_quests.txt npc: npc/re/quests/pile_bunker.txt +npc: npc/re/quests/quest_payon.txt npc: npc/re/quests/quests_13_1.txt npc: npc/re/quests/quests_14_3.txt npc: npc/re/quests/quests_14_3_bis.txt diff --git a/npc/warps/cities/yuno.txt b/npc/warps/cities/yuno.txt index ee29210f3ce..e6fa7d59680 100644 --- a/npc/warps/cities/yuno.txt +++ b/npc/warps/cities/yuno.txt @@ -20,6 +20,7 @@ //= 1.8 Added Yuno Government Buildings warps //= 1.9 Updated Yuno Government Buildings warps according //= to Schwartzvalt Trilogy quest. [SinSloth] +//= 2.0 Correct position of portals [JohnnyPlayy] //============================================================ //= Yuno City ================================================ @@ -57,10 +58,10 @@ yuno_in03,167,19,0 warp yun30 1,1,yuno,323,280 yuno_in03,167,72,0 warp yun31 1,1,yuno_in03,179,113 yuno_in03,179,109,0 warp yun32 1,1,yuno_in03,167,69 yuno_in03,186,119,0 warp yun33 1,1,yuno_in03,163,174 -yuno_in03,159,174,0 warp yun34 1,1,yuno_in03,183,119 +yuno_in03,161,174,0 warp yun34 1,1,yuno_in03,183,119 yuno_in03,186,131,0 warp yun35 1,1,yuno_in03,163,187 -yuno_in03,159,187,0 warp yun36 1,1,yuno_in03,183,131 -yuno_in03,172,118,0 warp yun37 1,1,yuno_in03,120,178 +yuno_in03,161,187,0 warp yun36 1,1,yuno_in03,183,131 +yuno_in03,173,118,0 warp yun37 1,1,yuno_in03,120,178 yuno_in03,124,178,0 warp yun38 1,1,yuno_in03,176,118 yuno_in03,111,192,0 warp yun39 1,1,yuno_in03,162,132 yuno_in03,162,129,0 warp yun40 1,1,yuno_in03,111,189 diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index b9e7db425fe..652b6d5c64b 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -37,9 +37,9 @@ CREATE TABLE `item_db_re` ( # # Healing Items #============================================================= -REPLACE INTO `item_db_re` VALUES (501,'Red_Potion','Red Potion',0,50,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(45,65),0;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (502,'Orange_Potion','Orange Potion',0,200,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(105,145),0;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (503,'Yellow_Potion','Yellow Potion',0,550,NULL,130,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(175,235),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (501,'Red_Potion','Red Potion',0,10,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(45,65),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (502,'Orange_Potion','Orange Potion',0,50,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(105,145),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (503,'Yellow_Potion','Yellow Potion',0,180,NULL,130,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(175,235),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (504,'White_Potion','White Potion',0,1200,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(325,405),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (505,'Blue_Potion','Blue Potion',0,5000,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal 0,rand(40,60);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (506,'Green_Potion','Green Potion',0,40,NULL,70,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_end SC_POISON; sc_end SC_SILENCE; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_HALLUCINATION;',NULL,NULL); @@ -113,7 +113,7 @@ REPLACE INTO `item_db_re` VALUES (575,'Piece_Of_Cake_','2nd Anniversary Cake',0, REPLACE INTO `item_db_re` VALUES (576,'Prickly_Fruit','Prickly Fruit',0,540,NULL,60,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(150,300),rand(20,30);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (577,'Grain','Bag of Grain',0,200,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(60,70),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (578,'Strawberry','Strawberry',0,200,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal 0,rand(16,28);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (579,'Delicious_Fish','Fresh Fish',0,250,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(100,150),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (579,'Delicious_Fish','Fresh Fish',0,700,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(100,150),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (580,'Bread','Bread',0,150,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(50,90),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (581,'Mushroom','Edible Mushroom',0,40,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(20,30),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (582,'Orange','Orange',0,300,NULL,20,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(10,20),rand(10,20);',NULL,NULL); @@ -179,12 +179,12 @@ REPLACE INTO `item_db_re` VALUES (639,'Armlet_Of_Obedience','Armlet of Obedience REPLACE INTO `item_db_re` VALUES (640,'Shining_Stone','Shining Stone',2,3000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1155;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (641,'Contracts_In_Shadow','Contract in Shadow',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1109;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (642,'Book_Of_Devil','Book of the Devil',2,1800,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1101;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (643,'Pet_Incubator','Pet Incubator',2,3000,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'bpet;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (643,'Pet_Incubator','Pet Incubator',2,10000,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'bpet;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (644,'Gift_Box','Gift Box',2,1000,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getrandgroupitem(IG_GiftBox,1);',NULL,NULL); #ASPD in RE they give a fixed +4/+6/+9 ASPD -REPLACE INTO `item_db_re` VALUES (645,'Center_Potion','Concentration Potion',2,800,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,4;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (656,'Awakening_Potion','Awakening Potion',2,1500,NULL,150,NULL,NULL,NULL,NULL,0xFFF7FEEF,63,2,NULL,NULL,'40',NULL,NULL,'sc_start SC_ASPDPOTION1,1800000,6;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (657,'Berserk_Potion','Berserk Potion',2,3000,NULL,200,NULL,NULL,NULL,NULL,0x41E646A6,63,2,NULL,NULL,'85',NULL,NULL,'sc_start SC_ASPDPOTION2,1800000,9;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (645,'Center_Potion','Concentration Potion',2,1200,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (656,'Awakening_Potion','Awakening Potion',2,2200,NULL,150,NULL,NULL,NULL,NULL,0xFFF7FEEF,63,2,NULL,NULL,'40',NULL,NULL,'sc_start SC_ASPDPOTION1,1800000,6;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (657,'Berserk_Potion','Berserk Potion',2,4500,NULL,200,NULL,NULL,NULL,NULL,0x41E646A6,63,2,NULL,NULL,'85',NULL,NULL,'sc_start SC_ASPDPOTION2,1800000,9;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (658,'Union_Of_Tribe','Union of Tribe',2,2,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'guildgetexp rand(600000,1200000);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (659,'Heart_Of_Her','Her Heart',2,500,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1188;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (660,'Prohibition_Red_Candle','Forbidden Red Candle',2,20000,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1200;',NULL,NULL); @@ -353,7 +353,7 @@ REPLACE INTO `item_db_re` VALUES (965,'Clam_Shell','Clam Shell',3,56,NULL,10,NUL REPLACE INTO `item_db_re` VALUES (966,'Flesh_Of_Clam','Clam Flesh',3,158,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (967,'Turtle_Shell','Turtle Shell',3,680,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (968,'Voucher_Of_Orcish_Hero','Heroic Emblem',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (969,'Gold','Gold',3,200000,NULL,200,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (969,'Gold','Gold',3,150000,NULL,200,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (970,'Alchol','Alcohol',3,400,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (971,'Detrimindexta','Detrimindexta',3,400,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (972,'Karvodailnirol','Karvodailnirol',3,400,NULL,30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -448,7 +448,7 @@ REPLACE INTO `item_db_re` VALUES (1061,'Starsand_Of_Witch','Witched Starsand',3, REPLACE INTO `item_db_re` VALUES (1062,'Pumpkin_Head','Jack o\' Pumpkin',3,374,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1063,'Sharpened_Cuspid','Fang',3,680,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1064,'Reins','Reins',3,802,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (1065,'Booby_Trap','Trap',3,100,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (1065,'Booby_Trap','Trap',3,75,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1066,'Tree_Of_Archer_1','Fine-grained Trunk',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1067,'Tree_Of_Archer_2','Solid Trunk',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1068,'Tree_Of_Archer_3','Barren Trunk',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -820,6 +820,7 @@ REPLACE INTO `item_db_re` VALUES (1442,'Ru_Gold_Spear','Ru Gold Spear',5,0,NULL, REPLACE INTO `item_db_re` VALUES (1443,'Crimson_Spear','Crimson Spear',5,20,NULL,900,'90',NULL,3,2,0x00004082,63,2,2,3,'70',1,4,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1446,'Requiem_Spear','Requiem Spear',5,20,NULL,1000,'130',NULL,3,NULL,0x00004080,63,2,2,4,'100',1,4,'.@r = getrefine(); .@b = 40; bonus bUnbreakableWeapon; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1447,'Poison_Forged_Spear','Poison Forged Spear',5,0,NULL,500,'150',NULL,3,3,0x00004080,58,2,2,4,'100',1,4,'bonus bAtkEle,Ele_Poison; bonus bCritical,10; skill "TF_DOUBLE",5; bonus bDoubleRate,25; bonus2 bAddEff,Eff_Poison,1000; bonus2 bAddEff2,Eff_Poison,300;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (1449,'Gelerdria_','Gelerdria',5,20,NULL,700,'145',NULL,3,3,0x00004082,63,2,2,4,'48',1,4,'bonus bAtkEle,Ele_Earth; bonus bMaxHP,800; bonus bMaxSP,-50;',NULL,NULL); #=================================================================== # 2-Handed Spears #=================================================================== @@ -1022,7 +1023,7 @@ REPLACE INTO `item_db_re` VALUES (1635,'BF_Staff4','Speedy Recovery Wand',5,20,N REPLACE INTO `item_db_re` VALUES (1636,'Thorn_Staff','Thorn Staff of Darkness',5,20,NULL,700,'60:160',NULL,1,0,0x00018314,18,2,2,4,'75',1,10,'bonus bAtkEle,Ele_Dark; bonus bInt,3; bonus bDex,3; .@r = getrefine(); bonus2 bIgnoreMdefClassRate,Class_Normal,.@r; bonus2 bIgnoreMdefClassRate,Class_Boss,.@r; bonus bDelayRate,-(.@r*3/2);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1637,'Eraser','Eraser',5,20,NULL,500,'80:170',NULL,1,0,0x00018314,18,2,2,4,'70',1,10,'bonus bInt,3; bonus bDex,2; bonus bSPrecovRate,8; bonus5 bAutoSpell,"NPC_WIDESOULDRAIN",(getrefine()>9?3:1),5,BF_MAGIC,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1638,'Healing_Staff_C','Staff Of Healing',5,20,NULL,0,'10:125',NULL,1,0,0x00008110,63,2,2,3,'1',1,10,'bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bHealPower,(getrefine()*3/2);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (1639,'N_Rod','Novice Rod',5,0,NULL,0,'15:32',NULL,1,3,0x00818315,63,2,2,1,'1',0,10,'bonus bMatkRate,16;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (1639,'N_Rod','Novice Rod',5,0,NULL,0,'15:32',NULL,1,3,0x00818315,63,2,2,1,'1',0,10,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1640,'Krieger_Onehand_Staff1','Glorious Arc Wand',5,20,NULL,0,'70:135',NULL,1,0,0x00818314,63,2,2,4,'80',1,10,'bonus2 bMagicAddRace,RC_DemiHuman,15; bonus2 bMagicAddRace,RC_Player,15; .@r = getrefine(); bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,25 + ((.@r > 5) ? 5 : 0); bonus2 bIgnoreMdefRaceRate,RC_Player,25 + ((.@r > 5) ? 5 : 0); bonus bUnbreakableWeapon; if(.@r > 8) { bonus bMatkRate,5; bonus bVariableCastrate,-5; bonus bDelayRate,-5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1641,'Krieger_Onehand_Staff2','Glorious Cure Wand',5,20,NULL,0,'70:135',NULL,1,0,0x00818314,63,2,2,4,'80',1,10,'bonus bHealPower,14; bonus bDelayRate,-10; bonus bUnbreakableWeapon; .@r = getrefine(); if(.@r > 5) { bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreMdefRaceRate,RC_Player,5; bonus bHealPower,5+(min(14,.@r)-5)*2; } if(.@r > 8) bonus5 bAutoSpellOnSkill,"AL_HEAL","AL_HEAL",10,100,1; if(.@r > 9) { bonus bHealPower,10; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1642,'Staff_Of_Darkness','Staff Of Darkness',5,20,NULL,0,'100:120',NULL,1,0,0x00818314,63,2,2,2,'0',0,10,'bonus bVariableCastrate,-5; bonus bMatkRate,15; bonus bInt,2;',NULL,NULL); @@ -1339,6 +1340,7 @@ REPLACE INTO `item_db_re` VALUES (2027,'Sunflower_Kid','Sunflower Kid',5,10,NULL REPLACE INTO `item_db_re` VALUES (2030,'Unity_Two-Handed_Staff','Unity Two-Handed Staff',5,20,NULL,500,'95:135',NULL,1,1,0x800200,63,2,34,3,'1',1,23,'bonus bMatk,pow(getrefine(),2)*125/100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2032,'Requiem_Wizardry_Staff','Requiem Wizardry Staff',5,20,NULL,500,'100:230',NULL,1,NULL,0xFFFFFFFF,63,2,2,4,'100',1,10,'.@r = getrefine(); .@b = 40; .@c = 5; if(.@r>=5){ .@b += (.@r-5)*15+20; .@c += .@r-5; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; bonus2 bIgnoreMdefRace2Rate,RC2_BioLab,(.@r-5)*10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2039,'Illusion_Wizardry_Staff','Illusion Wizardry Staff',5,0,NULL,2400,'150:250',NULL,1,2,0x00810204,58,2,34,4,'100',1,23,'.@val = min(getrefine(),10)/2; bonus bInt,(6+.@val); bonus bDex,(2+.@val);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2049,'Blue_Flame_Cane','Blue Flame Cane',5,20,NULL,800,'110:300',NULL,1,2,0x00818314,63,2,34,4,'175',1,23,'.@r = getrefine; bonus bInt,7; bonus bMatkRate,.@r/2; bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; if (.@r>=11) bonus2 bSubSize,Size_All,20; if (.@r>=13) bonus bDelayrate,-15; bonus2 bMagicAtkEle,Ele_Fire,.@val; bonus2 bMagicAtkEle,Ele_Earth,.@val; bonus2 bMagicAtkEle,Ele_Water,.@val; bonus2 bMagicAtkEle,Ele_Holy,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2051,'Illusion_Survivor\'s_Staff','Illusion Survivor\'s Staff',5,0,NULL,1200,'100:240',NULL,1,2,0x00818314,63,2,34,4,'120',1,23,'.@r = getrefine(); bonus bDex,2; bonus bInt,2; bonus bMaxHP,600; bonus bUnbreakableWeapon; bonus bMatkRate,(.@r/2); if (.@r >= 7) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if (.@r >= 9) { bonus2 bSubSize,Size_Small,15; bonus2 bSubSize,Size_Medium,15; if (.@r >= 11) { bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubDefEle,Ele_Wind,15; bonus2 bSubDefEle,Ele_Earth,15; bonus2 bSubDefEle,Ele_Fire,15; } } }',NULL,NULL); #=================================================================== # Shields @@ -1699,7 +1701,7 @@ REPLACE INTO `item_db_re` VALUES (2452,'Freyja_SSandal30','Freyja Sprit Sandals' REPLACE INTO `item_db_re` VALUES (2453,'Freyja_SSandal60','Freyja Sprit Sandals',4,20,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,63,2,64,NULL,'20',0,0,'bonus bMaxHPrate,8; bonus bMaxSPrate,8;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2454,'Freyja_SSandal90','Freyja Sprit Sandals',4,20,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,63,2,64,NULL,'20',0,0,'bonus bMaxHPrate,8; bonus bMaxSPrate,8;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2455,'Time_Keepr_Boots','Time Keeper\'s Boots',4,30000,NULL,0,NULL,17,NULL,0,0xFFFFFFFF,63,2,64,NULL,'0',1,0,'bonus bMdef,1; bonus bMaxHP,100; bonus bHPrecovRate,10; bonus bSPrecovRate,10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2456,'Para_Team_Boots1','Eden Team Boots I',4,0,NULL,0,NULL,14,NULL,0,0xFFFFFFFF,63,2,64,NULL,'12',0,0,'bonus bHPrecovRate,10; bonus bSPrecovRate,2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2456,'Para_Team_Boots1','Eden Team Boots I',4,0,NULL,0,NULL,14,NULL,0,0xFFFFFFFF,63,2,64,NULL,'7',0,0,'bonus bHPrecovRate,10; bonus bSPrecovRate,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2457,'Para_Team_Boots2','Eden Team Boots II',4,0,NULL,0,NULL,16,NULL,0,0xFFFFFFFF,63,2,64,NULL,'26',0,0,'bonus bHPrecovRate,12; bonus bSPrecovRate,4;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2458,'Para_Team_Boots3','Eden Team Boots III',4,0,NULL,0,NULL,18,NULL,0,0xFFFFFFFF,63,2,64,NULL,'40',0,0,'bonus bHPrecovRate,14; bonus bSPrecovRate,6;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2459,'Upg_Shoes','Upg Shoes',4,20,NULL,200,NULL,15,NULL,1,0xFFFFFFFE,63,2,64,NULL,'0',1,0,'bonus bMaxHPrate,3;',NULL,NULL); @@ -1804,7 +1806,7 @@ REPLACE INTO `item_db_re` VALUES (2556,'Freyja_SScarf30','Freyja Soul Scarf',4,2 REPLACE INTO `item_db_re` VALUES (2557,'Freyja_SScarf60','Freyja Soul Scarf',4,20,NULL,400,NULL,4,NULL,0,0xFFFFFFFF,63,2,4,NULL,'20',0,0,'bonus bFlee,15; bonus2 bSubEle,Ele_Neutral,15;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2558,'Freyja_SScarf90','Freyja Soul Scarf',4,20,NULL,400,NULL,4,NULL,0,0xFFFFFFFF,63,2,4,NULL,'20',0,0,'bonus bFlee,15; bonus2 bSubEle,Ele_Neutral,15;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2559,'Time_Keepr_Manteau','Time Keeper\'s Manteau',4,30000,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'bonus bMdef,1; bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2560,'Para_Team_Manteau','Eden Team Manteau I',4,0,NULL,0,NULL,14,NULL,0,0xFFFFFFFF,63,2,4,NULL,'12',0,0,'bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2560,'Para_Team_Manteau','Eden Team Manteau I',4,0,NULL,0,NULL,14,NULL,0,0xFFFFFFFF,63,2,4,NULL,'7',0,0,'bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2561,'Upg_Hood','Upg Hood',4,0,NULL,100,NULL,9,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,0,'bonus bMaxHPrate,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2562,'Upg_Muffler','Upg Muffler',4,20,NULL,200,NULL,13,NULL,1,0xFFFFFFFE,63,2,4,NULL,'0',1,0,'bonus bMaxHPrate,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2563,'Upg_Manteau','Upg Manteau',4,20,NULL,300,NULL,18,NULL,1,0x006654E2,63,2,4,NULL,'0',1,0,'bonus bMaxHPrate,3;',NULL,NULL); @@ -2172,6 +2174,7 @@ REPLACE INTO `item_db_re` VALUES (2925,'Agi_Glove_','Agi Glove',4,75000,NULL,100 REPLACE INTO `item_db_re` VALUES (2926,'Vit_Glove_','Vit Glove',4,75000,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHP,100; bonus bMaxSP,20; bonus bMaxHP,(readparam(bVit)/10)*50; if(readparam(bVit)>=110) bonus bMaxHPrate,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2927,'Dex_Glove_','Dex Glove',4,75000,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHP,100; bonus bMaxSP,20; bonus bHit,(readparam(bDex)/10); if(readparam(bDex)>=110) bonus bLongAtkRate,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2928,'Luk_Glove_','Luk Glove',4,75000,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHP,100; bonus bMaxSP,20; bonus bCritical,(readparam(bLuk)/10); if(readparam(bLuk)>=110) bonus bCritAtkRate,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2935,'Sprint_Gloves','Sprint Gloves',4,20,NULL,100,NULL,0,NULL,1,0x000FDF80,58,2,136,NULL,'1',0,0,'bonus bVariableCastrate,-1; bonus bDelayrate,-1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2936,'Recovery_Ring','Recovery Ring',4,20,NULL,100,NULL,5,NULL,1,0xFFFFFFFF,63,2,136,NULL,'10',0,0,'bonus bVit,1; bonus bMaxHP,250; bonus bMaxHPrate,5; bonus bHealPower2,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2940,'Ninja_Manual','Ninja Manual',4,0,NULL,100,NULL,0,NULL,0,0x00000001,63,2,136,NULL,'0',0,0,'bonus bMaxSP,100; skill "NJ_UTSUSEMI",1; skill "NJ_KOUENKA",1; skill "NJ_SYURIKEN",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2941,'Gunslinger_Manual','Gunslinger Manual',4,0,NULL,100,NULL,0,NULL,0,0x00000001,63,2,136,NULL,'0',0,0,'bonus bMaxSP,100; skill "GS_GLITTERING",1; skill "GS_ADJUSTMENT",1; skill "GS_MADNESSCANCEL",1; skill "GS_INCREASING",1;',NULL,NULL); @@ -3539,7 +3542,7 @@ REPLACE INTO `item_db_re` VALUES (5326,'Masquerade_C','Masquerade C',4,1,NULL,0, REPLACE INTO `item_db_re` VALUES (5327,'Orc_Hero_Helm_C','Refined Helmet of Orc Hero',4,1,NULL,0,NULL,10,NULL,0,0xFFFFFFFE,63,2,768,NULL,'0',0,178,'bonus bStr,5; bonus bVit,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5328,'Evil_Wing_Ears_C','Evil Wing Ears C',4,1,NULL,0,NULL,4,NULL,0,0xFFFFFFFF,63,2,512,NULL,'0',0,152,'bonus bStr,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5329,'Dark_Blindfold_C','Dark Blindfold C',4,1,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,63,2,512,NULL,'0',0,187,'bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Stun,500;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5330,'kRO_Drooping_Kitty_C','kRO Drooping Kitty C',4,1,NULL,0,NULL,9,NULL,0,0xFFFFFFFE,63,2,256,NULL,'0',0,142,'bonus bMdef,15; bonus2 bResEff,Eff_Curse,4000; bonus2 bResEff,Eff_Curse,1000;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5330,'kRO_Drooping_Kitty_C','kRO Drooping Kitty C',4,1,NULL,0,NULL,9,NULL,0,0xFFFFFFFE,63,2,256,NULL,'0',0,142,'bonus bMdef,15; bonus2 bResEff,Eff_Curse,4000; bonus2 bResEff,Eff_Stun,1000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5331,'Corsair_C','Corsair C',4,1,NULL,0,NULL,14,NULL,0,0xFFFFFFFE,63,2,256,NULL,'0',0,105,'bonus bVit,3; bonus bInt,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5332,'Loki_Mask','Loki Mask',4,0,NULL,200,NULL,2,NULL,0,0xFFFFFFFF,63,2,513,NULL,'20',0,346,'bonus bFlee2,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5333,'Radio_Antenna','Radio Antenna',4,0,NULL,1500,NULL,2,NULL,0,0xFFFFFFFF,63,2,256,NULL,'50',1,347,'bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; skill "MG_LIGHTNINGBOLT",1; bonus4 bAutoSpellWhenHit,"MG_THUNDERSTORM",5,30,1;',NULL,NULL); @@ -3715,8 +3718,8 @@ REPLACE INTO `item_db_re` VALUES (5502,'Necromencer\'s_Hood','Necromancer\'s Hoo REPLACE INTO `item_db_re` VALUES (5503,'Rabbit_Magic_Hat','Magic Rabit Hat',4,0,NULL,800,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,497,'bonus bDex,2; bonus bAgi,2; bonus bMdef,1; bonus bAspdRate,5; bonus bDelayRate,-4;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5504,'China_Wedding_Veil','Wedding Weil',4,20,NULL,500,NULL,5,NULL,0,0xFFFFFFFF,63,2,768,NULL,'70',1,489,'bonus bMdef,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5505,'Asara_Fairy_Hat','Asara Fairy Hat',4,0,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,63,2,768,NULL,'50',1,492,'skill "DC_DONTFORGETME",1; bonus bDex,2; bonus bLuk,2;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5506,'Blue_Pajamas_Hat','Blue Night Cap',4,0,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,501,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5507,'Pink_Pajamas_Hat','Pink Night Cap',4,0,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,502,'bonus bBaseAtk,5; bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5506,'Blue_Pajamas_Hat','Blue Night Cap',4,0,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,501,'bonus bAtkRate,5; bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5507,'Pink_Pajamas_Hat','Pink Night Cap',4,0,NULL,100,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,502,'bonus bAtkRate,5; bonus bMatkRate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5508,'Shark_Hat','Shark Hat',4,20,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,503,'bonus bStr,1; bonus bAgi,2; bonus bMdef,1; bonus2 bAddEle,Ele_Water,5; bonus2 bSubDefEle,Ele_Water,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5509,'Sting_Hat','Sting hat',4,20,NULL,1000,NULL,10,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,504,'bonus bStr,2; bonus bVit,1; bonus bMdef,3; bonus2 bAddEle,Ele_Fire,5; bonus2 bSubDefEle,Ele_Earth,5; bonus3 bAutoSpell,"WZ_EARTHSPIKE",1,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5510,'Shower_Cap','Shower Cap',4,20,NULL,0,NULL,4,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,507,'bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,RC_Fish,10;',NULL,NULL); @@ -3741,7 +3744,7 @@ REPLACE INTO `item_db_re` VALUES (5528,'King_Frog_Hat','Frog King Hat',4,20,NULL REPLACE INTO `item_db_re` VALUES (5529,'Evil\'s_Bone_Hat','Satanic Bone Helm',4,20,NULL,600,NULL,6,NULL,1,0xFFFFFFFF,63,2,768,NULL,'70',1,523,'bonus bStr,2; bonus bInt,2; bonus bMdef,2; bonus2 bSubEle,Ele_Neutral,5; skill "WZ_FROSTNOVA",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5530,'Raven_Cap','Raven Cap',4,20,NULL,100,NULL,6,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,524,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (5531,'B_Dragon_Hat','Baby Dragon Hat',4,45000,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,256,NULL,'0',1,525,'bonus bDex,2; .@bonus = max(getskilllv("TF_DOUBLE"), 5); skill "TF_DOUBLE",.@bonus; bonus bDoubleRate,.@bonus * 5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5532,'Pirate_Dagger_J','Pirate Dagger',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'0',1,327,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5532,'Pirate_Dagger_J','Pirate Dagger',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'0',0,327,'bonus bShortWeaponDamageReturn,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5533,'Emperor_Wreath_J','Emperor Wreath',4,20,NULL,800,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'80',1,261,'bonus bAllStats,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5534,'Fox_Hat_J','Fox Hat',4,20,NULL,100,NULL,1,NULL,0,0xFFFFFFFF,63,2,513,NULL,'70',0,403,'bonus bAgi,1; bonus bFlee2,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5535,'Side_Cap','Side Cap',4,20,NULL,500,NULL,6,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,529,'bonus bVit,1; bonus bDex,1; bonus bMdef,3; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3;',NULL,NULL); @@ -3757,7 +3760,7 @@ REPLACE INTO `item_db_re` VALUES (5544,'Time_Keeper_Hat','Time Keeper Hat',4,300 REPLACE INTO `item_db_re` VALUES (5545,'Aries_Diadem','Aries Diadem',4,20,NULL,400,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,531,'bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5546,'Aries_Crown','Aries Crown',4,20,NULL,400,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,532,'bonus bLuk,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,2; bonus bLuk,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5547,'RJC_Katusa','RJC Katusa Flower',4,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,63,2,256,NULL,'0',1,533,'bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,"WZ_EARTHSPIKE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bVariableCastrate,"WZ_HEAVENDRIVE",-25; bonus2 bVariableCastrate,"WZ_EARTHSPIKE",-25;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5548,'Scarlet_Rose','Scarlet Rose',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'1',1,534,'bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bMaxSP,30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5548,'Scarlet_Rose','Scarlet Rose',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'1',0,534,'bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bMaxSP,30;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5549,'Taurus_Diadem','Taurus Diadem',4,20,NULL,300,NULL,6,NULL,0,0xFFFFFFFF,63,2,256,NULL,'70',1,535,'bonus bDex,2; bonus bMatkRate,2; bonus bDelayRate,-2; if (getrefine()>6) { bonus bMatkRate,1; bonus bDex,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5550,'Taurus_Crown','Taurus Crown',4,20,NULL,300,NULL,6,NULL,0,0xFFFFFFFF,63,2,256,NULL,'70',1,536,'bonus bAgi,2; bonus2 bSubClass,Class_All,2; bonus bDelayRate,-2; bonus2 bAddEff,Eff_Stun,2000; if(getrefine()>6) { bonus2 bSubClass,Class_All,1; bonus bStr,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5551,'Holy_Egg_Hat','Holy Egg Hat',4,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,537,NULL,NULL,NULL); @@ -3792,7 +3795,7 @@ REPLACE INTO `item_db_re` VALUES (5579,'Wanderer\'s_Sakkat','Wanderer\'s Sakkat' REPLACE INTO `item_db_re` VALUES (5580,'Red_Beret','Red Beret',4,20,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',0,559,'bonus bAllStats,3; bonus bMdef,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5581,'Cancer_Diadem','Cancer Diadem',4,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,63,2,256,NULL,'70',1,560,'bonus bInt,2; bonus2 bSubEle,Ele_Water,5; if(getrefine()>6) { bonus bMdef,1; bonus bHealPower,3; bonus bMatkRate,2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5582,'Cancer_Crown','Cancer Crown',4,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,63,2,256,NULL,'70',1,561,'bonus bStr,2; bonus2 bSubEle,Ele_Water,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; bonus bFlee,10; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5583,'Para_Team_Hat','Eden Team Hat I',4,0,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,63,2,256,NULL,'12',1,465,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5583,'Para_Team_Hat','Eden Team Hat I',4,0,NULL,0,NULL,5,NULL,0,0xFFFFFFFF,63,2,256,NULL,'7',1,465,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (5584,'Majestic_Evil_Horn','Majestic Evil Horns',4,0,NULL,400,NULL,2,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,562,'bonus2 bSubRace,RC_Demon,3; bonus2 bHPDrainRate,3,15; bonus2 bSPDrainRate,1,7; /*Gold PC Room bonus bSPGainValue,2; bonus bMagicSPGainValue,2; bonus2 bSubRace,RC_Demon,2;*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5585,'Rune_Hairband','Rune Cloth Circlet',4,20,NULL,400,NULL,1,NULL,1,0xFFFFFFFF,63,2,768,NULL,'1',1,564,'bonus2 bSubEle,Ele_Neutral,3; bonus bHit,5; bonus2 bHPDrainRate,30,10; bonus2 bSPDrainRate,10,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5586,'Mosquito_Coil','Mosquito Coil',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,563,'bonus2 bAddDamageClass,1627,100; bonus2 bAddDamageClass,1095,20; bonus2 bAddDamageClass,1160,20; bonus2 bAddDamageClass,1105,20; bonus2 bAddDamageClass,1097,20; bonus2 bAddDamageClass,1051,20; bonus2 bAddDamageClass,1053,20; bonus2 bAddDamageClass,1054,20; bonus2 bAddDamageClass,1048,20;',NULL,NULL); @@ -3952,7 +3955,7 @@ REPLACE INTO `item_db_re` VALUES (5739,'Sagittarius_Crown','Sagittarius Crown',4 REPLACE INTO `item_db_re` VALUES (5740,'Sagittarius_Diadem','Sagittarius Diadem',4,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,618,'bonus bDex,2; bonus bMdef,3; bonus2 bSubEle,Ele_Fire,7; .@r = getrefine(); if (.@r>6) { bonus bVariableCastrate,-3; } if (.@r>7) { bonus5 bAutoSpell,"WZ_SIGHTRASHER",10,5,BF_MAGIC,0; } if (.@r>8) { bonus bVariableCastrate,-2; } if (.@r>9) { bonus bMatkRate,4; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5741,'Im_Egg_Shell_Hat','Eternal Egg Shell',4,20,NULL,0,NULL,1,NULL,0,0xFFFFFFFF,63,2,256,NULL,'10',1,101,'bonus2 bAddItemGroupHealRate,IG_Potion,10; bonus bHealPower2,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5742,'Rudolf_Santa_Hat','Rudolph Santa Hat',4,20,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,63,2,256,NULL,'10',1,619,'bonus2 bAddMonsterDropItem,538,100; bonus2 bAddMonsterDropItem,539,100; bonus2 bAddItemHealRate,538,100; bonus2 bAddItemHealRate,539,100;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5743,'Orange_Stem_Hat','Orange Stem Hat',4,20,NULL,100,NULL,0,NULL,0,0x00000000,63,2,256,NULL,'1',0,620,'bonus bLuk,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5743,'Orange_Stem_Hat','Orange Stem Hat',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',0,620,'bonus bLuk,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5744,'Capricorn_Crown','Capricorn Crown',4,20,NULL,300,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,621,'bonus bVit,2; bonus bDex,2; if (getrefine()>6) { bonus3 bAutoSpell,"TK_SEVENWIND",1,500; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5745,'Capricorn_Diadem','Capricorn Diadem',4,20,NULL,300,NULL,3,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,622,'bonus bDex,2; bonus bMdef,5; bonus2 bSubEle,Ele_Earth,5; .@r = getrefine(); if (.@r>6) { bonus bInt,2; } if (.@r>7) { bonus bVariableCastrate,-3; } if (.@r>8) { bonus bHealPower2,4; } if (.@r>9) { bonus3 bAutoSpell,"BS_HAMMERFALL",5,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5746,'Rune_Circlet','Rune Circlet',4,20,NULL,100,NULL,12,NULL,1,0x00000080,56,2,256,NULL,'100',1,623,'bonus bStr,1; bonus bInt,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,10; bonus bMatk,5; }',NULL,NULL); @@ -3964,7 +3967,7 @@ REPLACE INTO `item_db_re` VALUES (5751,'Minstrel_Song_Hat','Minstrel Song Hat',4 REPLACE INTO `item_db_re` VALUES (5752,'Midas_Whisper','Midas Whispers',4,20,NULL,100,NULL,12,NULL,1,0x00040000,56,2,256,NULL,'100',1,629,'bonus bStr,1; bonus bDex,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,5; bonus bAspd,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5753,'Magic_Stone_Hat','Magic Stone Hat',4,20,NULL,100,NULL,12,NULL,1,0x00000200,56,2,256,NULL,'100',1,630,'bonus bInt,1; bonus bDex,1; bonus bMdef,5; if(readparam(bDex)>=120){ bonus bMatk,10; bonus bVariableCastrate,-2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5754,'Blazing_Soul','Burning Spirit',4,20,NULL,100,NULL,12,NULL,1,0x00008000,56,2,256,NULL,'100',1,631,'bonus bStr,1; bonus bVit,1; bonus bMdef,5; if(readparam(bStr)>=120){ bonus bBaseAtk,10; bonus bHit,3; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (5755,'Silent_Executer','Silent Enforcer',4,20,NULL,100,NULL,12,NULL,0,0x00001000,56,2,513,NULL,'100',1,632,'bonus bAgi,1; bonus bMdef,5; if(readparam(bAgi)>=120){ bonus bBaseAtk,10; bonus bFlee2,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5755,'Silent_Executer','Silent Enforcer',4,20,NULL,100,NULL,12,NULL,0,0x00001000,56,2,513,NULL,'100',0,632,'bonus bAgi,1; bonus bMdef,5; if(readparam(bAgi)>=120){ bonus bBaseAtk,10; bonus bFlee2,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5756,'Wind_Whisper','Wispers of Wind',4,20,NULL,100,NULL,12,NULL,1,0x00010000,56,2,256,NULL,'100',1,633,'bonus bInt,1; bonus bDex,1; bonus bMdef,5; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bFlee,3; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5757,'Schmidt_Helm','Reissue Schmitz Helm',4,20,NULL,100,NULL,12,NULL,1,0x00004000,56,2,768,NULL,'100',1,634,'bonus bVit,2; bonus bInt,1; bonus bMdef,5; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bDef,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5758,'Dying_Swan','Resting Swan',4,20,NULL,100,NULL,17,NULL,1,0x00080000,56,0,256,NULL,'100',1,635,'bonus bInt,1; bonus bLuk,1; bonus bMdef,5; bonus bLongAtkRate,5; bonus2 bSkillUseSP,"WA_SWING_DANCE",10; bonus2 bSkillUseSP,"WA_SYMPHONY_OF_LOVER",10;',NULL,NULL); @@ -4101,7 +4104,11 @@ REPLACE INTO `item_db_re` VALUES (5917,'Yellow_Scarf','Yellow Scarf',4,0,NULL,10 REPLACE INTO `item_db_re` VALUES (5918,'Gambler_Seal','Gambler Seal',4,0,NULL,500,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1202,'.@dex = readparam(bDex); .@luk = readparam(bLuk); .@critical = 3 + (.@luk / 10); .@critical_dmg = 3 - (.@dex/10) * 2; .@sub_arrowstorm = 10; .@sub_gateofhell = 10; bonus bBaseAtk,(.@luk/10)*2; bonus bMatk,(.@luk / 10) * 2; if (.@luk > 107) { .@critical += 5; .@critical_dmg += 10; } if (.@luk > 119) { .@critical += 10; .@critical_dmg += 17; .@sub_arrowstorm += 30; .@sub_gateofhell += 30; } bonus bCritical,.@critical; bonus bCritAtkRate,.@critical_dmg; bonus2 bSubSkill,"RA_ARROWSTORM",.@sub_arrowstorm; bonus2 bSubSkill,"SR_GATEOFHELL",.@sub_gateofhell;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5919,'Camellia_Hair_Pin','Camellia Hair Pin',4,0,NULL,1000,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,256,NULL,'50',1,1203,'bonus bMdef,20; bonus3 bAutoSpell,"AL_PNEUMA",1,30+getrefine()*5; hateffect(HAT_EF_CAMELLIA_HAIR_PIN,true); /* CONFIRM The Rate*/',NULL,'hateffect(HAT_EF_CAMELLIA_HAIR_PIN,false);'); REPLACE INTO `item_db_re` VALUES (5920,'Medical_Boots','Medical Boots',4,0,NULL,300,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'10',1,NULL,'.@r = getrefine(); bonus bHealPower,10+((.@r/2) * 2); bonus2 bSkillUseSP,"AB_CHEAL",(.@r * 5);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5933,'Crow_Tengu_Mask','Crow Tengu Mask',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'80',0,1287,'bonus2 bAddSize,Size_All,1; bonus bLongAtkRate,2; if(readparam(bStr)>=108) { bonus2 bAddSize,Size_All,1; bonus bLongAtkRate,2; } if(readparam(bStr)>=120) { bonus2 bAddSize,Size_All,2; bonus bLongAtkRate,3; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5937,'Flying_Helmet','Flying Helmet',4,1,NULL,300,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'20',1,820,'bonus bMdef,5; bonus bHPGainValue,100; bonus2 bSPGainRace,RC_Dragon,5; .@r = getrefine(); if (.@r>=5) { bonus2 bSubRace,RC_Dragon,5; } if (.@r>=7) { bonus2 bSubRace,RC_Dragon,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5938,'Octopus_Hat_','Octopus Hat',4,20,NULL,880,NULL,8,NULL,1,0xFFFFFFFF,63,2,256,NULL,'60',1,538,'bonus bMdef,8; bonus bUnbreakableHelm,1; bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; .@r = getrefine(); if (.@r>=5) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; } if (.@r>=6) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; } if (.@r>=7) { bonus2 bAddItemHealRate,579,50; bonus2 bAddItemHealRate,544,125; bonus2 bAddItemHealRate,551,125; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5943,'Owlviscount_Silk_Hat','Owl Viscount Silk Hat',4,0,NULL,500,NULL,15,NULL,1,0xFFFFFFFF,63,2,256,NULL,'70',1,1323,'bonus bInt,1; bonus bAspdRate,10; .@r = getrefine(); bonus bMatk,7*.@r; autobonus "{ .@r = getrefine(); bonus bAspdRate,(.@r >= 9 ? 40 : ((.@r >= 7) ? 10 : ((.@r >= 5) ? 5 : 1))); }",.@r*20,30000,BF_MAGIC,"{ specialeffect2 EF_SPELLBREAKER; }";',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (5945,'Well_Chewed_Pencil','Well-Chewed Pencil',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'30',0,931,'bonus bStr,1; autobonus "{ bonus bAtkEle,Ele_Fire; }",50,60000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; /* Unknow rate and specialeffect */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5966,'KarduiEar','KarduiEar',4,0,NULL,300,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1357,'.@dex = readparam(bDex); bonus bMatk,(.@dex > 10) ? .@dex/10*2 : 0; if (.@dex > 107) { bonus bVariableCastrate,-10; bonus bMatk,60; } if (.@dex > 119) { bonus bVariableCastrate,-5; bonus bMatk,100; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5967,'FlyingGalapago','Flying Galapago',4,0,NULL,500,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1,NULL,'110',0,1358,'set .@bblvl,max(getskilllv("HT_BLITZBEAT"),1); set .@luk,min(readparam(bLuk),120); bonus bAgi,1; bonus3 bAutoSpell,"HT_BLITZBEAT",.@bblvl,50 + (.@luk / 3) + (.@bblvl * 2); bonus2 bSkillAtk,"HT_BLITZBEAT",getskilllv("HT_STEELCROW") * 40;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (5968,'DVAngelNurseCap','DVAngelNurseCap',4,0,NULL,500,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'50',1,1359,'if (BaseClass == Job_Acolyte) bonus bHealPower,3; bonus bNoCastCancel; .@r = getrefine(); bonus bHealPower,(.@r > 8) ? 12 : ((.@r > 6) ? 9 : ((.@r > 4) ? 6 : 0));',NULL,NULL); @@ -4212,7 +4219,7 @@ REPLACE INTO `item_db_re` VALUES (6093,'Egg_Of_Draco','Draco\'s Egg',3,0,NULL,0, REPLACE INTO `item_db_re` VALUES (6094,'Traditional_Cookie','Traditional Sweets',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6095,'Flavored_Alcohol','Flavored Alcohol',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6096,'Fish_With_Blue_Back','Fish With Blue Back',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6097,'Pumpkin_Pie_','Pumpkin Pie',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6097,'Pumpkin_Pie_','Pumpkin Pie',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6098,'Small_Snow_Flower','Small Snow Flower',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6099,'Grilled_Rice_Cake','Grilled Rice Cake',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6100,'Damp_Darkness','Damp Darkness',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4222,7 +4229,7 @@ REPLACE INTO `item_db_re` VALUES (6103,'Report_On_Manuk','Report On Manuk',3,0,N REPLACE INTO `item_db_re` VALUES (6104,'Big_Cell','Big Cell',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6105,'Morning_Dew','Morning Dew',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6106,'Well_Ripened_Berry','Well Ripened Berry',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6107,'Sunset_On_The_Rock','Sunset On The Rock',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6107,'Sunset_On_The_Rock','Sunset On The Rock',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6108,'Apple_Pudding','Apple Pudding',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6109,'Plant_Neutrient','Plant Neutrient',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6110,'Vital_Flower','Vital Flower',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5453,12 +5460,12 @@ REPLACE INTO `item_db_re` VALUES (7448,'Dragonball_Yellow','Yellow Bijou',3,887, REPLACE INTO `item_db_re` VALUES (7449,'Bloody_Page','Bloody Page',3,681,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7450,'Piece_Of_Bone_Armor','Skeletal Armor Piece',3,2050,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7451,'Scale_Of_Red_Dragon','Fire Dragon Scale',3,1852,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7452,'Yellow_Spice','Yellow Spice',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7453,'Sweet_Sauce','Sweet Sauce',3,700,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7454,'Plain_Sauce','Savory Sauce',3,700,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7455,'Hot_Sauce','Spicy Sauce',3,700,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7456,'Red_Spice','Red Spice',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7457,'Cooking_Oil','Cooking Oil',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7452,'Yellow_Spice','Yellow Spice',3,750,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7453,'Sweet_Sauce','Sweet Sauce',3,525,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7454,'Plain_Sauce','Savory Sauce',3,525,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7455,'Hot_Sauce','Spicy Sauce',3,525,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7456,'Red_Spice','Red Spice',3,750,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7457,'Cooking_Oil','Cooking Oil',3,375,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7458,'Baphomet\'s_Horn','Fortune Horn',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7459,'RAMADAN_','Idul Fitri Card',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7460,'Niflheim_Ticket','Niflheim Express Ticket',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5483,7 +5490,7 @@ REPLACE INTO `item_db_re` VALUES (7478,'Cookbook07','Level 7 Cookbook',3,1000,NU REPLACE INTO `item_db_re` VALUES (7479,'Cookbook08','Level 8 Cookbook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7480,'Cookbook09','Level 9 Cookbook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7481,'Cookbook10','Level 10 Cookbook',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7482,'Pot','Pot',3,200,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7482,'Pot','Pot',3,150,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7483,'Key_Of_Seal','Key of the Seal',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7484,'Warrior_Symbol','Symbol of a Brave Warrior',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7485,'2nd_Floor_Pass','Cloud General',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5792,7 +5799,7 @@ REPLACE INTO `item_db_re` VALUES (7820,'Morroc_Skin','Piece of Morocc Skin',3,0, REPLACE INTO `item_db_re` VALUES (7821,'Green_Apple','Green Apple',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7822,'Whole_Barbecue','Whole Barbecue',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7823,'Meat_Veg_Skewer','Meat Veg Skewer',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7824,'Spirit_Liquor','Spirit Liquor',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7824,'Spirit_Liquor','Spirit Liquor',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7825,'Heroic_Stone','Heroic Stone',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7826,'Continental_Guard_Paper','Continental Guard Paper',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7827,'Mineral_Report','Mineral Evals',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -6079,6 +6086,12 @@ REPLACE INTO `item_db_re` VALUES (9112,'Moonlight_Egg','Moonlight Egg',7,20,NULL REPLACE INTO `item_db_re` VALUES (9113,'Skelion_Egg','Skelion Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (9114,'Pouring_Egg','Pouring Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (9115,'Bacsojin2_Egg_','Bacsojin Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9116,'Rigid_Nightmare_Terror_Egg','Rigid Nightmare Terror Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9117,'Contaminated_Wanderer_Egg','Contaminated Wanderer Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9118,'Aliot_Egg','Aliot Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9119,'Alicel_Egg','Alicel Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9120,'Aliza_Egg','Aliza Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (9121,'Orc_Hero_Egg_','Orc Hero Egg',7,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); #=================================================================== # Pet Accessories #=================================================================== @@ -6290,6 +6303,10 @@ REPLACE INTO `item_db_re` VALUES (11600,'Shining_Holy_Water','Shining Holy Water REPLACE INTO `item_db_re` VALUES (11602,'Catnip_Fruit','Catnip Fruit',0,15,NULL,1,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(10,40),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (11601,'Delicious_Anchovy','Delicious Anchovy',0,20,NULL,30,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(30,46),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (11605,'Cookies_Bat','Cookie Bat',0,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(50,100),0; /*TODO*/',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (11621,'Red_Syrup','Red Syrup',0,800,400,7,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,'60',NULL,NULL,'itemheal 325,0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (11622,'Yellow_Syrup','Yellow Syrup',0,1200,600,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,'60',NULL,NULL,'itemheal 900,0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (11623,'White_Syrup','White Syrup',0,1500,750,14,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,'60',NULL,NULL,'itemheal 1800,0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (11624,'Blue_Syrup','Blue Syrup',0,7000,3500,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,'60',NULL,NULL,'itemheal 0,180;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (11701,'Girl_Bunch_Of_Flower','Girl\'s Bouquet',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(105,145),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (11702,'Moon_Cookie','Moon Cookie',0,0,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -8732,7 +8749,7 @@ REPLACE INTO `item_db_re` VALUES (15005,'Freyja_SRobe60','Freyja Soul Robe60',4, REPLACE INTO `item_db_re` VALUES (15006,'Freyja_SRobe90','Freyja Soul Robe90',4,0,NULL,300,NULL,7,NULL,0,0xFFFFFFFF,63,2,16,NULL,'20',0,0,'bonus bMaxHP,700;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15007,'Time_Keepr_Robe','Time Keeper Robe',4,30000,NULL,0,NULL,62,NULL,0,0xFFFFFFFF,63,2,16,NULL,'1',1,0,'bonus bMdef,1; bonus bStr,2; bonus bMaxHP,200;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15008,'Flame_Sprits_Armor__','Flame Sprits Armor',4,20,NULL,1000,NULL,25,NULL,0,0xFFFFFFFF,63,2,16,NULL,'1',1,0,'bonus bMdef,1; bonus bDefEle,Ele_Fire; bonus2 bSubDefEle,Ele_Earth,4;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15009,'Para_Team_Uniform1','Eden Team Uniform I',4,0,NULL,0,NULL,35,NULL,0,0xFFFFFFFF,63,2,16,NULL,'12',0,0,'bonus bMaxHP,100; bonus bMaxSP,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15009,'Para_Team_Uniform1','Eden Team Uniform I',4,0,NULL,0,NULL,35,NULL,0,0xFFFFFFFF,63,2,16,NULL,'7',0,0,'bonus bMaxHP,100; bonus bMaxSP,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15010,'Para_Team_Uniform2','Eden Team Uniform II',4,0,NULL,0,NULL,46,NULL,0,0xFFFFFFFF,63,2,16,NULL,'26',0,0,'bonus bMaxHP,200; bonus bMaxSP,20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15011,'Para_Team_Uniform3','Eden Team Uniform III',4,0,NULL,0,NULL,58,NULL,0,0xFFFFFFFF,63,2,16,NULL,'40',0,0,'bonus bMaxHP,300; bonus bMaxSP,30; bonus bMdef,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15012,'Puente_Robe','Puente Robe',4,12000,NULL,400,NULL,42,NULL,1,0xFFFFFFFF,63,2,16,NULL,'22',1,0,'bonus bFixedCastrate,-3; bonus bHealPower,5;',NULL,NULL); @@ -8793,8 +8810,11 @@ REPLACE INTO `item_db_re` VALUES (15067,'Rune_Suit','Rune Suit',4,0,NULL,0,NULL, REPLACE INTO `item_db_re` VALUES (15068,'Im_Angel\'s_Protection','Advanced Angelic Protection',4,10000,NULL,600,NULL,40,NULL,1,0x00000001,63,2,16,NULL,'99',1,0,'bonus bMdef,30;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15069,'Suit_Of_Sid','Suit Of Sid',4,20,NULL,1000,NULL,30,NULL,0,0xFFFFFFFF,63,2,16,NULL,'0',1,0,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (15070,'Clothes_of_Happiness','Clothes of Happiness',4,10,NULL,1000,NULL,5,NULL,1,0xFFFFFFFF,63,2,16,NULL,'1',1,NULL,'bonus bMdef,5; bonus bLuk,getrefine();',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15071,'Valkyrian_Robe','Valkyrian Robe',4,20,NULL,2800,NULL,55,NULL,1,0x000FFF80,58,2,16,NULL,'1',1,0,'bonus bAllStats,1; bonus bUnbreakableArmor,1; if(BaseClass==Job_Mage||BaseClass==Job_Archer||BaseClass==Job_Acolyte) bonus2 bResEff,Eff_Silence,5000; else if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief) bonus2 bResEff,Eff_Stun,5000;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15072,'Nectar_Suit','Nectar Suit',4,20,NULL,300,NULL,35,NULL,1,0xFFFFFFFF,63,2,16,NULL,'1',1,0,'bonus bVit,3; bonus bMdef,5; bonus bMaxHPrate,(getrefine()/2); bonus bMaxSPrate,(getrefine()/2);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15073,'Anti_Magic_Suit','Anti-Magic Suits',4,10,NULL,1500,NULL,50,NULL,1,0xFFFFFFFF,63,2,16,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHPrate,5+((.@r >= 9) ? 2 : 0); bonus bMdef,10+((.@r >= 7) ? 5 : 0);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15074,'Geffen_Mage_Robe','Geffen Magic Robe',4,10,NULL,1000,NULL,40,NULL,1,0xFFFFFFFF,63,2,16,NULL,'99',1,0,'.@r = getrefine(); bonus bUseSPrate,-10-((.@r>=7) ? 5: 0); bonus bVariableCastrate,15-((.@r>=9) ? 5: 0); bonus bNoCastCancel2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15087,'Azure_Dragon_Armor','Azure Dragon Armor',4,20,NULL,500,NULL,55,NULL,1,0xFFFFFFFF,63,2,16,NULL,'70',1,0,'bonus bDefEle,Ele_Water; bonus bMdef,5; bonus2 bAddEle,Ele_Water,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15088,'School_Uniform','School Uniform',4,20,NULL,500,NULL,25,NULL,1,0xFFFFFFFF,63,2,16,NULL,'0',1,0,'bonus bAgi,1; bonus bLuk,1; bonus bMaxHP,BaseLevel*3; bonus bMaxSP,BaseLevel/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15089,'Menswear','Menswear',4,10,NULL,300,NULL,40,NULL,0,0xFFFFFFFE,63,2,16,NULL,'80',1,NULL,'.@r = getrefine(); bonus bAspdRate,3+((.@r>=7)?2:0); bonus bDelayrate,-3-((.@r>=7)?2:0); bonus bVariableCastrate,-3-((.@r>=7)?2:0);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15090,'Armor_Of_Gray','Armor of Gray',4,10,NULL,2400,NULL,90,NULL,1,0x000654E2,56,2,16,NULL,'120',1,0,'bonus bMdef,10; bonus2 bSubEle,Ele_Holy,10+getrefine()*2;',NULL,NULL); @@ -8807,20 +8827,26 @@ REPLACE INTO `item_db_re` VALUES (15097,'Hero_Hidden_Cloth','Hero Hidden Cloth', REPLACE INTO `item_db_re` VALUES (15098,'Hero_Taget_Suits','Hero Target Suit',4,10,NULL,200,NULL,60,NULL,1,0x00080808,56,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; .@r = getrefine(); bonus bAllStats,1; bonus5 bAutoSpell,"AC_CONCENTRATION",10,(5+.@r)*5,BF_WEAPON,0; bonus5 bAutoSpell,"AC_DOUBLE",10,(5+.@r)*5,BF_WEAPON,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15100,'Frozen_Breastplate','Frozen Breastplate',4,20,NULL,1500,NULL,20,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,'bonus bDefEle,Ele_Water;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15101,'Harden_Breastplate','Hardened Breastplate',4,20,NULL,1500,NULL,20,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,'bonus bDefEle,Ele_Earth;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15102,'Hunter_Mail','Hunter Mail',4,20,NULL,500,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'50',1,0,'.@r = getrefine(); if (.@r>5) .@a = (.@r-5); else .@a = 0; bonus2 bAddRace,RC_Brute,3+.@a; bonus2 bMagicAddRace,RC_Brute,3+.@a;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15103,'Kirin_Armor','Kirin Armor',4,10,NULL,500,NULL,55,NULL,1,0xFFFFFFFF,63,2,16,NULL,'70',NULL,NULL,'bonus bDefEle,Ele_Holy;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15104,'FishingMan_Mail','FishingMan Mail',4,10,NULL,500,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'50',NULL,NULL,'bonus2 bAddRace,RC_Fish,10; bonus2 bMagicAddRace,RC_Fish,10; .@r = getrefine(); if(.@r>5){ bonus2 bAddRace,RC_All,.@r; bonus2 bMagicAddRace,RC_All,.@r; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15105,'Kaftan','Kaftan',4,20,NULL,400,NULL,13,NULL,1,0xFFFFFFFF,63,2,16,NULL,'0',1,0,'bonus bMdef,3; bonus2 bSubRace,RC_Demon,5; bonus2 bSubRace,RC_Undead,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15106,'Engineer_Mail','Engineer Mail',4,20,NULL,500,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'50',1,0,'.@r = getrefine(); bonus2 bAddRace,RC_Formless,3; bonus2 bMagicAddRace,RC_Formless,3; if (.@r>5) { bonus2 bAddRace,RC_Formless,.@r-5; bonus2 bMagicAddRace,RC_Formless,.@r-5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15108,'Venomous_Insect_Armor','Venomous Insect Armor',4,20,NULL,500,NULL,55,NULL,1,0xFFFFFFFF,63,2,16,NULL,'70',1,0,'bonus bDefEle,Ele_Poison; bonus bMdef,5; bonus2 bAddEle,Ele_Poison,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15110,'Supplement_Part_Str','Supplement Part Str',4,25000,NULL,2000,NULL,80,NULL,NULL,0x00000400,56,2,16,NULL,'100',1,0,'bonus2 bAddClass,Class_All,5+getrefine()/4;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15111,'Upgrade_Part_Plate','Reinforced Parts - Gloves',4,10,NULL,3000,NULL,110,NULL,NULL,0x00000400,56,2,16,NULL,'100',1,NULL,'bonus bUnbreakableArmor; bonus2 bSubSize,0,10; bonus2 bSubSize,1,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubSize,2,10; }; if(.@r>=9){ bonus2 bSubSize,0,5; bonus2 bSubSize,1,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15116,'Airship_Armor','Airship\'s Armor',4,10,NULL,700,NULL,100,NULL,0,0xFFFFFFFF,63,2,16,NULL,'125',0,NULL,'bonus bMaxHP,1000; bonus bMaxSP,100; bonus bMdef,10; bonus bAllStats,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15117,'Felock_Armor','Felrock\'s Armor',4,10,NULL,750,NULL,70,NULL,0,0xFFFFFFFF,63,2,16,NULL,'125',1,NULL,'bonus bMaxHP,500; bonus bMaxSP,50; bonus bMdef,10; bonus bAllStats,1; .@r = getrefine(); if(.@r>=7) { bonus bMaxHP,500; bonus bMaxSP,50; } if(.@r>=9) { bonus bMaxHP,200; bonus bMaxSP,20; } if(.@r>=12) { bonus bMaxHP,300; bonus bMaxSP,30; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15121,'Robe_Of_Sarah','Sarah\'s Battle Robe',4,10,NULL,800,NULL,35,NULL,1,0xFFFFFFFF,63,2,16,NULL,'145',1,NULL,'autobonus "{ bonus bMatk,getrefine()*8; }",3,10000,BF_MAGIC;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15123,'Whikebain_Suit','Whikebain Suit',4,0,NULL,900,NULL,56,NULL,1,0x00001000,56,2,16,NULL,'105',1,NULL,'.@r = getrefine(); bonus bCritAtkRate,(.@r>=7)?(6):((.@r>=5)?(4):(0)); bonus3 bAutoSpell,"DC_WINKCHARM",1,10; /* Confirm: Success rate */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15125,'Female_Diver_Suit','Female Diver\'s Suit',4,20,NULL,300,NULL,20,NULL,1,0xFFFFFFFF,63,2,16,NULL,'80',1,0,'bonus2 bAddMonsterDropItem,579,500+(getrefine()*100); if (getrefine()>=7) { bonus bHPrecovRate,-100; bonus bHPGainValue,100; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15126,'Female_Poring_Balloon','Private Doram Suits',4,20,NULL,700,NULL,80,NULL,1,0x80000000,7,2,16,NULL,'100',1,NULL,'bonus bMaxHP,500; bonus bMaxSP,100; .@r = getrefine()/3; bonus bDex,.@r; bonus bInt,.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15128,'Excelion_Suit','Excelion Suit',4,20,NULL,1000,NULL,100,NULL,0,0xFFFFFFFF,63,2,16,NULL,'99',1,NULL,'bonus bVit,6 + (BaseLevel > 129 ? 4 : 0); bonus bMaxHPrate,(getrefine() / 3) * 4; bonus bUnbreakableArmor;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15129,'Blue_Bellflower_Hat','Luxury Doram Suit',4,20,NULL,800,NULL,100,NULL,1,0x80000000,7,2,16,NULL,'140',1,NULL,'bonus bMaxHPrate,10; bonus bMaxSPrate,10; .@r = getrefine()/2; bonus bDex,.@r; bonus bInt,.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15138,'Aegir_Armor','Aegir Armor',4,10,NULL,1600,NULL,25,NULL,1,0xFFFFFFFF,63,2,16,NULL,'40',1,NULL,'bonus bMaxHP,500; bonus bMaxSP,50; bonus bUnbreakableArmor;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15141,'Rift_Ancient_Armor','Rift Ancient Armor',4,10,NULL,500,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMaxHP,(.@r >= 9 ? 1500 : .@r >= 7 ? 900 : 500); bonus bMaxSP,-100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15143,'Vermin_Cloth','Vermin Cloth',4,10,NULL,1200,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'70',1,0,'.@r = getrefine(); bonus bMdef,5+.@r; bonus2 bSubRace,RC_Plant,(5+.@r);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15144,'Agriculture_Clothes','Agriculture Clothes',4,10,NULL,1200,NULL,30,NULL,1,0xFFFFFFFF,63,2,16,NULL,'70',1,0,'.@r = getrefine(); bonus bMdef,5+.@r; bonus2 bSubRace,RC_Insect,5+.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15145,'EvilDragon_Armor','Evil Dragon Armor',4,0,NULL,4000,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,NULL,1,NULL,'.@r = getrefine(); bonus2 bHPDrainRate,100,(.@r>=10)?(3):((.@r>=9)?(4):((.@r>=8)?(6):(0))); bonus2 bSPDrainRate,100,(.@r>=10)?(5):((.@r>=9)?(3):((.@r>=8)?(2):(0))); /* Confirm: Success rate and it says no effect if with Rideword, Vanargandr Helm, or Piece Of Angent Skin */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15146,'Flattery_Robe','Flattery Robe',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'skill "SM_ENDURE",1; .@i = BaseLevel; bonus bMatk,(.@i>=140)?(150):((.@i>=120)?(100):(50));',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15147,'Invective_Robe','Invective Robe',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'skill "AC_CONCENTRATION",1; .@i = getrefine()*4; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,.@i; bonus2 bIgnoreDefRaceRate,RC_Demon,.@i; bonus2 bIgnoreDefRaceRate,RC_Undead,.@i;',NULL,NULL); @@ -8834,7 +8860,11 @@ REPLACE INTO `item_db_re` VALUES (15156,'Elegant_Doram_Suit','Elegant Doram Suit REPLACE INTO `item_db_re` VALUES (15162,'Lounge_Suit','Lounge Suit',4,20,NULL,300,NULL,40,NULL,1,0xFFFFFFFE,63,2,16,NULL,'80',1,NULL,'bonus bAspdRate,3; bonus bCastrate,-3; bonus bDelayrate,-3; if(getrefine() > 6) { bonus bAspdRate,2; bonus bCastrate,-2; bonus bDelayrate,-2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15163,'Fictitious_Robe','Agenda Robe',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'skill "SA_SPELLBREAKER",1; if (BaseLevel >= 140) { .@val = 14; } else if (BaseLevel >= 120) { .@val = 9; } else { .@val = 5; } bonus bMatkRate,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15164,'Consultative_Robe','Consultation Robe',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'.@r = getrefine(); bonus bVit,5; skill "PA_SACRIFICE",1; bonus2 bSubEle,Ele_Dark,.@r*3; bonus2 bSubEle,Ele_Fire,.@r*3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15165,'Pure_White_Marching_Hat','Pure White Marching Hat',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,'60',1,1470,'.@r = getrefine(); bonus bStr,2; autobonus "{ bonus bAtkEle,Ele_Ghost; }",5+.@r,60000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; /* Unknow Rates */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15166,'Rosary_Necklace','Rosary Necklace',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'60',0,1471,'bonus bFlee2,2; bonus bHealPower,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15169,'Kardui_Robe','Kardui Robe',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'bonus bMatk,10; bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; if(getrefine()>=7) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(getrefine()>=8) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; bonus bUnbreakableArmor,1; } if(getrefine()>=9) { bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15174,'Surfer_Swimsuit','Surfer Swimsuit',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,16,NULL,'40',1,NULL,'bonus bMaxHPrate,(getrefine()/3)+5; bonus bMaxSPrate,(getrefine()/3)+5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15175,'Flame_Dragon_Armor','Flame Dragon Armor',4,20,NULL,400,NULL,100,NULL,1,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'.@r = getrefine(); if (.@r>=9) .@val = 20; else if (.@r>=7) .@val = 10; bonus bAllStats,1; bonus bHit,10+.@val; bonus2 bAddClass,Class_Boss,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15176,'Vigilante_Suit','Vigilante Suit',4,0,NULL,500,NULL,50,NULL,0,0x00020000,56,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bDex,5; bonus bLongAtkRate,3*(.@r/2); if (.@r>=9) bonus2 bSkillAtk,"SC_TRIANGLESHOT",20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15177,'Elemental_Robe','Elemental Robe',4,0,NULL,500,NULL,40,NULL,0,0x00010000,56,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bAspdRate,10; bonus bMatk,5*(.@r/2); if (.@r>=9) bonus3 bAutoSpell,"MG_THUNDERSTORM",max(5,getskilllv("MG_THUNDERSTORM")),50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15178,'Golden_Ninja_Suit','Golden Ninja Suit',4,0,NULL,500,NULL,50,NULL,0,0x20000000,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bflee,5*(.@r/2); if (.@r>=9) bonus2 bSkillAtk,"KO_HAPPOKUNAI",20;',NULL,NULL); @@ -8847,12 +8877,27 @@ REPLACE INTO `item_db_re` VALUES (15184,'Para_Team_Uniform145','Awakened Eden Gr REPLACE INTO `item_db_re` VALUES (15185,'Para_Team_Uniform160','Awakened Eden Group Uniform V',4,20,NULL,0,NULL,100,NULL,0,0xFFFFFFFF,63,2,16,NULL,'160',NULL,NULL,'bonus bAllStats,2; bonus bMaxHP,1500; bonus bMaxSP,150; bonus bMdef,15; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15186,'Kafra_Uniform','Kafra Uniform',4,20,NULL,500,NULL,40,NULL,1,0xFFFFFFFF,63,2,16,NULL,'1',1,NULL,'bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; .@r = getrefine(); bonus bMaxHP,100*.@r; bonus bMaxSP,20*.@r; bonus bMaxHPrate,(3*(.@r>=7)+5*(.@r>=9)); bonus bMaxSPrate,(3*(.@r>=7)+5*(.@r>=9)); if(.@r>=12){ bonus bHPrecovRate,100; bonus bSPrecovRate,100; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15189,'Einherjar_Armor','Einherjar Armor',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'90',1,NULL,'bonus bMdef,5; bonus bBaseAtk,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=8){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=9){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15191,'Khalitzburg_Knight_Armor','Khalitzburg Knight Armor',4,20,NULL,100,NULL,45,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'bonus bLongAtkRate,2*getrefine(); bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15195,'Illusion_Puente_Robe','Illusion Puente Robe',4,20,NULL,400,NULL,52,NULL,1,0xFFFFFFFF,63,2,16,NULL,'99',1,0,'bonus bFixedCastrate,-3; .@r = getrefine(); bonus bHealPower2,(5+.@r); bonus bAddItemHealRate,(5+.@r);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15204,'Abyss_Dress','Abyss Dress',4,10,NULL,400,NULL,120,NULL,0,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'.@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_dark; if (.@r>=5) { .@val = 10; if (.@r>=7) { .@val += 15; if (.@r>=9) { .@val += 15; } } bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bMagicAddEle,Ele_Dark,.@val; bonus2 bMagicAddEle,Ele_Undead,.@val; bonus2 bAddRace,RC_Undead,.@val; bonus2 bAddRace,RC_Demon,.@val; bonus2 bMagicAddRace,RC_Undead,.@val; bonus2 bMagicAddRace,RC_Demon,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15205,'Medical_Scrubs','Medical Scrubs',4,20,NULL,1000,NULL,50,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMdef,10; bonus bDelayrate,-10; .@val = 1; if (.@r >= 7) { .@def = 50; bonus bUnbreakableArmor,1; .@val += 2; if (.@r >= 8) { .@def += 100; .@val += 3; bonus2 bSubRace,RC_DemiHuman,7; bonus2 bSubRace,RC_Player,7; if (.@r >= 9) { .@def += 150; .@val += 4; bonus2 bResEff,Eff_Stone,5000; } } bonus bDef,.@def; } bonus bHealPower,2*.@val; bonus bHealPower2,.@val; bonus bAddItemHealRate,.@val;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15209,'Drake_Coat','Drake Coat',4,20,NULL,1200,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHP,500; bonus bMaxSP,50; bonus bMdef,10; bonus2 bAddClass,Class_All,3; if (.@r>=7) { bonus bMaxHP,1000; bonus bMaxSP,100; bonus2 bAddClass,Class_All,3; } if (.@r>=9) { bonus bMaxHP,1500; bonus bMaxSP,150; bonus2 bAddClass,Class_All,4; bonus bNoSizeFix; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15212,'YSF01_Plate','YSF01 Plate',4,0,NULL,2100,NULL,78,NULL,1,0xFFFFFFFF,63,2,16,NULL,'170',1,0,'.@r = getrefine(); if (.@r >= 13) { .@val = 11; } else if (.@r >= 11) { .@val = 7; } else if (.@r >= 8) { .@val = 5; } if (readparam(bStr) >= 125) { .@val += .@r; } if (.@val) { bonus2 bAddClass,Class_All,.@val; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15280,'S_Cri_Hit_Armor','Critical Hit Shadow Armor',12,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,65536,NULL,'1',1,NULL,'.@r = getrefine(); .@val = 7; bonus bBaseAtk,15; if (.@r > 1) { bonus bCritAtkRate,(.@r/2); if (.@r >= 7) { .@val += 7; } } bonus bCritical,.@val;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15283,'Mighty_Black_Threaded_Armor','Mighty Black Threaded Armor',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bBaseAtk,10; bonus2 bIgnoreDefClassRate,Class_All,10; if (.@r>=7) { bonus bBaseAtk,20; bonus2 bIgnoreDefClassRate,Class_All,20; } if (.@r>=8) { bonus bBaseAtk,20; bonus2 bIgnoreDefClassRate,Class_All,20; bonus bUnbreakableArmor; } if (.@r>=9) { bonus bBaseAtk,30; bonus2 bIgnoreDefClassRate,Class_All,20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15348,'Illusion_Goibne_Armor','Illusion Goibne Armor',4,0,NULL,3500,NULL,158,NULL,1,0xFFFFFFFE,63,2,16,NULL,'130',1,0,'bonus bMaxHPrate,10; .@r = getrefine(); if (.@r >= 9) { bonus bDef,150; } else if (.@r >= 7) { bonus bDef,50; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15352,'Nature_Dress','Nature Dress',4,10,NULL,400,NULL,120,NULL,0,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'.@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_Earth; if (.@r>8) .@a = 40; else if (.@r>6) .@a = 25; else if (.@r>=5) .@a = 10; bonus2 bAddEle,Ele_Earth,.@a; bonus2 bAddEle,Ele_Wind,.@a; bonus2 bMagicAddEle,Ele_Earth,.@a; bonus2 bMagicAddEle,Ele_Wind,.@a; bonus2 bAddRace,RC_Demihuman,.@a; bonus2 bAddRace,RC_Brute,.@a; bonus2 bMagicAddRace,RC_Demihuman,.@a; bonus2 bMagicAddRace,RC_Brute,.@a; bonus2 bAddRace,RC_Player,.@a; bonus2 bMagicAddRace,RC_Player,.@a;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15376,'Illusion_Armor_A-type','Illusion Armor A-type',4,0,NULL,1000,NULL,105,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,'.@r = getrefine(); bonus bBaseAtk,(100+10*(.@r/2)); if (.@r >= 7) { bonus bAspdRate,10; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15377,'Illusion_Armor_B-type','Illusion Armor B-type',4,0,NULL,1000,NULL,105,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,'.@r = getrefine(); bonus bMatk,(100+10*(.@r/2)); if (.@r >= 7) { bonus bVariableCastrate,-10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15378,'Lava_Leather_Armor','Lava Leather Armor',4,20,NULL,1500,NULL,85,NULL,1,0xFFFFFFFF,63,2,16,NULL,'175',1,0,'.@r = getrefine(); bonus bBaseAtk,100; if (.@r>=7) bonus bDef,100; if (.@r>=9) bonus bDef,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15379,'Lava_Leather_Suit','Lava Leather Suit',4,20,NULL,1000,NULL,70,NULL,1,0xFFFFFFFF,63,2,16,NULL,'175',1,0,'.@r = getrefine(); bonus bBaseAtk,100; if (.@r>=7) bonus bBaseAtk,50; if (.@r>=9) bonus bCritAtkRate,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15380,'Lava_Leather_Robe','Lava Leather Robe',4,20,NULL,750,NULL,55,NULL,1,0xFFFFFFFF,63,2,16,NULL,'175',1,0,'.@r = getrefine(); bonus bMatk,100; if (.@r>=7) bonus bMatk,50; if (.@r>=9) bonus bMatk,25;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15384,'Ritual_Robes','Ritual Robes',4,10,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bHealPower,5; bonus bDelayrate,-10; bonus bMaxHPrate,5; if (.@r>=7) { bonus bMaxHPrate,5; bonus bHealPower,5; } if (.@r>=8) { bonus bMaxHPrate,5; bonus bHealPower,10; bonus bUseSPrate,-10; bonus2 bResEff,Eff_Sleep,10000; } if (.@r>=9) { bonus bMaxHPrate,5; bonus bHealPower,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15405,'Fafnir_Scale','Fafnir Scale',4,20,NULL,1500,NULL,120,NULL,0,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,15; bonus bUnbreakableArmor; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSkillAtk,"RK_DRAGONBREATH",50; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",50; bonus bDelayrate,-2*getskilllv("RK_DRAGONBREATH_WATER"); bonus bLongAtkRate,2*getskilllv("RK_DRAGONBREATH"); if (.@r>=5) { bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bDelayrate,-5; } if (.@r>=7) { bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bDelayrate,-5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15409,'Bloody_Doll\'s_Dress','Bloody Doll\'s Dress',4,10,NULL,500,NULL,40,NULL,1,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'.@r = getrefine(); bonus bMdef,5; bonus bMatk,10; bonus bDex,3; bonus2 bSubRace,RC_Player,7; if (.@r>=7) { bonus bAspdRate,10; bonus bDelayrate,-10; } if (.@r>=8) bonus bUnbreakableArmor;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15417,'Armor_of_Purple_Thread','Armor of Purple Thread',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bBaseAtk,10; bonus bPerfectHitAddRate,5; if (.@r>=7) { bonus bBaseAtk,20; bonus bPerfectHitAddRate,5; } if (.@r>=8) { bonus bBaseAtk,20; bonus bPerfectHitAddRate,10; } if (.@r>=9) { bonus bBaseAtk,30; bonus bPerfectHitAddRate,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15419,'Mighty_White_Threaded_Armor','Mighty White Threaded Armor',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'100',1,0,'.@r = getrefine(); bonus bMatk,10; bonus2 bIgnoreMdefRaceRate,RC_All,10; if (.@r>=7) { bonus bMatk,20; bonus2 bIgnoreMdefRaceRate,RC_All,20; } if (.@r>=8) { bonus bMatk,20; bonus2 bIgnoreMdefRaceRate,RC_All,20; bonus bUnbreakableArmor; } if (.@r>=9) { bonus bMatk,30; bonus2 bIgnoreMdefRaceRate,RC_All,20; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15420,'Ice_Prison_Dress','Ice Prison Dress',4,10,NULL,400,NULL,120,NULL,0,0xFFFFFFFF,63,2,16,NULL,'90',1,0,'.@r = getrefine(); bonus bNoKnockback; bonus bUnbreakableArmor; bonus bDefEle,Ele_Water; if (.@r>8) .@a = 40; else if (.@r>6) .@a = 25; else if (.@r>=5) .@a = 10; bonus2 bAddEle,Ele_Fire,.@a; bonus2 bAddEle,Ele_Water,.@a; bonus2 bMagicAddEle,Ele_Fire,.@a; bonus2 bMagicAddEle,Ele_Water,.@a; bonus2 bAddRace,RC_Demihuman,.@a; bonus2 bAddRace,RC_Formless,.@a; bonus2 bMagicAddRace,RC_Demihuman,.@a; bonus2 bMagicAddRace,RC_Formless,.@a; bonus2 bAddRace,RC_Player,.@a; bonus2 bMagicAddRace,RC_Player,.@a;',NULL,NULL); #=================================================================== # More Maces #=================================================================== @@ -8902,7 +8947,7 @@ REPLACE INTO `item_db_re` VALUES (16040,'Crimson_Mace','Crimson Mace',5,20,NULL, REPLACE INTO `item_db_re` VALUES (16041,'Mace_of_Vicious_Mind','Mace of Vicious Mind',5,20,NULL,1300,'130',NULL,1,1,0x0004C5B3,63,2,2,4,'160',1,8,'bonus bAtk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16043,'Meteor_Strike','Meteor Strike',5,0,NULL,20000,'1',NULL,1,2,0x00000001,63,2,2,4,'110',1,8,'bonus bBaseAtk,10*getskilllv("BS_WEAPONRESEARCH"); bonus bBaseAtk,30*getskilllv("MO_IRONHAND"); .@s = getskilllv("AM_AXEMASTERY"); bonus bBaseAtk,7*.@s; bonus bHit,5*.@s; bonus bBaseAtk,10*getrefine(); if (getskilllv("MC_PUSHCART") > 9) skill "MC_CARTREVOLUTION",1; if (getskilllv("SM_SWORD") > 0) skill "KN_BOWLINGBASH",1; .@str = readparam(bStr); if (.@str > 119) bonus bUseSPrate,-30; else if (.@str > 107) bonus bUseSPrate,-20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16048,'Unity_Mace','Unity Mace',5,20,NULL,400,'76',NULL,1,1,0x0004C5B3,63,2,2,3,'1',1,8,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16051,'Valkyrie_Hammer','Valkyrie Hammer',5,0,NULL,100,'50',NULL,1,4,0x0004C3B3,63,2,2,1,'70',1,8,'if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) { bonus bUseSPrate,-5; .@r = getrefine(); bonus bVit,.@r; bonus bMaxHP,200; bonus bFlee2,1; bonus bAspdRate,1; bonus bVariableCast,.@r/2; } else if ((eaclass()&EAJ_BASEMASK) == EAJ_SWORDMAN) { bonus bVit,getrefine(); bonus bMaxHP,500; bonus bMaxSP,100; } else if ((eaclass()&EAJL_2) == EAJ_PRIEST) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,getrefine(); } else if ((eaclass()&EAJL_2) == EAJ_MONK) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,getrefine(); } else if ((eaclass()&EAJ_BASEMASK) == EAJ_MERCHANT) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCast,getrefine()/2; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16051,'Valkyrie_Hammer_','Valkyrie Hammer',5,0,NULL,100,'50',NULL,1,4,0x0004C5B3,63,2,2,4,'70',1,8,'.@r = getrefine(); bonus bMatk,50; if (BaseJob==Job_Novice) { bonus bBaseAtk,150; bonus bMatk,200; bonus bUseSPrate,-5; bonus bHit,10; bonus bMaxHP,500+(200*.@r); bonus bMaxSP,400; bonus bVit,.@r; bonus bFlee2,.@r; bonus bAspdRate,.@r; bonus bVariableCastrate,-.@r/2; } if (BaseClass==Job_Swordman) { bonus bVit,.@r; bonus bMaxHP,500; bonus bMaxSP,100; } if (BaseJob==Job_Priest) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,.@r; } if (BaseJob==Job_Monk) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,.@r; } if (BaseClass==Job_Merchant) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCastrate,-.@r/2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16060,'Liquor_Bottle','Liquor Bottle',5,0,NULL,700,'120',NULL,1,3,0x0004C5B3,63,2,2,3,'100',1,8,'bonus bUnbreakableWeapon; bonus2 bAddEff,Eff_Stun,(300*getrefine());',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16063,'Illusion_Long_Mace','Illusion Long Mace',5,20,NULL,800,'185',NULL,3,2,0x00008110,63,2,2,4,'99',1,8,'bonus bLongAtkDef,(10+3*(getrefine()/2));',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16065,'Illusion_Iron_Driver','Illusion Iron Driver',5,0,NULL,2000,'210',NULL,2,2,0x00000100,56,2,2,4,'120',1,8,'.@r = getrefine(); bonus bAspd,(.@r/2); bonus2 bSkillAtk,"AB_DUPLELIGHT",(3*.@r);',NULL,NULL); @@ -9918,6 +9963,7 @@ REPLACE INTO `item_db_re` VALUES (18781,'RWC_Champ_Crown_Black','RWC Champ Crown REPLACE INTO `item_db_re` VALUES (18782,'Butterfly_Wing_Ear_J','Butterfly Wing Ear',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'0',0,695,'bonus bDex,2; bonus bUnbreakableHelm;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18785,'King_Poring_Hat','King Poring Hat',4,20,NULL,600,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'10',1,905,'bonus bDex,1; bonus bLuk,1; .@r = getrefine(); if(.@r>=3){ bonus bDex,(.@r-4); bonus bLuk,(.@r-4); }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18786,'Anemos_Mask','Anemos Mask',4,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'10',0,906,'bonus bUnbreakableHelm; bonus2 bMagicAtkEle,Ele_Wind,4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18787,'Goal_Tender_Mask','Goal Tender Mask',4,20,NULL,200,NULL,5,NULL,0,0xFFFFFFFF,63,2,513,NULL,'50',0,336,'bonus2 bAddRace,RC_DemiHuman,8; bonus2 bAddRace,RC_Player,8;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18790,'Rainbow_Poring_Hat','Rainbow Poring Hat',4,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'0',1,900,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (18791,'Shrine_Maiden_Hat','Shrine Maiden Hat',4,20,NULL,200,NULL,30,NULL,1,0xFFFFFFFF,63,2,256,NULL,NULL,NULL,908,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (18792,'Idn_Sakkat','Indonesian Independence Sakkat',4,10,NULL,400,NULL,NULL,NULL,0,0xFFFFFFFE,63,2,256,NULL,'45',1,901,'bonus bVit,10; bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus2 bSubRace,RC_DemiHuman,10;',NULL,NULL); @@ -10009,6 +10055,7 @@ REPLACE INTO `item_db_re` VALUES (18929,'Elephant_Model_Hat','Elephant Model Hat REPLACE INTO `item_db_re` VALUES (18930,'Gorilla_Model_Hat','Gorilla Model Hat',4,10,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,1066,'bonus bStr,2+((getrefine()>=11) ? 3 : 0); bonus3 bAutoSpell,"KN_BOWLINGBASH",1,50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18931,'Lion_Model_Hat','Lion Model Hat',4,10,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,1067,'.@r = getrefine(); bonus bInt,2+((.@r >= 2 && .@r <= 8) ? 1 : ((.@r > 8) ? (.@r/8): 0)); bonus3 bAutoSpellWhenHit,"WZ_METEOR",5,50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18932,'Rhino_Model_Hat','Rhino Model Hat',4,10,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,1068,'.@r = getrefine(); bonus bVit,2+((.@r >= 11) ? (.@r/11) : 0); bonus3 bAutoSpellWhenHit,"WZ_VERMILION",1,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18933,'Mechanical_Plant_Hat','Mechanical Plant Hat',4,20,NULL,500,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'45',1,1069,'.@r = getrefine()/2; bonus bDex,2; bonus bMdef,7; bonus2 bSkillAtk,"GN_SPORE_EXPLOSION",5+(5*.@r);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18934,'Fox_Ears_Bell_Ribbon','Fox Ears Bell Ribbon',4,0,NULL,400,NULL,4,NULL,1,0xFFFFFFFF,63,2,256,NULL,'50',1,1070,'bonus bAgi,2; bonus bAspdRate,10; .@r = getrefine(); autobonus "{ .@r = getrefine(); bonus bCritical,100; bonus bLongAtkRate,5+(.@r > 6 ? .@r : 0); }",50+(.@r*2),5000,BF_NORMAL,"{ active_transform 1150,5000; }";',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18936,'Golden_Fish','Golden Fish In Mouth',4,1,NULL,10,NULL,1,NULL,0,0xFFFFFFFF,63,2,1,NULL,'1',0,1081,'bonus bAllStats,2; bonus bBaseAtk,10; bonus bMatk,10; bonus2 bExpAddRace,RC_Fish,2; bonus2 bSubRace,RC_Fish,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18937,'Memories_Of_Lovers','Memories Of Lovers',4,0,NULL,100,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,512,NULL,NULL,1,1072,'bonus bMdef,7; bonus bMaxHPrate,2;',NULL,NULL); @@ -10023,7 +10070,7 @@ REPLACE INTO `item_db_re` VALUES (18970,'Magical_Moon_Cat','Magical Moon Cat',4, REPLACE INTO `item_db_re` VALUES (18971,'Old_Rune_Circlet','Old Rune Circlet',4,10,NULL,100,NULL,10,NULL,1,0x00000080,56,2,256,NULL,'170',1,623,'bonus bAllStats,1; bonus bMdef,5; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"RK_IGNITIONBREAK",20*.@r/2; bonus2 bSkillAtk,"RK_HUNDREDSPEAR",15*.@r/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18972,'Old_Mitra','Old Mitra',4,10,NULL,100,NULL,10,NULL,1,0x00000100,56,2,256,NULL,'170',1,624,'bonus bAllStats,1; bonus bMdef,5; .@r = getrefine(); bonus bMatk,2*.@r; bonus bBaseAtk,4*.@r; bonus bHealPower,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"AB_JUDEX",20*.@r/2; bonus2 bSkillAtk,"PR_MAGNUS",10*.@r/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18973,'Old_Driver_Band_R','Old Driver Band',4,10,NULL,100,NULL,10,NULL,1,0x00000400,56,2,256,NULL,'170',1,626,'bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_POWERSWING",20*.@r/2; bonus2 bSkillAtk,"NC_AXETORNADO",20*.@r/2;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (18974,'Old_Driver_Band_Y','Old Driver Band(Yellow)',4,10,NULL,100,NULL,10,NULL,1,0x00000400,56,2,256,NULL,'170',1,637,'bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_ARMSCANNON",20*.@r/2; bonus2 bSkillAtk,"NC_SELFDESTRUCTION",20*.@r/4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18974,'Old_Driver_Band_Y','Old Driver Band(Yellow)',4,10,NULL,100,NULL,10,NULL,1,0x00000400,56,2,256,NULL,'170',1,637,'bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bAspd,.@r/5; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"NC_ARMSCANNON",5*(.@r/2); bonus2 bSkillCooldown,"NC_SELFDESTRUCTION",-10000*(.@r/4);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18975,'Old_Shadow_Handicraft','Old Shadow Handicraft',4,10,NULL,100,NULL,10,NULL,1,0x00020000,56,2,256,NULL,'170',1,627,'bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bMatk,4*.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*.@r/2; if (.@r>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (.@r>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (.@r>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"SC_GROOMY",-1000; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18976,'Old_Minstrel_Song_Hat','Old Minstrel Song\'s Hat',4,10,NULL,100,NULL,10,NULL,1,0x00080000,56,1,256,NULL,'170',1,628,'bonus bAllStats,1; .@r = getrefine(); bonus bLongAtkRate,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"CG_ARROWVULCAN",20*.@r/2; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",5*.@r/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18977,'Old_Midas_Whisper','Old Midas Whisper',4,10,NULL,100,NULL,10,NULL,1,0x00040000,56,2,256,NULL,'170',1,629,'bonus bAllStats,1; .@r = getrefine(); bonus bBaseAtk,4*.@r; bonus bLongAtkRate,.@r; bonus bMaxHPrate,.@r/2; bonus bMaxSPrate,.@r/2; bonus2 bSkillAtk,"GN_CARTCANNON",15*.@r/2;',NULL,NULL); @@ -10054,6 +10101,8 @@ REPLACE INTO `item_db_re` VALUES (19050,'Loki_Nidhogg_Hat','Loki & Nidhoggur\'s REPLACE INTO `item_db_re` VALUES (19051,'Warrior_Moon_Cat','Warrior Moon Cat',4,20,NULL,100,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,1308,'/*Enables use of Level 1 Monster\'s Cry*/ bonus bAllStats,3; bonus2 bHPDrainRate,40,5; bonus2 bSPDrainRate,10,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19052,'Sigruns_Wing','Rental Sigrun\'s Wing',4,10,NULL,0,NULL,2,NULL,0,0xFFFFFFFF,63,2,512,NULL,'1',0,568,'if (Class == Job_Swordman || Class == Job_Thief || Class == Job_Merchant || Class == Job_Taekwon || Class == Job_Star_Gladiator || Class == Job_Star_Gladiator2) bonus bAspd,1; else if (Class == Job_Mage || Class == Job_Acolyte || Class == Job_Ninja || Class == Job_Soul_Linker) { bonus bMatk,5; bonus bHealPower,2; } else if (Class == Job_Archer || Class == Job_Gunslinger) bonus bLongAtkRate,2; else if (Class == Job_Novice || Class == Job_SuperNovice) { bonus bMaxHP,120; bonus bMaxSP,60; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19053,'Fighter_Moon_Cat','Fighter Moon Cat',4,20,NULL,100,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,1308,'/*Enables use of Level 1 Monster\'s Cry*/ .@r = getrefine(); bonus bAllStats,3; bonus2 bAddEff,Eff_Stun,500+(.@r*100);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19079,'Celestial_Woman\'s_Flower','Celestial Woman\'s Flower',4,20,NULL,300,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'20',1,438,'bonus bHPGainValue,100; bonus bMdef,5; bonus2 bSPGainRace,RC_Undead,5; if (getrefine()>=5) { bonus2 bSubRace,RC_Undead,5; } if (getrefine()>=7) { bonus2 bSubRace,RC_Undead,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19081,'Faceworm_Egg_Shell','Faceworm Egg Shell',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,1356,'bonus bHit,20; bonus2 bAddRace2,RC2_FACEWORM,5; bonus2 bMagicAddRace2,RC2_FACEWORM,5; bonus2 bSubRace2,RC2_FACEWORM,5; .@r = getrefine(); if (.@r>=5) { bonus2 bAddRace2,RC2_FACEWORM,10; bonus2 bMagicAddRace2,RC2_FACEWORM,10; bonus2 bSubRace2,RC2_FACEWORM,10; } if (.@r>=7) { bonus2 bAddRace2,RC2_FACEWORM,15; bonus2 bMagicAddRace2,RC2_FACEWORM,15; bonus2 bSubRace2,RC2_FACEWORM,15; } if (.@r>=9) { bonus2 bAddRace2,RC2_FACEWORM,20; bonus2 bMagicAddRace2,RC2_FACEWORM,20; bonus2 bSubRace2,RC2_FACEWORM,20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19082,'Bio_Protector','Bio Protector',4,0,NULL,500,NULL,3,NULL,0,0xFFFFFFFF,63,2,512,NULL,'50',1,1366,'bonus bHit,10; bonus bVariableCastrate,-5; bonus bPerfectHitRate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19083,'Mask_of_Hero','Mask of Hero',4,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1367,'bonus bVit,10; bonus bMdef,10; bonus bShortWeaponDamageReturn,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19084,'Parfaille_Vigilante_Hat','Parfaille Vigilante Hat',4,0,NULL,100,NULL,2,NULL,0,0x80000000,63,2,256,NULL,'20',1,1368,'bonus bLuk,1; bonus3 bAutoSpell,"AL_BLESSING",3,100;',NULL,NULL); @@ -10068,12 +10117,17 @@ REPLACE INTO `item_db_re` VALUES (19092,'Machoman_Glasses_','Machoman\'s Glasses REPLACE INTO `item_db_re` VALUES (19093,'Spinning_Eyes_','Geek Glasses',4,20000,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,512,NULL,'0',0,27,'bonus2 bResEff,Eff_Blind,800;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19094,'Mr_Smile_','Mr. Smile',4,60,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,513,NULL,'0',0,65,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (19095,'Happy_Balloon','Happy Balloon',4,0,NULL,10,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'1',0,1289,'bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19101,'Glastheim_Observer','Glastheim Observer',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',1,1041,'bonus2 bAddClass,Class_All,2; bonus bDelayrate,-5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19102,'Pale_Moon_Hat','Pale Moon Hat',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,913,'bonus bFlee,20; bonus2 bAddRace2,RC2_THANATOS,5; bonus2 bSubRace2,RC2_THANATOS,5; bonus2 bMagicAddRace2,RC2_THANATOS,5; if(getrefine()>4) { bonus2 bAddRace2,RC2_THANATOS,10; bonus2 bSubRace2,RC2_THANATOS,10; bonus2 bMagicAddRace2,RC2_THANATOS,10; } if(getrefine()>6) { bonus2 bAddRace2,RC2_THANATOS,15; bonus2 bSubRace2,RC2_THANATOS,15; bonus2 bMagicAddRace2,RC2_THANATOS,15; } if(getrefine()>8) { bonus2 bAddRace2,RC2_THANATOS,20; bonus2 bSubRace2,RC2_THANATOS,20; bonus2 bMagicAddRace2,RC2_THANATOS,20; } /* skill 3044,1; */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19109,'Valhalla_Idol','Valhalla Idol',4,0,NULL,300,NULL,2,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1423,'bonus bMaxSP,50; bonus4 bAutoSpellWhenHit,"MG_SAFETYWALL",10,50,0; hateffect(HAT_EF_VALHALLA_IDOL,true);',NULL,'hateffect(HAT_EF_VALHALLA_IDOL,false);'); REPLACE INTO `item_db_re` VALUES (19111,'Laser_Of_Eagle','Laser of Eagle',4,0,NULL,400,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1424,'bonus bDex,2; bonus bLongAtkRate,10; bonus5 bAutoSpell,"PR_LEXAETERNA",1,50,BF_LONG,1; /*TODO: Chance to transform become Shechil while attacking.*/',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19112,'Tengu_Scroll','Tengu Scroll',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'40',0,1445,'bonus2 bHPDrainRate,30,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19114,'Sting_Silk_Ribbon','Sting Silk Ribbon',4,20,NULL,300,NULL,15,NULL,1,0xFFFFFFFF,63,2,256,NULL,'70',1,1457,'bonus bUnbreakableHelm; bonus2 bSubEle,Ele_Earth,20; if(getrefine()>4) { bonus2 bSubSize,Size_All,2; } if(getrefine()>6) { bonus2 bSubSize,Size_All,3; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19115,'Republic_Hat','Republic Hat',4,0,NULL,400,NULL,3,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1458,'.@r = getrefine(); .@val = 6; if (.@r >= 7) { .@val += 2; } if (.@r >= 9) { .@val += 4; } bonus bLongAtkRate,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19116,'Red_Baby_Dragon','Red Baby Dragon',4,0,NULL,700,NULL,NULL,1,1,0xFFFFFFFF,63,2,256,NULL,'90',1,1463,'.@r=getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"RK_DRAGONBREATH",(.@r>=8?45:(.@r>=6?30:15)); bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",(.@r>=8?45:(.@r>=6?30:15));',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19117,'Poring_Sunglasses_','Poring Sunglasses',4,0,NULL,10,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'1',0,954,'bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19118,'Poring_Sunglasses__','Poring Sunglasses',4,0,NULL,10,NULL,0,NULL,1,0xFFFFFFFF,63,2,512,NULL,'1',0,954,'bonus2 bDropAddRace,RC_All,4; bonus2 bExpAddRace,RC_All,4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19125,'Cylinder_Hairband','Cylinder Hairband',4,20,NULL,300,NULL,12,NULL,1,0xFFFFFFFF,63,2,256,NULL,'90',1,1477,'bonus bStr,5; bonus bInt,5; bonus2 bVariableCastrate,"GN_CARTCANNON",-100; bonus2 bSkillUseSP,"GN_CARTCANNON",30; bonus2 bSkillUseSP,"GN_CART_TORNADO",5; bonus2 bSkillAtk,"GN_CARTCANNON",10; bonus2 bSkillAtk,"GN_CART_TORNADO",5; if (getrefine()>=5) { bonus2 bSkillAtk,"GN_CARTCANNON",20; bonus2 bSkillAtk,"GN_CART_TORNADO",10; } if (getrefine()>=8) { bonus2 bSkillAtk,"GN_CARTCANNON",30; bonus2 bSkillAtk,"GN_CART_TORNADO",20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19126,'Shadow_Booster_','Magical Booster',4,10,NULL,300,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,512,NULL,'1',1,873,'bonus bAspd,1; bonus bDelayrate,-1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19128,'Ifrit\'s_Ear_','Ears Of Ifrit',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFE,63,2,512,NULL,'50',0,422,'bonus bStr,1; bonus bMdef,3; bonus bInt,1; bonus2 bSkillAtk,"MG_FIREBOLT",3; bonus2 bSkillAtk,"WZ_FIREPILLAR",3; bonus2 bSkillAtk,"WZ_METEOR",3; bonus2 bSkillAtk,"SM_BASH",4; bonus2 bSkillAtk,"SM_MAGNUM",4; bonus2 bSkillAtk,"KN_PIERCE",3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Water,-3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19129,'Chick_Hat_','Chick Hat',4,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'10',0,311,'bonus bLuk,2; bonus bMaxHP,50; bonus bMaxSP,50; skill "TF_DOUBLE",2; bonus bDoubleRate,10; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3;',NULL,NULL); @@ -10082,7 +10136,8 @@ REPLACE INTO `item_db_re` VALUES (19131,'Radio_Antenna_','Radio Antenna',4,0,NUL REPLACE INTO `item_db_re` VALUES (19132,'Masquerade_','Masquerade',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFE,63,2,512,NULL,'0',0,78,'bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19133,'Odin_Mask_','Odin\'s Mask',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,513,NULL,'1',0,480,'bonus2 bSubClass,Class_Boss,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19134,'Wickebines_Black_Cat_Ears','Wickebine\'s Black Cat Ears',4,20,NULL,200,NULL,4,NULL,1,0xFFFFFFFE,63,2,256,NULL,'45',1,368,'bonus bFlee,10; bonus bCritAtkRate,10; autobonus "{ bonus2 bIgnoreMdefRaceRate,RC_ALL,25; }",50,5000,BF_MAGIC,"{ specialeffect2 EF_AGIUP; }";',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (19138,'Seraphim_Coronet','Seraphim Coronet',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1487,'bonus bStr,2; .@int = readparam(bInt); bonus bBaseAtk,(.@int/8)*5; bonus bHealPower,.@int/8; bonus bVariableCastrate,.@int/8; if ((.@int>108)) { bonus bBaseAtk,50; bonus bHealPower,5; bonus bVariableCastrate,4; } if ((.@int>120)) { bonus bBaseAtk,75; bonus bHealPower,5; bonus bVariableCastrate,2; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19137,'Strawberry_Mouth_Guard','Strawberry Mouth Guard',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,861,'bonus bVit,2; bonus bLongAtkDef,5; bonus bShortWeaponDamageReturn,5; if (Baselevel>=100) { bonus bMaxHP,2000; } else { bonus bMaxHP,200; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19138,'Seraphim_Coronet','Seraphim Coronet',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'70',0,1487,'bonus bStr,2; .@int = readparam(bInt); bonus bBaseAtk,(.@int/8)*5; bonus bHealPower,.@int/8; bonus bVariableCastrate,.@int/8; if ((.@int>=108)) { bonus bBaseAtk,50; bonus bHealPower,5; bonus bVariableCastrate,4; } if ((.@int>=120)) { bonus bBaseAtk,125; bonus bHealPower,10; bonus bVariableCastrate,6; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19139,'SurviveOrb','Survive Orb',4,0,NULL,300,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1,NULL,'50',0,1488,'skill "TF_HIDING",1; bonus2 bAddClass,Class_All,2; bonus bMatkRate,2; bonus bVariableCastrate,-3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19140,'Squirrel_Ear_Hat','Squirrel Ear Hat',4,0,NULL,200,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1486,'.@r = getrefine(); bonus bAspd,1; bonus bCriticalLong,5; bonus bCritAtkRate,10; bonus2 bIgnoreDefRaceRate,RC_All,10; if (.@r > 4) { bonus bAspd,1; bonus bCriticalLong,10; bonus bCritAtkRate,2; bonus2 bIgnoreDefRaceRate,RC_All,20; } if (.@r > 6) { bonus bAspd,1; bonus bCriticalLong,15; bonus bCritAtkRate,6; bonus2 bIgnoreDefRaceRate,RC_All,30; } if (.@r > 8) { bonus bAspd,1; bonus bCriticalLong,20; bonus bCritAtkRate,12; bonus2 bIgnoreDefRaceRate,RC_All,40; autobonus "{ bonus bCritAtkRate,100; }",70,5000; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19141,'Dolor_Thanatos_Mask','Dolor Thanatos Mask',4,20,NULL,200,NULL,6,NULL,0,0xFFFFFFFF,63,2,513,NULL,'100',0,666,'bonus bMdef,8; bonus bAllStats,1; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,1; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Earth,5;',NULL,NULL); @@ -10109,6 +10164,9 @@ REPLACE INTO `item_db_re` VALUES (19164,'Para_Team_Hat100','Awakened Eden Group REPLACE INTO `item_db_re` VALUES (19165,'Para_Team_Hat160','Awakened Eden Group Hat II',4,20,NULL,0,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'160',1,1530,'autobonus "{ bonus bBaseAtk,30; }",70,5000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; autobonus "{ bonus bMatk,30; }",50,5000,BF_MAGIC,"{ specialeffect2 EF_SPELLBREAKER; }"; .@r = getrefine(); if(.@r >= 7){ bonus bAtk,15; bonus bMatk,15; if(.@r >= 9){ bonus bAllStats,2; if(.@r >= 12){ bonus2 bRegenPercentHP,2,10000; bonus2 bRegenPercentSP,1,10000; } } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19166,'RO_Celebration_Hat','RO Celebration Hat',4,20,NULL,140,NULL,14,NULL,1,0xFFFFFFFF,63,2,256,NULL,'14',1,1541,'bonus bMaxSP,140; bonus2 bSPRegenRate,6,4000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19168,'Band_Of_Kafra_','Kafra Staff Headband',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,NULL,1,106,'bonus2 bSubClass,Class_All,5; .@r = getrefine()*10; bonus2 bAddMonsterDropItem,23177,10+.@r; bonus2 bAddMonsterDropItem,7059,10+.@r; bonus2 bAddMonsterDropItem,7060,10+.@r;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19171,'Magician_Knit_Hat','Magician Knit Hat',4,20,NULL,500,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'10',1,854,'.@r = getrefine(); bonus bMdef,10; bonus2 bAddRace,RC_Undead,5; bonus2 bMagicAddRace,RC_Undead,5; bonus2 bSubRace,RC_Undead,2; bonus bSPGainValue,5; bonus bLongSPGainValue,5; bonus bMagicSPGainValue,5; if (.@r>=7) { bonus bMdef,5; bonus2 bAddRace,RC_Undead,10; bonus2 bMagicAddRace,RC_Undead,10; bonus2 bSubRace,RC_Undead,3; bonus bSPGainValue,10; bonus bLongSPGainValue,10; bonus bMagicSPGainValue,10; } if (.@r>=9) { bonus bMdef,5; bonus2 bAddRace,RC_Undead,10; bonus2 bMagicAddRace,RC_Undead,10; bonus2 bSubRace,RC_Undead,5; bonus bSPGainValue,10; bonus bLongSPGainValue,10; bonus bMagicSPGainValue,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19172,'Sitting_Pope_Casual','Sitting Pope Casual',4,1000,NULL,400,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1553,'bonus bInt,2; bonus bDelayrate,-10; .@r = getrefine(); if (.@r>=7) bonus bDelayrate,-10; if (.@r>=9) bonus bDelayrate,-10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19173,'Floating_Ice','Floating Ice',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'90',0,1562,'bonus2 bAddItemHealRate,536,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19176,'Fallen_Angel_Blessing_','Fallen Angel Blessing',4,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFF,63,2,512,NULL,'10',0,1250,'bonus2 bAddRace,RC_Angel,5; bonus2 bSubRace,RC_Angel,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19177,'Elemental_Crown_','Elemental Crown',4,0,NULL,500,NULL,10,NULL,0,0xFFFFFFFF,63,2,256,NULL,'50',1,1219,'.@r = getrefine(); bonus bDex,3 + (.@r/2); bonus bLongAtkRate,4;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19178,'Elemental_Crown__','Elemental Crown',4,0,NULL,500,NULL,10,NULL,1,0xFFFFFFFF,63,2,256,NULL,'50',1,1219,'.@r = getrefine(); bonus bDex,3 + (.@r/2); bonus bLongAtkRate,4;',NULL,NULL); @@ -10122,10 +10180,32 @@ REPLACE INTO `item_db_re` VALUES (19223,'Illusion_Cap','Illusion Cap',4,0,NULL,4 REPLACE INTO `item_db_re` VALUES (19247,'Illusion_Fancy_Flower','Illusion Fancy Flower',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,'120',0,4,'bonus bMatkRate,1; bonus bMatk,(2*getrefine());',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (19246,'Royal_Guard_Necklace','Royal Guard Necklace',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,1629,'bonus bAspd,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19269,'Happy_Flapping_Wings','Happy Flapping Angel Wings',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'30',1,1251,'.@r = getrefine(); .@a = 15; if (.@r >= 7) .@a += 15; if (.@r>=8) bonus2 bResEff,Eff_Stone,10000; if (.@r>=9) .@a += 20; bonus2 bAddRace2,RC2_CLOCKTOWER,.@a; bonus2 bMagicAddRace2,RC2_CLOCKTOWER,.@a; bonus2 bSubRace2,RC2_CLOCKTOWER,.@a; bonus2 bAddMonsterDropItem,1061,500; /* Unofficial rates, info get from bRO itemdescription */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19272,'Garden_of_Eden','Garden of Eden',4,20,NULL,400,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1653,'.@r = getrefine(); bonus bInt,5; bonus bDex,5; bonus2 bIgnoreMdefRaceRate,RC_All,20; bonus2 bMagicAtkEle,Ele_All,10; if (.@r>=7) { bonus2 bIgnoreMdefRaceRate,RC_All,30; bonus2 bMagicAtkEle,Ele_All,15; } if (.@r>=9) { bonus2 bIgnoreMdefRaceRate,RC_All,50; bonus bVariableCastrate,-15; }',NULL,'sc_end SC_TELEKINESIS_INTENSE;'); +REPLACE INTO `item_db_re` VALUES (19273,'Gemini_Red_Eyes','Gemini Red Eyes',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'100',0,1654,'.@val = 100*(readparam(bVit)>89?50:10); bonus2 bResEff,Eff_Sleep,.@val; bonus2 bResEff,Eff_Stone,.@val;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19274,'Open_Air_Headset','Open Air Headset',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'90',0,1655,'bonus bDelayrate,-5; bonus bUseSPrate,-5; bonus bSPGainValue,5; bonus bMagicSPGainValue,5; bonus bLongSPGainValue,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19285,'Siegfried\'s_Helmet','Siegfried\'s Helmet',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1055,'.@r = getrefine(); bonus2 bSubClass,Class_Boss,5; bonus bUnbreakableHelm; if (.@r>=6) { bonus bFlee2,5; bonus2 bSubClass,Class_Boss,5; } if (.@r>=8) { bonus bFlee2,5; bonus2 bSubClass,Class_Boss,10; bonus bNoKnockback; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19299,'Tree_Sprout','Tree Sprout',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,848,'bonus bVariableCastrate,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19306,'Gambler_Card','Heart Card in Mouth',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,1679,'bonus bCritAtkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19326,'Book_of_Soyga','Book of Soyga',4,20,NULL,1000,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,'90',1,423,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19327,'Seraphim_Feather','Seraphim Feather',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,1704,'bonus bHealPower,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19329,'Devil\'s_Hand','Devil\'s Hand',4,10,NULL,1000,NULL,18,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1018,'.@r = getrefine(); .@a = getskilllv("SR_RIDEINLIGHTNING"); .@b = getskilllv("SR_EARTHSHAKER"); .@c = getskilllv("SR_RAMPAGEBLASTER"); bonus bNoCastCancel; bonus bAspdRate,10; bonus2 bFixedCastrate,"SR_HOWLINGOFLION",-100; bonus2 bSkillAtk,"SR_HOWLINGOFLION",20; if (.@r>=7) { bonus2 bSkillAtk,"SR_HOWLINGOFLION",30; bonus bAspdRate,5; } if (.@r>=9) { bonus2 bSkillAtk,"SR_HOWLINGOFLION",50; bonus bAspdRate,5; } if (.@r>=10) bonus bIgnoreDefClass,Class_All; if (.@r>=10 && .@a==5) { bonus2 bVariableCastrate,"SR_HOWLINGOFLION",-50; bonus2 bVariableCastrate,"MO_STEELBODY",-50; bonus2 bVariableCastrate,"MO_CALLSPIRITS",-50; } if (.@r>=10 && .@b==5) bonus2 bSkillCooldown,"SR_HOWLINGOFLION",-9500; if (.@r>=10 && .@c==5) bonus2 bAddClass,Class_Boss,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19337,'Safety_Glasses','Safety Glasses',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'40',1,1721,'.@r = getrefine(); bonus2 bSubEle,Ele_Poison,10; if (.@r<7) .@a = 15; else if (.@r<9) .@a = 30; else if (.@r>=9) .@a = 50; if (.@r>=8) bonus2 bSubEle,Ele_Poison,15; /* bonus2 bAddRace2,RC2_HEARTHUNTER,.@a; bonus2 bMagicAddRace2,RC2_HEARTHUNTER,.@a; bonus2 bSubRace2,RC2_HEARTHUNTER,.@a; Hearthunter Warbase is not implemented yet */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19342,'Bull_Hat','Bull Hat',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'130',1,819,'.@r = getrefine(); bonus2 bSubEle,Ele_Wind,10; if (.@r<7) .@a = 15; if (.@r>=7 && .@r<9) .@a = 30; if (.@r>=8) bonus2 bSubEle,Ele_Wind,15; if (.@r>=9) .@a = 50; bonus2 bAddRace2,RC2_ROCKRIDGE,.@a; bonus2 bMagicAddRace2,RC2_ROCKRIDGE,.@a; bonus2 bSubRace2,RC2_ROCKRIDGE,.@a;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19343,'Circlet_Of_Phoenix','Circlet Of Phoenix',4,0,NULL,1000,NULL,18,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1056,'.@r = getrefine(); .@mdef = 15; .@hp = 10; .@dmg = 10; .@cast = -10; bonus2 bFixedCastrate,"LG_OVERBRAND",-100; if (.@r>=7) { .@cast -= 5; .@dmg += 15; if (.@r>=9) { .@cast -= 5; .@dmg += 25; if (.@r>=10) { bonus2 bIgnoreDefClassRate,Class_All,100; } } } if (getskilllv("LG_KINGS_GRACE")>=5) { bonus2 bSkillCooldown,"LG_INSPIRATION",-10000; bonus2 bSkillVariableCast,"LG_INSPIRATION",-2000; } if (getskilllv("LG_MOONSLASHER")>=5) { bonus2 bSkillVariableCast,"LG_OVERBRAND",-1000; } if (getskilllv("LG_FORCEOFVANGUARD")>=5) { .@hp += 10; .@mdef += 15; bonus bMaxSPrate,10; bonus bDef,150; } bonus bMdef,.@mdef; bonus bMaxHPrate,.@hp; bonus2 bSkillAtk,"LG_OVERBRAND",.@dmg; bonus bVariableCastrate,.@cast;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19344,'Illusion_Hot_blooded_Headband','Illusion Hot-blooded Headband',4,0,NULL,100,NULL,3,NULL,1,0xFFFFFFFE,63,2,256,NULL,'120',1,154,'.@r = getrefine(); bonus bStr,2; bonus bBaseAtk,(10*(.@r/2)); if (.@r >= 7) { bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Wind,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Neutral,10; if (.@r >= 9) { bonus2 bAddSize,Size_Small,15; bonus2 bAddSize,Size_Large,15; } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19366,'Illusion_Goibne_Helm','Illusion Goibne Helm',4,0,NULL,1000,NULL,25,NULL,1,0xFFFFFFFE,63,2,256,NULL,'130',1,258,'.@r = getrefine(); .@vit = 3; if (.@r >= 7) { .@vit += 5; if (.@r >= 9) { bonus bDelayrate,-12; } } bonus bVit,.@vit; bonus bMdef,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19379,'Striking_Hat','Striking Hat',4,20,NULL,400,NULL,5,NULL,1,0xFFFFFFFF,63,2,256,NULL,'100',1,1759,'.@r = getrefine(); bonus bDex,5; bonus bAgi,5; bonus bLongAtkRate,5; bonus bAspdRate,10; bonus bPerfectHitAddRate,10; bonus bHit,2*.@r; bonus bDelayrate,-2*.@r; if (.@r>=7) { bonus bPerfectHitAddRate,20; bonus bLongAtkRate,10; } if (.@r>=9) { bonus bPerfectHitAddRate,20; bonus bLongAtkRate,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19380,'Floating_Ball','Floating Ball',4,10,NULL,200,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,512,NULL,'100',NULL,1760,'bonus bMatk,35; bonus2 bMagicAddClass,Class_Boss,2; if (readparam(bDex)>=90) { bonus bMatk,70; bonus2 bMagicAddClass,Class_Boss,3; } if (readparam(bDex)>=125) { bonus bMatk,140; bonus2 bMagicAddClass,Class_Boss,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19381,'Protect_Cloth','Protect Cloth',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'90',0,848,'bonus bMdef,5; bonus bMaxHPrate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19387,'Experimental_Goat_Cap','Experimental Goat Cap',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,256,NULL,'40',1,1768,'.@r = getrefine(); .@sub = 10; .@dmg = 15; if (.@r >= 7) { .@dmg += 15; if (.@r >= 8) { .@sub += 15; if (.@r >= 9) { .@dmg += 20; } } } bonus2 bSubEle,Ele_Earth,.@val; /*bonus2 bAddRace2,RC2_WERNER_LAB,.@dmg; bonus2 bMagicAddRace2,RC2_WERNER_LAB,.@dmg; bonus2 bSubRace2,RC2_WERNER_LAB,.@dmg; Werner\'s Central lab is not implemented yet */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19391,'Eyes_Of_Illusion','Eyes Of Illusion',4,20,NULL,500,NULL,2,NULL,0,0xFFFFFFFF,63,2,512,NULL,'100',0,1779,'bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSubRace,RC_Player,5; bonus2 bResEff,Eff_Blind,10000; if (getskilllv("GN_ILLUSIONDOPING")==5) skill "SA_DISPELL",5; if (getskilllv("GN_MANDRAGORA")==5) bonus2 bFixedCastrate,"GN_MANDRAGORA",-70;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19407,'Work_Cap','Work Cap',4,200,NULL,1000,NULL,18,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1793,'.@r = getrefine(); bonus bMdef,15; bonus bVit,10; bonus2 bSkillAtk,"NC_AXETORNADO",20; bonus2 bVariableCastrate,"BS_GREED",-100; if (getskilllv("NC_MAGICDECOY") >= 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("NC_AXEBOOMERANG") >= 5) bonus bBaseAtk,100; if (getskilllv("NC_MAGMA_ERUPTION") >= 5) bonus2 bAddMonsterDropItem,732,10; if (.@r>=7) bonus2 bSkillAtk,"NC_AXETORNADO",30; if (.@r>=9) bonus2 bSkillAtk,"NC_AXETORNADO",50; if (.@r>=10) bonus bIgnoreDefClass,Class_All;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19409,'Black_Feather_Hat','Black Feather Hat',4,20,NULL,1000,NULL,18,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,731,'.@r = getrefine(); bonus bSPGainValue,50; bonus bLongSPGainValue,50; bonus bMagicSPGainValue,50; bonus bMdef,15; bonus bDex,10; bonus2 bSkillAtk,"SC_FEINTBOMB",10; if (getskilllv("SC_INVISIBILITY") >= 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("SC_MAELSTROM") >= 3) skill "TK_JUMPKICK",7; if (getskilllv("SC_REPRODUCE") >= 10) bonus bUseSPrate,-30; if (.@r>=7) { bonus2 bSkillAtk,"SC_FEINTBOMB",15; bonus bHit,30; } if (.@r>=9) { bonus2 bSkillAtk,"SC_FEINTBOMB",25; bonus bHit,20; } if (.@r>=10) bonus bIgnoreDefClass,Class_All;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19426,'Spirit_King\'s_Crown','Spirit King\'s Crown',4,20,NULL,600,NULL,12,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1118,'.@r = getrefine(); bonus bMdef,15; bonus bFixedCastrate,-7*.@r; bonus bDelayrate,-10; bonus2 bSkillAtk,"SO_EARTHGRAVE",10; bonus2 bSkillAtk,"SO_DIAMONDDUST",10; bonus bVariableCastrate,-6*getskilllv("SO_EL_SYMPATHY"); if (getskilllv("SO_WARMER") >= 5) { bonus2 bSkillCooldown,"SO_EARTHGRAVE",-1000; bonus2 bSkillCooldown,"SO_DIAMONDDUST",-1000; bonus2 bSkillCooldown,"SO_VARETYR_SPEAR",-1000; } if (getskilllv("SO_ELEMENTAL_SHIELD") >= 5) bonus2 bMagicAddClass,Class_Boss,25; if (.@r>=7) { bonus2 bSkillAtk,"SO_EARTHGRAVE",15; bonus2 bSkillAtk,"SO_DIAMONDDUST",15; bonus bDelayrate,-5; } if (.@r>=9) { bonus bDelayrate,-5; bonus2 bSkillAtk,"SO_EARTHGRAVE",25; bonus2 bSkillAtk,"SO_DIAMONDDUST",25; } if (.@r>=10) bonus2 bIgnoreMdefClassRate,Class_All,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (19428,'Illusion_Morpheus\'s_Hood','Illusion Morpheus\'s Hood',4,20,NULL,200,NULL,15,NULL,1,0xFFFFFFFF,63,2,256,NULL,'130',1,256,'.@r = getrefine(); bonus bInt,10; bonus bMdef,15; bonus bMaxSPrate,20; bonus bVariableCastrate,-(3*(.@r/2)); if (.@r >= 7) { bonus bMatk,30; if (.@r >= 9) { bonus bNoCastCancel; } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19453,'Jeje_Cap','Jeje Cap',4,20,NULL,1000,NULL,18,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1011,'.@r = getrefine(); .@dmg = 10; .@delay = -15-6*getskilllv("GN_CRAZYWEED"); bonus bMdef,15; bonus bNoCastCancel; bonus2 bVariableCastrate,"GN_CRAZYWEED",-50; bonus2 bVariableCastrate,"CR_ACIDDEMONSTRATION",-50; bonus2 bVariableCastrate,"CR_FULLPROTECTION",-50; if (.@r>=7) { .@dmg += 15; if (.@r>=9) { .@dmg += 25; if (.@r>=10) { bonus bIgnoreDefClass,Class_All; } } } if (getskilllv("GN_FIRE_EXPANSION") == 5) bonus2 bAddClass,Class_Boss,50; if (getskilllv("GN_CRAZYWEED") == 5) { .@delay -= 25; bonus2 bSkillCooldown,"GN_CRAZYWEED",-4500; } bonus2 bSkillAtk,"CR_ACIDDEMONSTRATION",.@dmg; bonus2 bSkillAtk,"GN_CRAZYWEED",.@dmg; bonus bDelayrate,.@delay;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (19469,'Saint_Crown','Saint Crown',4,20,NULL,600,NULL,12,NULL,0,0xFFFFFFFF,63,2,256,NULL,'100',1,1117,'.@r = getrefine(); .@a = 5*(getskilllv("AB_LAUDAAGNUS")+getskilllv("AB_LAUDARAMUS")); .@dmg = 20; .@aspd = 10; bonus bMdef,15; bonus2 bSkillUseSP,"AB_JUDEX",15; bonus2 bSkillUseSP,"AB_ADORAMUS",15; bonus2 bVariableCastrate,"AB_JUDEX",-5*getskilllv("AB_ORATIO"); bonus2 bVariableCastrate,"AB_ADORAMUS",-5*getskilllv("AB_ORATIO"); if (getskilllv("AB_CLEARANCE") >= 5) { bonus2 bMagicAddClass,Class_Boss,25; } bonus2 bMagicAddEle,Ele_Undead,.@a; bonus2 bMagicAddEle,Ele_Ghost,.@a; bonus2 bMagicAddEle,Ele_Earth,.@a; bonus2 bMagicAddEle,Ele_Neutral,.@a; bonus2 bMagicAddRace,RC_DemiHuman,2*.@r; bonus2 bMagicAddRace,RC_Player,2*.@r; if (.@r >= 7) { .@dmg += 30; .@aspd += 5; if (.@r >= 9) { .@dmg += 50; .@aspd += 5; if (.@r >= 10) { bonus bNoGemStone; } } } bonus bAspdRate,.@aspd; bonus2 bSkillAtk,"AB_JUDEX",.@dmg; bonus2 bSkillAtk,"AB_ADORAMUS",.@dmg;',NULL,NULL); #=================================================================== # Costume System #=================================================================== @@ -10677,7 +10757,7 @@ REPLACE INTO `item_db_re` VALUES (20127,'C_Abysmal_Knight_Helm','Costume Abysmal REPLACE INTO `item_db_re` VALUES (20128,'C_Remover_Hat','Costume Remover Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,655,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20129,'C_Poporing_Cap','Costume Poporing Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,361,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20130,'C_Whisper_Tall_Hat','Costume Whisper Tall Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1265,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20131,'C_C_Tower_Manager_Incom','Costume Clock Tower Manager',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,NULL,0,1266,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20131,'C_C_Tower_Manager_Incom','Costume Clock Tower Manager',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1266,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20132,'C_Subject_Aura','Costume Aura Vicious Mind',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1267,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20133,'C_Poring_Mascot_Costume','Costume Poring Mascot',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1268,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20134,'C_Helm_Of_Abyss_White','Costume White Helm Of Abyss',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1269,NULL,NULL,NULL); @@ -10700,7 +10780,7 @@ REPLACE INTO `item_db_re` VALUES (20150,'C_Wind_Fan','Costume Wind Fan',4,0,NULL REPLACE INTO `item_db_re` VALUES (20151,'C_Poison_Spore_Hat','Costume Poison Spore Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,899,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20152,'C_Straw_Rice_Bag','Costume Straw Rice Bag',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',0,1273,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20153,'C_Monochrome_Cap','Costume Monochrome Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1274,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20154,'C_Maple_Which_Falls','Costume Maple Which Falls',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,NULL,0,1275,NULL,'sc_start SC_MAPLE_FALLS,INFINITE_TICK,0;','sc_end SC_MAPLE_FALLS;'); +REPLACE INTO `item_db_re` VALUES (20154,'C_Maple_Which_Falls','Costume Maple Which Falls',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1275,NULL,'sc_start SC_MAPLE_FALLS,INFINITE_TICK,0;','sc_end SC_MAPLE_FALLS;'); REPLACE INTO `item_db_re` VALUES (20155,'C_Ladys_Feather_Hat','Costume Lady\'s Feather Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,NULL,0,1276,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20156,'C_Fan_in_Mouth','Costume Fan in Mouth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,857,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20157,'C_Fish_On_Head','Costume Evolved Blue Fish',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,149,NULL,NULL,NULL); @@ -10717,7 +10797,7 @@ REPLACE INTO `item_db_re` VALUES (20167,'C_Deviruchi_Headphone','Costume Deviruc REPLACE INTO `item_db_re` VALUES (20168,'C_Skull_Hood','Costume Skull Hood',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',0,598,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20169,'C_Long_Tongue','Costume Long Tongue',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,773,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20170,'C_Brown_Deviruchi_Cap','Costume Brown Deviruchi Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,273,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20171,'C_Sepia_Cap','Costume Sepia Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,NULL,0,1280,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20171,'C_Sepia_Cap','Costume Sepia Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1280,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20172,'C_Pumpkin_Head','Costume Pumpkin Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1281,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20173,'C_Lude_Hood','Costume Lude Hood',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1282,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20174,'C_Halloween_Hat_Orange','Costume Orange Halloween Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1283,NULL,NULL,NULL); @@ -10741,7 +10821,7 @@ REPLACE INTO `item_db_re` VALUES (20191,'C_Black_Cat_Ears_Beret','Costume Black REPLACE INTO `item_db_re` VALUES (20192,'C_Green_Foxtail','Costume Green Foxtail',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1058,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20193,'C_Foxtail','Costume Foxtail',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,711,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20194,'C_Lion_Mask','Costume Lion Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,202,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20195,'C_Scratching_Cat','Costume Scratching Cat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,NULL,0,1292,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20195,'C_Scratching_Cat','Costume Scratching Cat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',0,1292,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20196,'C_Leopard_Ear_Hat','Costume Leopard Ear Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1293,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20197,'C_Amistr_Beret','Costume Amistr Beret',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1294,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20198,'C_Misty_Ears','Costume Misty Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1295,NULL,NULL,NULL); @@ -10858,7 +10938,7 @@ REPLACE INTO `item_db_re` VALUES (20319,'C_Crimson_Booster','Costume Crimson Boo REPLACE INTO `item_db_re` VALUES (20320,'C_Red_Bandana','Costume Red Bandana',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,62,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20321,'C_Pterios_Fins','Costume Pterios Fins',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1009,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20322,'C_Seal_Hat','Costume Seal Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,540,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20323,'C_Sparkling_Sound','Costume Sparkling Sound',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1074,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20323,'C_Sparkling_Sound','Costume Sparkling Sound',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1074,NULL,'sc_start SC_DECORATION_OF_MUSIC,INFINITE_TICK,0;','sc_end SC_DECORATION_OF_MUSIC;'); REPLACE INTO `item_db_re` VALUES (20324,'C_Pigeon_Hat','Costume Pigeon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1362,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20325,'C_Little_Aquarium','Costume Little Aquarium',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1363,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20326,'C_Sailor_Collar','Costume Sailor Collar',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1364,NULL,NULL,NULL); @@ -10917,18 +10997,19 @@ REPLACE INTO `item_db_re` VALUES (20382,'C_Silver_Sniper_Doll','Costume Silver S REPLACE INTO `item_db_re` VALUES (20383,'C_Magic_Decoy_Doll','Costume Magic Decoy Doll',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1408,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20384,'C_Douce_Tiara','Costume Douce Tiara',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1410,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20386,'C_Victory_Wing_Helm','Costume Victory Wing Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,677,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20391,'C_Silent_Executor','Costume Silent Executor',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',0,632,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20392,'C_Sniper_Google','Costume Sniper Google',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',0,625,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20393,'C_Schmitz_Helm','Costume Schmitz Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,634,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20394,'C_Pumpkin_Toque','Costume Pumpkin Toque',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1411,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20396,'C_Green_Hat','Costume Green Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,939,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20397,'C_Jakk','C Jack',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',0,1415,'autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }";',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20397,'C_Jakk','Costume Jack',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',0,1415,'autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }";',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20398,'C_Niffleheim_Bunny_Hat','Costume Niffleheim Bunny Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1285,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20399,'C_Crow_Tengu_Mask','Costume Crow Tengu Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1287,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20400,'C_Ichthys_Rosario','Costume Ichthys Rosario',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1028,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20401,'C_Angel_Guidance','Costume Angel Guidance',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1188,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20402,'C_Holy_Klobuk','Costume Holy Klobuk',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,895,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20403,'C_Dolor_Thanatos','Costume Dolor Thanatos',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,547,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20404,'C_Blessing_Of_Angels','Costume Blessing of Angel',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1425,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20404,'C_Blessing_Of_Angels','Costume Blessing of Angel',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1425,'hateffect(HAT_EF_BLESSING_OF_ANGELS,true);',NULL,'hateffect(HAT_EF_BLESSING_OF_ANGELS,false);'); REPLACE INTO `item_db_re` VALUES (20405,'C_Eremes_Scarf','Costume Eremes Scarf',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1416,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20406,'C_Commandments_Of_Chain','Costume Chain of Commandments',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1417,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20407,'C_Subject_Aura_Red','Costume Vicious Mind Aura Crimson',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1418,NULL,NULL,NULL); @@ -10953,339 +11034,6 @@ REPLACE INTO `item_db_re` VALUES (20431,'C_Magician_Headdress','Costume Magician REPLACE INTO `item_db_re` VALUES (20432,'C_Khalitzburg_Knight_Helm','Costume Khalitzburg Knight Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1442,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20433,'C_Louise_Red_Hat','Costume Louise Red Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1443,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20434,'C_Drooping_Gunslinger','Costume Drooping Gunslinger',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1444,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20435,'C_Camellia_Hair_Pin','Costume Camellia Hair Pin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1203,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20075,'C_Little_Fhat','Costume Little Feather Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,715,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20076,'C_Idun_Wing_Ears','Costume Idun Feather Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,724,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20077,'C_Wing_Form_Spectacle','Costume Wing Frame Sunglasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,925,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20078,'C_White_Feather','Costume White Feather',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,741,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20079,'C_Love_Daddy_2013','Costume Forgotten Angel Wing',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1104,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20080,'C_Shaman\'s_Hair_Orna','Costume Shaman Hair Ornament',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,476,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20081,'C_Metal_Dragon_Helm','Costume Metal Dragon Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1242,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20082,'C_Metal_Dragon_Hat','Costume Metal Dragon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1243,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20083,'C_Mythlit_Hat','Costume Mythlit Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1244,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20084,'C_Clover_Coronet','Costume Ceremonial Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,325,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20085,'C_Clover_Silkhat','Costume St Patrick\'s Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,735,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20086,'C_Dragon_Cintamani_Hat1','Costume Dragon Cintamani Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1245,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20087,'C_Dragon_Cintamani_Hat2','Costume Dragon Cintamani Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1246,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20088,'C_Dragon_Cintamani_Hat3','Costume Dragon Cintamani Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1247,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20089,'C_Dragon_Cintamani_Hat4','Costume Dragon Cintamani Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1248,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20090,'C_Egg_Shell','Costume Egg Shell',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,101,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20091,'C_Smoking_Pipe','Costume Pipe',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,55,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20092,'C_Sales_Signboard','Costume Sales Banner',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,183,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20093,'C_Star_Sparkling','Costume Wizard Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,36,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20094,'C_Fillet_Green','Costume Green Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,439,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20095,'C_Fillet_Red','Costume Red Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,440,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20096,'C_Fillet_Blue','Costume Blue Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,441,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20097,'C_Fillet_White','Costume White Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,442,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20098,'C_Vampire_Hairband','Costume Vampire Hairband',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1238,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20099,'C_Ljosalfar','Flying Ljosalfar',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1239,NULL,'sc_start SC_LJOSALFAR,INFINITE_TICK,0;','sc_end SC_LJOSALFAR;'); -REPLACE INTO `item_db_re` VALUES (20100,'C_Volume_Fhat','Costume Volume Fhat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1240,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20101,'C_Bragi_Wing_Ears','Costume Bragi Wing Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1241,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20102,'C_Horse_King_J','Costume Horse King J',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1189,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20103,'C_Drooping_Panda','Costume Drooping Panda',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1029,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20104,'C_Picky_Egg_Shell','Costume Picky Egg Shell',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1001,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20105,'C_Fish_Head_Hat','Costume Fish Head',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,386,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20106,'C_Classic_Hat','Costume Classic Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,475,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20107,'C_Fish_In_Mouth','Costume Fish In Mouth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,406,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20108,'C_Blind_Glasses','Costume Blind Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,813,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20109,'C_Jolly_Roger','Costume Jolly Roger Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,962,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20110,'C_Coiledup_Snake','Costume Coiledup Snake',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1258,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20111,'C_Coiledup_Snake_Hat2','Costume Coiledup Snake Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1259,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20112,'C_Aqua_Ten_Gallon_Hat','Costume Aqua Ten Gallon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1256,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20113,'C_Star_Reading_Hat','Costume Star Reading Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1253,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20114,'C_Funeral_Costume','Costume Funeral Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,77,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20115,'C_Under_Rim_Glasses','Under Rim Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1255,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20116,'C_Mermaid_Headphone','Mermaid Headphone',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1254,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20117,'C_Raspberry_Mousse_Hat','Raspberry Mousse Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1257,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20118,'C_Hat_Of_Cake','Costume Cake Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,109,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20119,'C_Fur_Hat','Costume Beanie',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,160,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20120,'C_Antenna','Costume Aerial',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,97,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20121,'C_Lotus_Flower_Hat','Costume Flower Lily',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,324,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20122,'Happy_Summer_Ribbon','Costume Happy Summer Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1260,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20123,'C_Eagle_Eyes','Costume Eagle Eyes',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,63,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20124,'C_Masquerade','Costume Masquerade',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,78,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20125,'C_Mini_Glasses','Costume Mini Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,47,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20126,'C_Odium_Thanatos_Mask','Costume Odium Thanatos Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,667,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20127,'C_Abysmal_Knight_Helm','Costume Abysmal Knight Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,371,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20128,'C_Remover_Hat','Costume Remover Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,655,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20129,'C_Poporing_Cap','Costume Poporing Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,361,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20130,'C_Whisper_Tall_Hat','Costume Whisper Tall Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1265,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20131,'C_C_Tower_Manager_Incom','Costume Clock Tower Manager',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,NULL,1,1266,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20132,'C_Subject_Aura','Costume Aura Vicious Mind',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1267,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20133,'C_Poring_Mascot_Costume','Costume Poring Mascot',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1268,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20134,'C_Helm_Of_Abyss_White','Costume White Helm Of Abyss',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1269,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20135,'C_12_Anniversary_Crown_Of_Saint','Costume 12 Anniversary Crown of Saint',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1117,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20136,'C_12_Anniversary_Elf_Ears','Costume 12 Anniversary Elf Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,875,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20137,'C_Bomb_Wick','Costume Bomb Wick',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,66,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20138,'C_Sea_Otter_Hat','Costume Sea Otter Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,162,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20139,'C_Horse_Hairpin','Costume Horse Hairpin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1271,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20140,'C_Horse_Hairpin_','Costume Horse Hairpin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1272,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20141,'C_Observer','Costume Observer',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,337,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20142,'C_Machoman_Glasses','Costume Machoman Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,92,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20143,'C_Candy_Cane_In_Mouth','Costume Candy Cane In Mouth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,665,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20144,'C_Ancient_Elven_Ear','Costume Ancient Elven Ear',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,665,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20145,'C_Robo_Eye','Costume Robo Eye',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,345,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20146,'C_Angel_Spirit','Costume Angel of Ghost',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,394,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20147,'C_Bell_Pigeon','Costume Bell of Piegon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1034,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20148,'C_Musketeer_Hat','Costume Musketeer Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,466,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20149,'C_Hexagon_Glasses','Costume Hexagon Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,822,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20150,'C_Wind_Fan','Costume Wind Fan',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1051,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20151,'C_Poison_Spore_Hat','Costume Poison Spore Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,899,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20152,'C_Straw_Rice_Bag','Costume Straw Rice Bag',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1273,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20153,'C_Monochrome_Cap','Costume Monochrome Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1274,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20154,'C_Maple_Which_Falls','Costume Maple Which Falls',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,NULL,1,1275,NULL,'sc_start SC_MAPLE_FALLS,INFINITE_TICK,0;','sc_end SC_MAPLE_FALLS;'); -REPLACE INTO `item_db_re` VALUES (20155,'C_Ladys_Feather_Hat','Costume Lady\'s Feather Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,NULL,1,1276,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20156,'C_Fan_in_Mouth','Costume Fan in Mouth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,857,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20157,'C_Fish_On_Head','Costume Evolved Blue Fish',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,149,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20158,'C_Circlet','Costume Circlet',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,18,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20159,'C_Blue_Hair_Band','Costume Blue Hairband',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,136,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20160,'C_Fried_Egg','Costume Magnolia Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,373,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20161,'C_Prontera_Army_Cap','Costume Army Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,48,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20162,'C_Fleece_Hat','Costume Fleece Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1277,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20163,'C_Fleece_Hat_','Costume Fleece Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1278,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20164,'C_Duneyrr_Hat','Costume Duneyrr Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,639,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20165,'C_Tendrilion_Hat','Costume Tendrilion Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,658,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20166,'C_Hockey_Mask','Costume Hockey Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,336,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20167,'C_Deviruchi_Headphone','Costume Deviruchi Headphone',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,805,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20168,'C_Skull_Hood','Costume Skull Hood',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',1,598,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20169,'C_Long_Tongue','Costume Long Tongue',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,773,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20170,'C_Brown_Deviruchi_Cap','Costume Brown Deviruchi Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,273,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20171,'C_Sepia_Cap','Costume Sepia Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,NULL,1,1280,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20172,'C_Pumpkin_Head','Costume Pumpkin Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1281,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20173,'C_Lude_Hood','Costume Lude Hood',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1282,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20174,'C_Halloween_Hat_Orange','Costume Orange Halloween Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1283,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20175,'C_Diabolic_Headphone','Costume Diabolic Headphone',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1284,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20176,'Happy_Pierrot_Mask','Costume Happy Pierrot Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,1288,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20177,'C_Drooping_Dorasuke','Costume Drooping Dorasuke',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1290,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20178,'C_Puppy_Love','Costume Puppy Love',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,94,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20179,'C_Monkey_Coat_Hat','Costume Monkey Coat Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,858,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20180,'C_Westren_Grace','Costume Western Grace',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,32,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20181,'C_Mistic_Rose','Costume Mystic Rose',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,198,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20182,'C_Mottled_Egg_Shell','Costume Rainbow Eggshell',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,124,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20183,'C_There_Is_Something','Costume There\'s..Something..',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',1,1091,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20184,'C_Party_Hat','Costume Party Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,144,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20185,'C_Fashionable_Glasses','Costume Fashionable Glasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,131,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20186,'C_Magni_Cap','Costume Magni\'s Cap',4,20,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,1024,NULL,'1',1,250,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20187,'C_Fricca\'s_Circlet','Costume Fricca\'s Circlet',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,251,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20188,'C_Morpheus\'s_Hood','Costume Morpheus\'s Hood',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,256,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20189,'C_Goibne\'s_Helm','Costume Goibne\'s Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,258,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20190,'C_Chick_Hat_J','Costume Chick Hat J',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,432,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20191,'C_Black_Cat_Ears_Beret','Costume Black Cat Ears Beret',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1071,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20192,'C_Green_Foxtail','Costume Green Foxtail',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1058,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20193,'C_Foxtail','Costume Foxtail',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,711,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20194,'C_Lion_Mask','Costume Lion Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,202,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20195,'C_Scratching_Cat','Costume Scratching Cat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,NULL,1,1292,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20196,'C_Leopard_Ear_Hat','Costume Leopard Ear Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1293,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20197,'C_Amistr_Beret','Costume Amistr Beret',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1294,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20198,'C_Misty_Ears','Costume Misty Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1295,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20199,'C_Evil_Marcher_Hat','Costume Evil Marcher Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,687,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20200,'C_Rabbit_Head_Dress','Costume Rabbit Head Dress',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1095,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20201,'C_Banshee_Master_Kiss','Costume Banshee Master Kiss',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,959,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20202,'C_Deviruchi_Balloon','Costume Deviruchi Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1082,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20203,'C_Bandana','Costume Bandana',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,6,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20204,'C_Hunting_Cap','Costume Hunter Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,389,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20205,'C_Fancy_Flower','Costume Fancy Flower',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,4,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20206,'C_Chicken_Hat','Costume Chicken Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1296,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20207,'C_Stripe_Band','Costume Striped Hairband',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,133,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20208,'C_Necktie','Costume Neck Tie',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,443,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20209,'C_Mermaid_Longing','Costume Mermaid Bubbles',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1299,NULL,'sc_start SC_MERMAID_LONGING,INFINITE_TICK,0;','sc_end SC_MERMAID_LONGING;'); -REPLACE INTO `item_db_re` VALUES (20210,'C_Chicken_Hat_','Costume Chicken Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1297,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20211,'C_Chicken_Hat__','Costume Chicken Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1298,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20212,'C_Loki_Nidhogg_Hat','Costume Loki & Nidhoggur\'s Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1304,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20213,'C_Sirt_Evil_Eye','Costume Robot Eyes',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,345,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20214,'C_Evil_Marcher_Hat_J','Costume Evil Marcher Hat J',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1002,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20215,'C_Black_Devil_Mask','Costume Black Devil Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,760,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20216,'C_Rideword_Hat','Costume Rideword Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,890,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20217,'C_Arabian_Veil','Costume Arabian Veil',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1300,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20218,'C_Spell_Circuit','Costume Spell Circuit',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1301,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20219,'C_Angel_Marcher_Hat','Costume Angel Marcher Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1302,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20220,'C_Dark_Night_Veil','Costume Dark Night Veil',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',1,1303,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20221,'C_Eyes_Of_Ifrit','C Eyes Of Ifrit',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,886,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20222,'C_Santa_Hat_2','Costume Blue Pigtail Santa Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,NULL,1,395,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20223,'C_Centimental_Leaf','Costume Romantic Leaf',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,57,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20224,'C_Red_Tailed_Ribbon','Costume Red Tailed Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,167,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20225,'C_Pumpkin_Hat','Costume Pumpkin-Head',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,206,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20226,'C_Hair_Brush','Costume Red Comb',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,445,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20227,'C_Husky_Hat','Costume Husky Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1016,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20228,'C_Pig_MoneyBox','Costume Pig MoneyBox',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,603,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20230,'C_Mask_Of_Bankrupt','Costume Bankruptcy Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,936,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20231,'C_Snowman_Hat','Costume Snowman Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,616,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20232,'C_Celines_Ribbon','Costume Celine Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,967,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20233,'C_Gold_Angel_Sculpture','Costume Golden Angel',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,646,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20234,'C_Baphomet_Hat','Costume Baphomet Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1311,'bonus bMaxHPrate,15; bonus bMaxSPrate,15; bonus2 bAddRace,RC_All,15; bonus2 bMagicAddRace,RC_All,15; bonus2 bAddItemHealRate,519,2015;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20235,'C_Frozen_Land_Rose','Costume Frozen Rose',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1025,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20236,'C_Hellomother_Hat','Costume Arc Angeling Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,241,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20237,'C_Pink_Fur_Hat','Costume Pink Beanie',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,281,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20238,'C_Blue_Drooping_Kitty','Costume Drooping Blue Cat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,277,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20239,'C_Large_Ribbon_Muffler','Costume Large Ribbon Muffler',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1312,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20240,'C_Gift_Of_Snow','Costume Gift of Snow',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,NULL,'/*TODO: ViewID*/',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20241,'C_Eclipse_Hat','Costume Eclipse Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,922,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20242,'C_Snownow_Hat','Costume Snownow Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1313,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20243,'C_Choco_Mint_Bonnet','Costume Choco Mint Bonnet',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1314,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20244,'C_Zealotus_Mask','Costume Zealotus Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',1,200,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20245,'C_Cat_Paw_Hairpin','Costume Cat Paw Hairpin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,447,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20246,'C_Decoration_Time','Costume Decoration Time',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1309,NULL,'sc_start SC_TIME_ACCESSORY,INFINITE_TICK,0;','sc_end SC_TIME_ACCESSORY;'); -REPLACE INTO `item_db_re` VALUES (20247,'C_Fate_Of_Black_Hand','Costume Fate Of Black Hand',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1310,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20248,'C_Black_Strong_Hair','Costume Black Strong Hair',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1315,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20249,'C_Red_Strong_Hair','Costume Red Strong Hair',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1316,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20250,'C_White_Strong_Hair','Costume White Strong Hair',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1317,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20251,'C_Rose_Cascade','Costume Rose Cascade',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,920,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20252,'C_Accessory_of_Ascetic','Costume Mage Decoration',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1150,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20253,'C_Droopy_Alice_Doll','Costume Drooping Alicel',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,784,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20254,'C_Ribbon_Yellow','Costume Yellow Ribbonn',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,243,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20255,'C_Love_Cheek','Costume Love Cheeks',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1318,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20256,'C_Honey_Pancakes','Costume Honey Pancake',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1319,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20257,'C_Black_Rabbit_Bonnet','Costume Black Rabbit Bonnet',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1320,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20258,'C_Blue_Head_Dress','Costume Blue Headdress',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1321,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20259,'C_Pink_Clover','Costume Pink Clover',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1322,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20260,'C_Stardust','Costume Stardust',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,81,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20262,'C_Fox_Ears_Bell_Ribbon','Costume Fox Ears Drop Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1070,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20263,'C_Hat_Of_Drowsy_Cat','Costume Sleeping Cat Hat J',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,838,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20264,'C_Blood_Sucker','Costume Blood Sucker',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,893,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20265,'C_Bird_Nest_Hat','Costume Bird Nest Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,235,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20266,'C_Secret_Zipper','Costume Secret Zipper',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1324,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20267,'C_Penguin_Cap','Costume Penguin Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1325,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20268,'C_Sleep_Eclipse_Family','Costume Sleep Eclipse Family',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1326,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20269,'C_White_Fox_Ear_Ribbon','Costume White Fox Ear Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1327,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20270,'C_Gryphon_Wing_Ears','Costume Gryphon Wing Ears',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1328,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20271,'C_Sunflower','Costume Sunflower',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,37,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20272,'C_Snowy_Horn','Costume Unicorn Horn',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,42,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20273,'C_Soft_Sheep_Hat','Costume Soft Sheep Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,738,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20274,'C_Polar_Bear_Cap_J','Costume Polar Bear Cap J',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,966,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20277,'C_Balloon_Hat','Costume Balloon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,385,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20278,'C_Mans_Medal','Costume Man\'s Medal',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,775,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20279,'C_Cheering_Whistle','Costume Cheering Whistle',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,952,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20280,'C_Well-Chewed_Pencil','Costume Well-Chewed Pencil',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,555,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20281,'C_Kindergarten_Hat','Costume Kindergarten Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,977,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20282,'C_White_Student_Cap','Costume White Student Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,877,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20283,'C_Over_Protector','Costume Over Protector',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1329,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20284,'C_Cherry_Blossom_Hat','Costume Sakura Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1330,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20285,'C_Blossom_Fluttering','Costume Dancing Fallen Sakura',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1331,'hateffect HAT_EF_BLOSSOM_FLUTTERING,true;',NULL,'hateffect HAT_EF_BLOSSOM_FLUTTERING,false;'); -REPLACE INTO `item_db_re` VALUES (20286,'C_Under_Rim_Glasses_Red','Costume Under Rim Glasses Red',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1332,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20287,'C_Mans_Medal_Gold','Costume Man\'s Medal(Gold)',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1333,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20288,'C_Bijou_Hat','Costume Bijou Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1334,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20291,'C_Helm_of_Thoth','Costume Helm of Thoth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,860,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20292,'C_Black_Ramen_Hat','Costume Black Ramen Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1338,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20293,'C_Sleeper_Hat','Costume Sleeper Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,590,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20294,'C_Savage_Babe_Hat','Costume Savage Babe Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,553,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20295,'C_Poring_Sunglasses','Costume Poring Sunglasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,954,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20296,'C_Yoyo_Hat','Costume Yoyo Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,391,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20297,'C_Cactus_Hat','Costume Cactus Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,615,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20298,'C_Happy_Lunatic_Ear','Costume Happy Lunatic Hanging Ear',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1340,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20299,'C_Face_Crusher','Costume Face Crusher',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,1341,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20300,'C_Hill_Wind_Mask','Costume Hill Wind Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',1,1342,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20301,'C_Golden_Savage_Hat','Costume Golden Savage Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,648,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20302,'C_Beelzebub_Crown','Costume Beelzebub Crown',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1343,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20303,'C_Mandragora_Cap','Costume Mandragora Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,402,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20304,'C_Raccoon_Hat','Costume Raccoon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,118,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20307,'C_Beginner_Cap','Costume Beginner Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1348,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20311,'C_Magical_Booster','Costume Magical Booster',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,873,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20312,'C_Barons_Evil_Eye','Costume Baron\'s Evil Eye',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,989,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20313,'C_CD_in_Mouth','Costume CD in Mouth',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,815,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20314,'C_New_Wave_Sunglasses','Costume New Wave Sunglasses',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,856,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20315,'C_Analyze_Eye','Costume Analyze Eye',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1351,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20316,'C_Seraph_Wing_Helm','Costume Seraph Wing Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1352,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20317,'C_Nekomimi_Cyber_Headphone','Costume Nekomimi Cyber Headphone',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1353,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20318,'C_Charleston_Antenna','Costume Charleston Antenna',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1354,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20319,'C_Crimson_Booster','Costume Crimson Booster',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1355,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20320,'C_Red_Bandana','Costume Red Bandana',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,62,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20321,'C_Pterios_Fins','Costume Pterios Fins',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1009,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20322,'C_Seal_Hat','Costume Seal Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,540,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20323,'C_Sparkling_Sound','Costume Sparkling Sound',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1074,NULL,'sc_start SC_DECORATION_OF_MUSIC,INFINITE_TICK,0;','sc_end SC_DECORATION_OF_MUSIC;'); -REPLACE INTO `item_db_re` VALUES (20324,'C_Pigeon_Hat','Costume Pigeon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1362,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20325,'C_Little_Aquarium','Costume Little Aquarium',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1363,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20326,'C_Sailor_Collar','Costume Sailor Collar',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1364,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20327,'C_Marine_Cap','Costume Marine Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1365,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20328,'C_Mackerel_Pike','Costume Mackerel Pike',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1081,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20329,'C_Very_Cute_Doll_Hat','Costume Very Cute Doll Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1084,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20330,'C_Sombrero','Costume Sombrero',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,151,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20331,'C_Desert_Prince','Costume Desert Prince',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,567,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20332,'C_Pure_White_Ribbon','Costume Pure White Ribbon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1175,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20333,'C_Family_Hat','Costume Family Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,650,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20334,'C_Joystick_Hat','Costume Joystick Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1305,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20335,'C_Watery_Eyes','Costume Watery Eyes',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,828,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20338,'C_Colorful_Dancing_Octopus','Costume Colorful Dancing Octopus',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1007,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20339,'C_Flower_Summer_Hat','Costume Flower Summer Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1369,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20340,'C_Straight_Pony_Black','Costume Straight Pony Black',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1371,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20341,'C_Bouncing_Hair_Black','Costume Bouncing Hair Black',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1372,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20342,'C_Loose_Wave_Twin','Costume Loose Wave Twin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1373,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20345,'C_Seagod_Protector','Costume Seagod Protector',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,960,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20346,'C_Drooping_Permeter','Costume Drooping Permeter',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,694,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20347,'C_Poring_Pirate_Hat','Costume Poring Pirate Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,726,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20348,'C_Sunday_Hat','Costume Sunday Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,117,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20349,'C_Flying_Galapago','Costume Flying Galapago',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1358,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20350,'C_Bouncing_Hair_Yellow','Costume Bouncing Hair Yellow',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1382,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20351,'C_Bouncing_Hair_Green','Costume Bouncing Hair Green',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1383,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20352,'C_Bouncing_Hair_Purple','Costume Bouncing Hair Purple',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1384,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20353,'C_Bouncing_Hair_Red','Costume Bouncing Hair Red',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1385,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20354,'C_Bouncing_Hair_Crimson','Costume Bouncing Hair Crimson',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1386,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20355,'C_Bouncing_Hair_Blue','Costume Bouncing Hair Blue',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1387,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20356,'C_Bouncing_Hair_White','Costume Bouncing Hair White',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1388,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20357,'C_Straight_Pony_Yellow','Costume Straight Pony Yellow',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1389,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20358,'C_Straight_Pony_Green','Costume Straight Pony Green',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1390,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20359,'C_Straight_Pony_Purple','Costume Straight Pony Purple',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1391,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20360,'C_Straight_Pony_Red','Costume Straight Pony Red',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1392,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20361,'C_Straight_Pony_Crimson','Costume Straight Pony Crimson',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1393,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20362,'C_Straight_Pony_Blue','Costume Straight Pony Blue',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1394,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20363,'C_Straight_Pony_White','Costume Straight Pony White',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1395,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20364,'C_Loose_Wave_Twin_Yellow','Costume Loose Wave Twin Yellow',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1396,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20365,'C_Loose_Wave_Twin_Green','Costume Loose Wave Twin Green',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1397,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20366,'C_Loose_Wave_Twin_Purple','Costume Loose Wave Twin Purple',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1398,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20367,'C_Loose_Wave_Twin_Red','Costume Loose Wave Twin Red',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1399,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20368,'C_Loose_Wave_Twin_Crimson','Costume Loose Wave Twin Crimson',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1400,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20369,'C_Loose_Wave_Twin_Blue','Costume Loose Wave Twin Blue',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1401,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20370,'C_Loose_Wave_Twin_White','Costume Loose Wave Twin White',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1402,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20371,'C_Special_Kafra_Hat','Costume Special Kafra Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,581,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20372,'C_Ribbon_Hat','Costume Ribbon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,956,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20373,'C_Watermelon_Hat','Costume Watermelon Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,690,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20374,'C_Mechanical_Plant_Hat','Costume Mechanical Plant Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1069,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20375,'C_Ignis_Cap','Costume Ignis Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,803,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20376,'C_Memory_of_Lovers','Costume Memory of Lovers',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1072,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20377,'C_Flight_Cap','Costume Flight Cap',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,820,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20378,'C_Skymet','Costume Sky Met',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,868,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20379,'C_Pocketwatch_Hair_Ornament','Costume Pocketwatch Hair Ornament',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1404,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20380,'C_Mechanical_Feather_Hairband','Costume Mechanical Feather Hairband',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1405,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20381,'C_Steampunk_Hat','Costume Steampunk Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1406,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20382,'C_Silver_Sniper_Doll','Costume Silver Sniper Doll',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1407,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20383,'C_Magic_Decoy_Doll','Costume Magic Decoy Doll',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1408,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20384,'C_Douce_Tiara','Costume Douce Tiara',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1410,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20386,'C_Victory_Wing_Helm','Costume Victory Wing Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,677,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20392,'C_Sniper_Google','Costume Sniper Google',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,3072,NULL,'1',1,625,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20393,'C_Schmitz_Helm','Costume Schmitz Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,634,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20394,'C_Pumpkin_Toque','Costume Pumpkin Toque',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1411,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20396,'C_Green_Hat','Costume Green Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,939,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20397,'C_Jakk','Jack',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,6144,NULL,'1',1,1415,'autobonus2 "{}",31,10000,BF_WEAPON|BF_MAGIC,"{ active_transform 1130,10000; specialeffect2 372; /*Confirm Special Effect*/ }";',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20398,'C_Niffleheim_Bunny_Hat','Costume Niffleheim Bunny Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1285,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20399,'C_Crow_Tengu_Mask','Costume Crow Tengu Mask',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1287,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20400,'C_Ichthys_Rosario','Costume Ichthys Rosario',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1028,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20401,'C_Angel_Guidance','Costume Angel Guidance',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1188,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20402,'C_Holy_Klobuk','Costume Holy Klobuk',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,895,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20403,'C_Dolor_Thanatos','Costume Dolor Thanatos',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,547,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20404,'C_Blessing_Of_Angels','Costume Blessing of Angel',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1425,'hateffect(HAT_EF_BLESSING_OF_ANGELS,true);',NULL,'hateffect(HAT_EF_BLESSING_OF_ANGELS,false);'); -REPLACE INTO `item_db_re` VALUES (20405,'C_Eremes_Scarf','Costume Eremes Scarf',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1416,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20406,'C_Commandments_Of_Chain','Costume Chain of Commandments',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1417,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20407,'C_Subject_Aura_Red','Costume Vicious Mind Aura Crimson',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1418,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20408,'C_Requiem_Crown_of_Light_and_Dark','Costume Requiem Crown of Light and Dark',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1419,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20409,'C_There_is_Something_','Costume There is Something',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1091,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20416,'C_1Grade_Balloon','Costume Grade 1 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1426,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20417,'C_2Grade_Balloon','Costume Grade 2 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1427,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20418,'C_3Grade_Balloon','Costume Grade 3 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1428,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20419,'C_4Grade_Balloon','Costume Grade 4 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1429,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20420,'C_5Grade_Balloon','Costume Grade 5 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1430,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20421,'C_6Grade_Balloon','Costume Grade 6 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1431,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20422,'C_7Grade_Balloon','Costume Grade 7 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1432,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20423,'C_8Grade_Balloon','Costume Grade 8 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1433,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20424,'C_9Grade_Balloon','Costume Grade 9 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1434,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20425,'C_10Grade_Balloon','Costume Grade 10 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1435,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20426,'C_11Grade_Balloon','Costume Grade 11 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1436,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20427,'C_12Grade_Balloon','Costume Grade 12 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1437,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20428,'C_13Grade_Balloon','Costume Grade 13 Balloon',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1438,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20429,'C_Piamette_Bowtie','Costume Piamette Bowtie',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',1,1439,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20430,'C_Loyal_Servant_of_Devil_Morocc','Costume Loyal Servant of Devil Morocc',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',1,1440,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20431,'C_Magician_Headdress','Costume Magician Headdress',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1441,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20432,'C_Khalitzburg_Knight_Helm','Costume Khalitzburg Knight Helm',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1442,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20433,'C_Louise_Red_Hat','Costume Louise Red Hat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1443,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (20434,'C_Drooping_Gunslinger','Costume Drooping Gunslinger',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,1444,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20435,'C_Camellia_Hair_Pin','Costume Camellia Hair Pin',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1203,'hateffect(HAT_EF_CAMELLIA_HAIR_PIN,true);',NULL,'hateffect(HAT_EF_CAMELLIA_HAIR_PIN,false);'); REPLACE INTO `item_db_re` VALUES (20436,'C_Angelring_Furhat','Costume Angelring Furhat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,953,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20437,'C_Sakura_Hairband','Costume Sakura Hairband',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,949,NULL,NULL,NULL); @@ -11361,12 +11109,16 @@ REPLACE INTO `item_db_re` VALUES (20707,'Kirin_Wing','Kirin Wing',4,20,NULL,0,NU REPLACE INTO `item_db_re` VALUES (20709,'Mana_Manteau','Mana Manteau',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4,NULL,'1',1,NULL,'bonus2 bExpAddRace,RC_All,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20710,'Impr_Angel\'s_Warmth','Advanced Angelic Cardigan',4,10000,NULL,400,NULL,6,NULL,1,0x00000001,63,2,4,NULL,'99',1,0,'bonus bHPrecovRate,50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20711,'Manteau_Of_Diego','Manteau Of Diego',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,0,'bonus bInt,1; bonus bDex,1; bonus bMdef,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20712,'Valkyrie_Cape','Valkyrie Cape',4,10,NULL,500,NULL,10,NULL,1,0x6007DFFE,58,2,4,NULL,'1',1,0,'.@val = 2 * (min(10,getrefine())/2); if (BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte) bonus bFlee2,(5+.@val); else if (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) bonus bShortWeaponDamageReturn,(5+.@val);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20714,'Assassin\'s_Muffler','Assassin\'s Muffler',4,20,NULL,100,NULL,16,NULL,1,0xFFFFFFFF,63,2,4,NULL,'50',1,0,'.@r = getrefine(); if (.@r>5) { bonus bAgi,(.@r-5)*2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20717,'FaceWorm_Skin','Gigant Snake Skin',4,10,NULL,400,NULL,38,NULL,0,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'bonus bMdef,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20718,'FaceWorm_Skin_','Gigant Snake Skin',4,10,NULL,400,NULL,38,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'bonus bMdef,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20721,'Cloak_Of_Gray','Cloak of Gray',4,20,NULL,600,NULL,45,NULL,1,0xFFFFFFFF,56,2,4,NULL,'120',1,0,'bonus2 bSubEle,Ele_Holy,5+getrefine()/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20724,'Love_Dad_Wings_2012','Love Dad Wings 2012',4,0,NULL,100,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,5,'.@r = getrefine(); if ((readparam(bStr)>89)) { bonus bAllStats,1; bonus bStr,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bAgi)>89)) { bonus bAllStats,1; bonus bAgi,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bVit)>89)) { bonus bAllStats,1; bonus bVit,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bInt)>89)) { bonus bAllStats,1; bonus bInt,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bDex)>89)) { bonus bAllStats,1; bonus bDex,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; } if ((readparam(bLuk)>89)) { bonus bAllStats,1; bonus bLuk,.@r; bonus bMaxHPRate,1; bonus bMaxSPRate,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20725,'Ribbon_Piamat','Ribbon Piamat',4,10,NULL,100,'0:10',NULL,NULL,1,0xFFFFFFFF,63,2,4,NULL,'30',1,7,'bonus bInt,1; bonus bDex,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20726,'Fire_Dragon\'s_Coat','Fire Dragon\'s Coat',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,4,NULL,'30',1,0,'bonus bMaxHPrate,5; bonus2 bMagicAtkEle,Ele_Fire,2; if (getrefine()>=7) { bonus2 bMagicAtkEle,Ele_Fire,3; } bonus2 bMagicAtkEle,Ele_Water,-10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20727,'Brilliant_Golden_Wings','Brilliant Golden Wings',4,10,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,8192,NULL,'1',1,5,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20728,'Water_Dragon_Coat','Water Dragon Coat',4,10,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,4,NULL,'30',1,0,'bonus bMaxHPrate,5; bonus2 bMagicAtkEle,Ele_Water,2; if (getrefine()>=7) { bonus2 bMagicAtkEle,Ele_Water,3; } bonus2 bMagicAtkEle,Ele_Wind,-10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20730,'Loyalists_Hood','Loyalists Hood',4,10,NULL,200,NULL,30,NULL,1,0xFFFFFFFF,63,2,8192,NULL,'80',NULL,NULL,'bonus bStr,2; bonus bMaxHPrate,10; bonus bNoKnockback; bonus2 bSubEle,Ele_All,-20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20732,'Supplement_Part_Con','Supplement Part Con',4,25000,NULL,500,NULL,20,NULL,1,0x00000400,56,2,4,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMaxHPrate,6+(.@r/2); if(.@r>=9){bonus bHPrecovRate,50;}',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20733,'Upgrade_Part_Engine','Reinforced Parts - Engine',4,10,NULL,1500,NULL,25,NULL,1,0x00000400,56,2,4,NULL,'100',1,NULL,'bonus bDelayrate,-10; .@r = getrefine(); if(.@r>=7) {bonus2 bSubEle,0,10;}; if(.@r>=9) {bonus bDelayrate,-10;}',NULL,NULL); @@ -11383,6 +11135,7 @@ REPLACE INTO `item_db_re` VALUES (20762,'C_GreatDevilWing','Costume Great Devil REPLACE INTO `item_db_re` VALUES (20763,'C_Amistr_Bag','Costume Amistr Bag',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,8192,NULL,'1',0,4,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20764,'C_Fallen_Angel_Wing','Costume Fallen Angel Wing',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,8192,NULL,'1',0,3,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20773,'Excelion_Wing','Excelion Wing',4,20,NULL,900,NULL,40,NULL,0,0xFFFFFFFF,63,2,4,NULL,'99',1,NULL,'bonus bFlee,getrefine() * 2; bonus bFlee2,8 + (BaseLevel > 129 ? 2 : 0);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20778,'Red_Lotus_Stole','Red Lotus Stole',4,20,NULL,700,NULL,8,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'.@r = getrefine(); bonus bMaxSPrate,10; bonus bMdef,3; bonus bUseSPrate,-1*(1+(2*.@r/3)); if (.@r>=10) { bonus bSPGainValue,20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20779,'Rift_Manteau','Rift Manteau',4,20,NULL,500,NULL,16,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMaxHP,(.@r >= 9 ? 1300 : .@r >= 7 ? 700 : 300); bonus bMaxSP,-50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20780,'Unity_STR_Manteau','Unity STR Manteau',4,32000,NULL,300,NULL,20,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'.@r = getrefine(); if(BaseLevel<100) { bonus2 bExpAddRace,RC_All,4; bonus bMaxHPrate,2*(.@r/2); }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20781,'Unity_AGI_Manteau','Unity AGI Manteau',4,32000,NULL,300,NULL,20,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,0,'.@r = getrefine(); if(BaseLevel<100) { bonus2 bExpAddRace,RC_All,4; bonus bFlee,3*(.@r/2); }',NULL,NULL); @@ -11394,6 +11147,10 @@ REPLACE INTO `item_db_re` VALUES (20789,'Luxury_Doram_Manteau','Luxury Doram Man REPLACE INTO `item_db_re` VALUES (20790,'Elegant_Doram_Manteau','Elegant Doram Manteau',4,20,NULL,500,NULL,30,NULL,1,0x80000000,7,2,4,NULL,'175',1,NULL,'bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,5; .@r = getrefine()/2; bonus bFlee2,.@r; bonus bInt,.@r; bonus bDex,.@r; bonus bLuk,.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20797,'Etran_Shirt','Etran Shirt',4,0,NULL,150,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,NULL,'bonus bMdef,10; bonus bMaxHPrate,2; .@r = getrefine(); if (.@r >= 6) bonus bMaxHPrate,4; if (.@r >= 7) bonus bMaxHPrate,6; if (.@r >= 8) bonus bMaxHPrate,8; if (.@r >= 9) bonus bNoKnockback;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20798,'GrimReaper_Protection','Costume Grim Reaper Protection',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1450,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20799,'Elemental_Towel','Elemental Towel',4,20,NULL,400,NULL,13,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus bLongAtkRate,2; if(getrefine()>=7) { bonus2 bSkillUseSP,"RA_ARROWSTORM",20; bonus2 bSkillUseSP,"WM_SEVERE_RAINSTORM",60; } if(getrefine()>=8) { bonus bLongAtkRate,2; } if(getrefine()>=9) { bonus bLongAtkRate,3; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20800,'Enforcer_Cape','Enforcer Cape',4,20,NULL,300,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,10; if (getskilllv("AS_GRIMTOOTH")==5) { bonus2 bSkillAtk,"AS_GRIMTOOTH",50; } if (getskilllv("GC_CROSSIMPACT") == 5) { bonus2 bSkillAtk,"GC_CROSSIMPACT",5; } if (getskilllv("ASC_BREAKER") == 10) { bonus2 bSkillAtk,"ASC_BREAKER",50; } if (.@r>=7) { .@delay += 3; bonus2 bSkillAtk,"AS_GRIMTOOTH",Baselevel; bonus2 bSkillAtk,"ASC_BREAKER",Baselevel/3; bonus2 bSkillAtk,"GC_CROSSIMPACT",Baselevel/30; } if (.@r>=9) { .@delay += 3; bonus bMaxSPrate,5; } bonus bDelayrate,-.@delay; if(eaclass()&EAJL_THIRD && BaseJob == Job_Assassin) { if (.@r >= 7) { bonus bMaxHPrate,20; bonus bLongAtkDef,35; } else { bonus bMaxHPrate,15; bonus bLongAtkDef,20; } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20813,'Coak_of_Survival','Cloak of Survival',4,1000,NULL,550,NULL,10,NULL,1,0x00810204,63,2,4,NULL,'75',1,0,'bonus bMdef,5; bonus bVit,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20814,'Wakwak_Manteau','Wakwak Manteau',4,20,NULL,400,NULL,40,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus2 bAddClass,Class_All,5; .@s = readparam(bStr); .@r = getrefine(); if (.@r>=5) { bonus bBaseAtk,2*(.@s/10); } if (.@r>=7) { bonus bBaseAtk,3*(.@s/10); }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20815,'SeraphimRobe','Seraphim Robe',4,0,NULL,300,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,NULL,'bonus bMaxHPrate,10; bonus2 bMagicAtkEle,Ele_Neutral,5; .@r = getrefine(); if (.@r > 6) { bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Holy,20; bonus bMatkRate,10; } if (.@r > 8) { bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Holy,10; bonus bVariableCastrate,-5; } if (getskilllv("CR_TRUST") > 0) { bonus2 bSubEle,Ele_Holy,.@r*3; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20819,'Oxygen_Bottle','Oxygen Bottle',4,0,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,4,NULL,'40',1,0,'bonus bFlee,12+getrefine(); bonus bHit,getrefine();',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20820,'Elemental_Cape','Elemental Cape',4,0,NULL,500,NULL,12,NULL,0,0x00010000,56,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bFlee,(10+5*(.@r/3)); bonus2 bSubEle,Ele_Neutral,10; if (.@r>=9) bonus bAspdRate,5;',NULL,NULL); @@ -11404,17 +11161,38 @@ REPLACE INTO `item_db_re` VALUES (20824,'Para_Team_Manteau130','Awakened Eden Gr REPLACE INTO `item_db_re` VALUES (20825,'Para_Team_Manteau160','Awakened Eden Group Manteau III',4,0,NULL,0,NULL,30,NULL,0,0xFFFFFFFF,63,2,4,NULL,'160',1,0,'bonus2 bSubEle,Ele_All,10; bonus bFlee,12; bonus bMaxHP,1000; bonus bFlee2,2; .@r = getrefine(); if(.@r >= 7){ bonus2 bSubEle,Ele_Neutral,5; if(.@r >= 9){ skill "BS_GREED",1; } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20826,'Angel_Feather','Angel Feather',4,0,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,18,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (20830,'Wings_of_Seraph','Wings of Seraph',4,0,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,8,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20831,'Adventurer\'s_Spirit','Adventurer\'s Spirit',4,1000,NULL,400,NULL,40,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bInt,5; if (.@r>=5) bonus bMatk,5*(readparam(bInt)/60); if (.@r>=7) bonus bMatk,5*(readparam(bInt)/10);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20834,'Drifter\'s_Cape','Drifter\'s Cape',4,0,NULL,400,NULL,0,NULL,0,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); .@bonus = 20; if (.@r>=7) { .@bonus += 5; } if (.@r>=9) { .@bonus += 5; } bonus2 bSubEle,Ele_Neutral,.@bonus;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20836,'Skin_of_Lindwyrm','Skin of Lindwyrm',4,1000,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus bAgi,5; bonus bVit,5; bonus bMdef,10; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,5; bonus2 bSubRace,RC_Dragon,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; .@r = getrefine(); .@val = (readparam(bAgi)+readparam(bVit))/20; if (.@r>=7) { skill "TF_HIDING",1; if (.@r>=8) { bonus bMaxHPrate,.@val; bonus bVariableCastrate,-1*.@val; if (.@r>=9) { skill "AS_CLOAKING",1; } } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20837,'Skin_of_Gwiber','Skin of Gwiber',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus bInt,5; bonus bDex,5; bonus bMdef,10; bonus2 bSubEle,Ele_Dark,5; bonus2 bSubEle,Ele_Undead,5; bonus2 bSubRace,RC_Demon,5; bonus2 bSubRace,RC_Undead,5; .@r = getrefine(); .@val = (readparam(bInt)+readparam(bDex))/20; if (.@r>=7) { bonus bSPGainValue,10; if (.@r>=8) { bonus bBaseAtk,5*.@val; bonus bDelayrate,-2*.@val; if (.@r>=9) { bonus bSPGainValue,10; } } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20838,'Illusion_Muffler','Illusion Muffler',4,20,NULL,400,NULL,8,NULL,1,0xFFFFFFFE,63,2,4,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r));',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20840,'Illusion_Ancient_Cape','Illusion Ancient Cape',4,0,NULL,600,NULL,18,NULL,1,0xFFFFFFFE,63,2,4,NULL,'100',1,0,'.@val = min(getrefine(),10)/2; bonus bAgi,(2+.@val);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20845,'Maracco_Skin','Malach\'s Skin',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus bStr,5; bonus bLuk,5; bonus bMdef,10; bonus2 bSubEle,Ele_Ghost,5; bonus2 bSubEle,Ele_Holy,5; bonus2 bSubRace,RC_Angel,5; bonus2 bSubRace,RC_Formless,5; .@r = getrefine(); .@s = (readparam(bStr)+readparam(bLuk))/20; if (.@r>=7) { bonus bCritAtkRate,5; if (.@r>=8) { bonus bAspdRate,.@s; bonus bCritical,.@s; if (.@r>=9) { bonus bCritAtkRate,5; } } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20846,'Temporal_Manteau','Temporal Manteau',4,20,NULL,400,NULL,38,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20847,'Illusion_Survivor_Manteau','Illusion Survivor Manteau',4,0,NULL,550,NULL,30,NULL,1,0x00810204,63,2,4,NULL,'130',1,0,'bonus bVit,15;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20856,'YSF01_Manteau','YSF01 Manteau',4,0,NULL,750,NULL,32,NULL,1,0xFFFFFFFF,63,2,4,NULL,'170',1,0,'.@r = getrefine(); if (.@r >= 8) { bonus bBaseAtk,20; if (.@r >= 11) { .@val = -3; if (.@r >= 13) { .@val += -4; } } } if (readparam(bVit) >= 125) { .@val += -10; } if (.@val) { bonus bDelayrate,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20859,'Phreeoni_Wings','Phreeoni Wings',4,20,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHPrate,10; bonus bHit,10; if (.@r>=7) bonus bHit,20; if (.@r>=8) bonus bHit,30; if (.@r>=9) bonus bHit,40; if (.@r>=10) bonus bHit,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20860,'Battle_Surcoat','Battle Surcoat',4,20,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,4,NULL,'70',1,0,'.@r = getrefine(); if (.@r>=9) { bonus bAspdRate,9; bonus bFlee,30; skill "TF_DOUBLE",10; skill "MO_TRIPLEATTACK",10; bonus bDoubleRate,50; } else if (.@r>=7) { bonus bAspdRate,6; bonus bFlee,20; skill "TF_DOUBLE",5; skill "MO_TRIPLEATTACK",5; bonus bDoubleRate,25; } else { bonus bAspdRate,3; bonus bFlee,10; skill "TF_DOUBLE",3; skill "MO_TRIPLEATTACK",3; bonus bDoubleRate,15; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20863,'Menblatt\'s_Wings','Menblatt\'s Wings',4,20,NULL,400,NULL,40,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bBaseAtk,30; if (.@r>=5) bonus bLongAtkRate,readparam(bDex)/60; if (.@r>=7) bonus bLongAtkRate,readparam(bDex)/10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20922,'Leviathan_Muffler','Leviathan Muffler',4,20,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,5; bonus2 bAddEle,Ele_Water,15+.@r; bonus2 bMagicAddEle,Ele_Water,15+.@r; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus bAspdRate,.@r; if (.@r>=10) bonus2 bSubEle,Ele_Water,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20923,'Illusion_Goibne_Spaulders','Illusion Goibne Spaulders',4,0,NULL,1000,NULL,47,NULL,1,0xFFFFFFFE,63,2,4,NULL,'130',1,0,'.@r = getrefine(); bonus bMdef,2; bonus bVit,1; if (.@r >= 7) { .@val = 5; if (.@r >= 9) { .@val += 10; } } if (.@val) { bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20925,'Commander_Manteau2','Commander Manteau',4,20,NULL,300,NULL,20,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,10; bonus bBaseAtk,10; bonus bMatk,10; bonus2 bSubRace,RC_Player,3; if (.@r>=5) { bonus bBaseAtk,20; bonus bMatk,20; bonus bMaxHPrate,7; bonus bMaxSPrate,7; } if (.@r>=7) { bonus bBaseAtk,30; bonus bMatk,30; bonus bMaxHPrate,10; bonus bMaxSPrate,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20931,'Prism_Rangers_Scarf','Prism Rangers Scarf',4,20,NULL,300,NULL,12,NULL,0,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; if (.@r >= 7) { .@val = 10; } else if (.@r >= 5) { .@val = 5; } else { .@val = 2; } bonus bMaxHPrate,.@val; bonus bMaxSPrate,.@val; bonus bLongAtkRate,.@val+2*getskilllv("RA_AIMEDBOLT"); if (getskilllv("RA_WUGRIDER") == 3) { bonus2 bSkillCooldown,"RA_UNLIMIT",-180000; } if (getskilllv("RA_CAMOUFLAGE") == 5) { bonus bDelayrate,-10; } bonus2 bSkillCooldown,"RA_ARROWSTORM",-200; bonus2 bSkillAtk,"RA_ARROWSTORM",1;',NULL,'sc_end SC_UNLIMIT;'); +REPLACE INTO `item_db_re` VALUES (20932,'Old_Morroc_Shawl','Old Morroc Shawl',4,20,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r= getrefine(); bonus bMaxHPrate,5; bonus bFlee,10; if (.@r>=7) bonus bFlee,20; if (.@r>=8) { bonus bFlee,30; bonus bRestartFullRecover; } if (.@r>=9) bonus bFlee,40; if (.@r>=10) bonus bFlee2,25;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20933,'Illusion_Engine_wing_A-type','Illusion Engine wing A-type',4,0,NULL,900,NULL,50,NULL,1,0xFFFFFFFF,63,2,4,NULL,'130',1,NULL,'.@r = getrefine(); bonus bMaxHP,1000+(100*(.@r/2)); if (.@r >= 7) { bonus bAspdRate,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20934,'Illusion_Engine_wing_B-type','Illusion Engine wing B-type',4,0,NULL,900,NULL,50,NULL,1,0xFFFFFFFF,63,2,4,NULL,'130',1,NULL,'.@r = getrefine(); bonus bMaxHP,1000+(100*(.@r/2)); if (.@r >= 7) { bonus bVariableCastrate,-5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20935,'Lava_Leather_Manteau','Lava Leather Manteau',4,20,NULL,400,NULL,50,NULL,1,0xFFFFFFFF,63,2,4,NULL,'175',1,0,'bonus bHit,10; .@r = getrefine(); if (.@r>=7) bonus bHit,5; if (.@r>=9) bonus bHit,5; if (.@r>=11) bonus bDelayrate,-3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20936,'Lava_Leather_Muffler','Lava Leather Muffler',4,20,NULL,350,NULL,35,NULL,1,0xFFFFFFFF,63,2,4,NULL,'175',1,0,'bonus bCritical,5; .@r = getrefine(); if (.@r>=7) bonus bCritical,5; if (.@r>=9) bonus bCritAtkRate,5; if (.@r>=11) bonus2 bAddClass,Class_All,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20937,'Lava_Leather_Hood','Lava Leather Hood',4,20,NULL,300,NULL,25,NULL,1,0xFFFFFFFF,63,2,4,NULL,'175',1,0,'bonus bVariableCastrate,-10; .@r = getrefine(); if (.@r>=7) bonus bVariableCastrate,-10; if (.@r>=9) bonus bVariableCastrate,-10; if (.@r>=11) bonus2 bMagicAtkEle,Ele_Fire,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20941,'Phoenix_Muffler','Phoenix Muffler',4,20,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,5; bonus2 bAddEle,Ele_Fire,15+.@r; bonus2 bMagicAddEle,Ele_Fire,15+.@r; bonus2 bSubRace,RC_Player,5; bonus bAspdRate,.@r; if (.@r>=10) bonus2 bSubEle,Ele_Fire,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20942,'Manteau_Of_Guardsman','Manteau Of Guardsman',4,20,NULL,500,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,15; bonus bMaxHPrate,5+3*(.@r/3); bonus bMaxSPrate,5+3*(.@r/3); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20943,'Geffen_Magic_Muffler','Geffen Magic Muffler',4,20,NULL,550,NULL,20,NULL,1,0xFFFFFFFE,63,2,4,NULL,'99',1,0,'.@r = getrefine(); .@val = -10; bonus bMatk,(10*(.@r/2)); bonus bMatkRate,(.@r/3); if (.@r >= 7) { bonus2 bMagicAtkEle,Ele_All,5; } if (.@r >= 9) { .@val -= 10; } bonus bVariableCastrate,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20944,'Anti_Magic_Manteau','Anti Magic Manteau',4,20,NULL,750,NULL,23,NULL,1,0xFFFFFFFE,63,2,4,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHP,(300+(100*(.@r/2))); bonus bMaxHPRate,(2*(.@r/3)); if (.@r >= 7) { bonus2 bAddClass,Class_All,7; } if (.@r >= 9) { bonus bVariableCastrate,-10; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (20948,'Illusion_Morpheus\'s_Shawl','Illusion Morpheus\'s Shawl',4,20,NULL,600,NULL,8,NULL,1,0xFFFFFFFF,63,2,4,NULL,'130',1,0,'bonus bMaxSPrate,10; bonus bMdef,5; .@r = getrefine(); if (.@r >= 7) { .@bonus = -10; if (.@r >= 9) { .@bonus -= 10; } bonus bVariableCastrate,.@bonus; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20949,'Ladon_Skin','Ladon\'s Skin',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus2 bSubRace,RC_Player,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Brute,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Earth,5; bonus bAgi,5; bonus bVit,5; bonus bMdef,10; .@r = getrefine(); if (.@r>=7) { .@val = 10; bonus bSPGainValue,10; bonus bLongSPGainValue,10; if (.@r>=8) { .@s = (readparam(bAgi)+readparam(bVit))/20; bonus bBaseAtk,15*.@s; bonus bHit,5*.@s; if (.@r>=9) { .@val += 10; } } bonus bSPGainValue,.@val; bonus bLongSPGainValue,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20952,'Nameless_Assassin_Muffler','Nameless Assassin\'s Muffler',4,20,NULL,100,NULL,10,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r= getrefine(); bonus bMdef,5; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus2 bSubRace,RC_Player,5; if (.@r>=7) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bAspd,1; bonus bHPGainValue,5; bonus bLongHPGainValue,5; } if (.@r>=8) bonus bSpeedRate,40; if (.@r>=9) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bAspd,1; bonus bHPGainValue,5; bonus bLongHPGainValue,5; } if (.@r>=10) skill "AS_CLOAKING",3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20962,'Typhon_Skin','Typhon\'s Skin',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'bonus2 bSubRace,RC_Player,5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Fish,5; bonus2 bSubEle,Ele_Neutral,5; bonus2 bSubEle,Ele_Poison,5; bonus bAgi,5; bonus bVit,5; bonus bMdef,10; .@r = getrefine(); if (.@r>=7) { .@sp = 10; if (.@r>=8) { .@s = (readparam(bAgi)+readparam(bVit))/20; bonus bMatk,15*.@s; bonus bDef,20*.@s; if (.@r>=9) { .@sp += 10; } } bonus bMagicSPGainValue,.@sp; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (20969,'Rainbow_Muffler','Rainbow Muffler',4,20,NULL,300,NULL,12,NULL,0,0xFFFFFFFF,63,2,4,NULL,'100',1,0,'.@r = getrefine(); .@lvl = getskilllv("WM_GLOOMYDAY"); if (.@r >= 7) { .@val = 10; } else if (.@r >= 5) { .@val = 5; } else { .@val = 2; } bonus bMaxHPrate,.@val; bonus bMaxSPrate,.@val; bonus bMatkRate,.@val+(4*.@lvl); bonus2 bSubRace,RC_Player,5; bonus2 bSkillAtk,"WM_METALICSOUND",4*.@lvl; if (getskilllv("WM_FRIGG_SONG") == 5) { bonus2 bSkillCooldown,"WM_METALICSOUND",-200; bonus bAspdRate,10; } if (getskilllv("WM_LULLABY_DEEPSLEEP") == 5) { skill "AL_HEAL",10; bonus bMagicHPGainValue,200; bonus bMagicSPGainValue,20; }',NULL,NULL); #=================================================================== # More 2-Handed Swords #=================================================================== @@ -11437,6 +11215,7 @@ REPLACE INTO `item_db_re` VALUES (21015,'Crimson_Two-Handed_Sword','Crimson Two- REPLACE INTO `item_db_re` VALUES (21016,'Two_Handed_Sword_of_Vicious_Mind','Two-Handed Sword of Vicious Mind',5,20,NULL,2200,'220',NULL,1,1,0x00004082,63,2,34,4,'160',1,3,'bonus bAtk,pow(min(getrefine(),15),2);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (21018,'Lindy_Hop','Lindy Hop',5,20,NULL,3400,'340',NULL,1,2,0x00004082,56,2,34,4,'170',1,3,'.@r = getrefine(); bonus2 bAddClass,Class_All,.@r/2; bonus bAspdRate,.@r; bonus bUnbreakableWeapon;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (21019,'Onimaru','Onimaru',5,0,NULL,4200,'75',NULL,1,2,0x00000080,56,2,34,4,'130',1,3,'.@bStr = readparam(bStr); .@r = getrefine(); bonus bBaseAtk,(min(120,.@bStr)); if (.@bStr > 119) bonus bBaseAtk,160; else if (.@bStr > 107) bonus bBaseAtk,80; else if (.@bStr > 94) bonus bBaseAtk,40; if (.@r > 6) bonus bUnbreakableWeapon; bonus4 bAutoSpell,"NPC_WIDECURSE",4,100,0; if (.@r > 8) bonus4 bAutoSpellOnSkill,"LK_BERSERK","BS_OVERTHRUST",5,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (21039,'Royal_Knight\'s_Broadsword','Royal Knight\'s Broadsword',5,20,NULL,4000,'280',NULL,1,2,0x00004082,56,2,34,4,'175',1,3,'.@r = getrefine(); bonus bBaseAtk,20*(.@r/2); if (.@r>=7) bonus bCritAtkRate,10; if (.@r>=9) bonus bUnbreakableWeapon;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (21047,'Beam_Claymor-OS','Beam Claymor-OS',5,20,NULL,1800,'250',NULL,1,2,0x00004082,56,2,34,4,'130',1,3,'.@r = getrefine(); bonus bUnbreakableWeapon; bonus bCritical,5; if (.@r >= 7) { bonus bAspdRate,7; if (.@r >= 9) { bonus bCritAtkRate,15; if (.@r >= 11) { bonus2 bAddSize,Size_Small,20; bonus2 bAddSize,Size_Medium,20; } } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (21050,'Illusion_Tae_Goo_Lyeon','Illusion Tae Goo Lyeon',5,20,NULL,2000,'250',NULL,1,2,0x00004082,56,2,34,4,'120',1,3,'.@r = getrefine(); bonus bFlee2,10; bonus bLongAtkRate,.@r*2; if (.@r >= 7) { bonus bUseSPrate,-20; if (.@r >= 9) { bonus bDelayrate,-20; if (.@r >= 11) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; } } }',NULL,NULL); #=================================================================== @@ -11457,7 +11236,10 @@ REPLACE INTO `item_db_re` VALUES (22011,'Temporal_Luk_Boots_','Temporal Boots Of REPLACE INTO `item_db_re` VALUES (22012,'Mana_Boots','Mana Boots',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,64,NULL,'1',1,NULL,'bonus2 bExpAddRace,RC_All,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22014,'Enhanced_Variant_Shoes','Enhanced Variant Shoes',4,20,NULL,500,NULL,13,NULL,1,0x7CCFDF80,63,2,64,NULL,'85',1,0,'bonus bMaxHPrate,12; bonus bMaxSPrate,12; .@r = getrefine(); bonus bDef,.@r; bonus bMdef,.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22015,'Impr_Angel\'s_Arrival','Advanced Angel\'s Reincarnation',4,10000,NULL,300,NULL,8,NULL,1,0x00000001,63,2,64,NULL,'99',1,0,'bonus bMaxHP,500; bonus bMaxSP,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22016,'Assassin\'s_Shoes','Assassin\'s Shoes',4,20,NULL,300,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'30',1,0,'bonus2 bExpAddRace,RC_DemiHuman,5+getrefine();',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22017,'Fisherman_Shoes','Fisherman\'s Shoes',4,20,NULL,300,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'30',1,0,'bonus2 bExpAddRace,RC_Fish,5+getrefine();',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22018,'Shoes_Of_Wise_Man','Shoes Of Wise Man',4,10,NULL,300,NULL,15,NULL,1,0xFFFFFFFF,63,2,64,NULL,'50',1,NULL,'.@r = getrefine(); if(.@r>5){ bonus bInt,.@r-5; bonus bMaxHPrate,-(.@r-5); }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22032,'Exorcist_Shoes','Exorcist\'s Shoes',4,20,NULL,300,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'30',1,0,'bonus2 bExpAddRace,RC_Demon,5+getrefine();',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22033,'Boots_Of_Gray','Boots of Gray',4,20,NULL,400,NULL,25,NULL,1,0xFFFFFFFF,56,2,64,NULL,'120',1,0,'bonus2 bSubEle,Ele_Holy,2+getrefine()/3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22034,'Crimson_Gaiter','Crimson Gaiter',4,0,NULL,500,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'50',1,NULL,'bonus bCritical,2; bonus bCritAtkRate,2; if(getrefine()>=7){ bonus bCritical,3; bonus bCritAtkRate,3; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22035,'Vet_Nepen_Heel','Heoric Nepenthes Shoes',4,10,NULL,300,NULL,10,NULL,1,0xFFFFFFFF,63,2,64,NULL,'160',1,NULL,'.@r = getrefine(); if (.@r>=8 && .@r<=10) .@i=5+.@r; else if (.@r>=11 && .@r<=13) .@i=5+(.@r*3); else if (.@r>13) .@i=42; bonus bVariableCastrate,-10-.@i;',NULL,NULL); @@ -11488,6 +11270,7 @@ REPLACE INTO `item_db_re` VALUES (22085,'Elegant_Doram_Shoes','Elegant Doram Sho REPLACE INTO `item_db_re` VALUES (22089,'Crimson_Gaiter_','Crimson Gaiter',4,0,NULL,500,NULL,10,NULL,1,0xFFFFFFFF,63,2,64,NULL,'50',1,NULL,'bonus bCritical,2; bonus bCritAtkRate,2; if(getrefine()>=7){ bonus bCritical,3; bonus bCritAtkRate,3; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22101,'Angel_Poring_Boots','Angel Poring Boots',4,10,NULL,300,NULL,15,NULL,1,0xFFFFFFFF,63,2,64,NULL,'1',1,NULL,'bonus bAllStats,1; skill "AL_HEAL",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22103,'Excelion_Leg','Excelion Leg',4,0,NULL,500,NULL,13,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMaxHP,5+((BaseLevel > 129) ? 4 : 0)+(.@r/3)*3; bonus bMaxSP,5+((BaseLevel > 129) ? 4 : 0)+(.@r/3)*3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22104,'Pororoca_Shoes','Pororoca Shoes',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,15; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Water,2; skill "SA_DELUGE",5; if (getrefine()>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Water,3; } if (getrefine()>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Water,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22106,'Giant_Boots','Giant Boots',4,0,NULL,500,NULL,13,NULL,1,0xFFFFFFFF,63,2,64,NULL,'1',1,NULL,'bonus2 bSubRace,RC_All,1; bonus bMaxHPrate,2; bonus bMaxSPrate,2; .@r = getrefine(); if (.@r > 4) { bonus bDefRate,2; bonus bMaxHPrate,4; bonus bMaxSPrate,4; } if (.@r > 6) { bonus bDefRate,2; bonus bMaxHPrate,4; bonus bMaxSPrate,4; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22107,'Modified_Str_Boots','Modified Str Boots',4,20,NULL,600,NULL,25,NULL,0,0x60000000,63,2,64,NULL,'99',1,NULL,'.@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bAtk,7*(.@r/3); if(readparam(bStr)>=120) bonus bBaseAtk,50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22108,'Modified_Int_Boots','Modified Int Boots',4,20,NULL,600,NULL,25,NULL,0,0x60000000,63,2,64,NULL,'99',1,NULL,'.@r = getrefine(); bonus bMdef,5; bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bMatk,10*(.@r/3); if(readparam(bInt)>=120) bonus bMatk,60;',NULL,NULL); @@ -11501,6 +11284,7 @@ REPLACE INTO `item_db_re` VALUES (22115,'Modified_Agi_Boots_','Modified Agi Boot REPLACE INTO `item_db_re` VALUES (22116,'Modified_Vit_Boots_','Modified Vit Boots',4,20,NULL,600,NULL,25,NULL,1,0x60000000,63,2,64,NULL,'99',1,NULL,'.@r = getrefine(); bonus bMaxHP,300+(300*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); if(readparam(bVit)>=120) bonus bMaxHPrate,8;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22117,'Modified_Dex_Boots_','Modified Dex Boots',4,20,NULL,600,NULL,25,NULL,1,0x60000000,63,2,64,NULL,'99',1,NULL,'.@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bDex,3*(.@r/3); if(readparam(bDex)>=120){ bonus bLongAtkRate,5; bonus bFixedCast,-500; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22118,'Modified_Luk_Boots_','Modified Luk Boots',4,20,NULL,600,NULL,25,NULL,1,0x60000000,63,2,64,NULL,'99',1,NULL,'.@r = getrefine(); bonus bMaxHP,300+(100*(.@r/3)); bonus bMaxSP,30+(10*(.@r/3)); bonus bMdef,5; bonus bCritAtkRate,2*(.@r/3); if(readparam(bLuk)>=120) bonus bCritAtkRate,30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22120,'Shoes_of_Punishment','Shoes of Punishment',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'bonus bMdef,15; bonus bMatkRate,2; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus2 bSkillAtk,"AB_JUDEX",30; bonus2 bMagicAddEle,Ele_Holy,2; .@r = getrefine(); if (.@r>=5) { bonus bMatkRate,3; bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus2 bMagicAddEle,Ele_Holy,3; } if (.@r>=7) { bonus bMatkRate,5; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bMagicAddEle,Ele_Holy,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22122,'Para_Team_Boots100','Awakened Eden Group Boots I',4,0,NULL,0,NULL,22,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,NULL,'bonus bAllStats,1; bonus bHPrecovRate,30; bonus bSPrecovRate,14;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22123,'Para_Team_Boots115','Awakened Eden Group Boots II',4,0,NULL,0,NULL,25,NULL,0,0xFFFFFFFF,63,2,64,NULL,'115',1,NULL,'bonus bAllStats,1; bonus bHPrecovRate,36; bonus bSPrecovRate,18;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22124,'Para_Team_Boots130','Awakened Eden Group Boots III',4,0,NULL,0,NULL,27,NULL,0,0xFFFFFFFF,63,2,64,NULL,'130',1,NULL,'bonus bAllStats,2; bonus bHPrecovRate,36; bonus bSPrecovRate,18;',NULL,NULL); @@ -11508,12 +11292,26 @@ REPLACE INTO `item_db_re` VALUES (22125,'Para_Team_Boots145','Awakened Eden Grou REPLACE INTO `item_db_re` VALUES (22126,'Para_Team_Boots160','Awakened Eden Group Boots V',4,0,NULL,0,NULL,30,NULL,0,0xFFFFFFFF,63,2,64,NULL,'160',1,NULL,'bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20; bonus bUseSPrate,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22131,'Spurred_Boots','Spurred Boots',4,0,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@bonus = 5; if (.@r >=7) { .@bonus += 5; } if (.@r >=9) { .@bonus += 5; } bonus bMaxSPrate,.@bonus; bonus bSpeedRate,25; /* fix me: unknown speed value */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22133,'Illusion_Shoes','Illusion Shoes',4,20,NULL,400,NULL,10,NULL,1,0xFFFFFFFE,63,2,64,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r));',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22134,'Enforcer_Shoes','Enforcer Shoes',4,20,NULL,400,NULL,12,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); .@hpsp = 3; .@a = getskilllv("GC_WEAPONCRUSH"); .@b = getskilllv("GC_WEAPONBLOCKING"); .@c = getskilllv("GC_COUNTERSLASH"); if (.@r >= 5) { .@hpsp += 7; .@dmg = BaseLevel; if (.@r >= 7) { .@hpsp += 10; .@dmg += BaseLevel + 30*getskilllv("AS_POISONREACT"); } bonus2 bSkillAtk,"ASC_METEORASSAULT",.@dmg; } bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMdef,10; skill "BS_MAXIMIZE",1; bonus2 bSkillUseSP,"ASC_METEORASSAULT",8; bonus2 bAddClass,Class_All,4*.@a; bonus2 bSkillCooldown,"GC_HALLUCINATIONWALK",-5000*.@b; bonus2 bIgnoreDefClassRate,Class_All,20*.@c; bonus2 bVariableCastrate,"ASC_METEORASSAULT",-7*(.@a+.@b+.@c);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22138,'Devil_Worshipper_Shoes','Devil Worshipper Shoes',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'bonus bMdef,15; bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Neutral,2; bonus2 bMagicAtkEle,Ele_Fire,2; .@r = getrefine(); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,3; bonus2 bMagicAtkEle,Ele_Fire,3; } if (.@r>=5) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus2 bMagicAtkEle,Ele_Fire,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22141,'YSF01_Greave','YSF01 Greave',4,0,NULL,1300,NULL,25,NULL,1,0xFFFFFFFF,63,2,64,NULL,'170',1,0,'.@r = getrefine(); if (.@r >= 8) { bonus bAspdRate,8; if (.@r >= 11) { bonus bAspd,1; if (.@r >= 13) { .@val = 10; } } } if (readparam(bLuk) >= 125) { .@val += 30; } if (.@val) { bonus bCritAtkRate,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22145,'Tengu\'s_Shoes','Tengu\'s Shoes',4,20,NULL,400,NULL,12,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); .@a = getskilllv("SR_GENTLETOUCH_REVITALIZE"); .@b = getskilllv("SR_GENTLETOUCH_CURE"); .@c = getskilllv("SR_GENTLETOUCH_ENERGYGAIN"); .@hpsp = 3; if (.@r >= 5) { .@hpsp += 7; .@red = 5; if (.@r >= 7) { .@hpsp += 10; .@red += 5; } bonus2 bSkillUseSP,"MO_BODYRELOCATION",.@red; } bonus bMdef,10; bonus bMaxHPrate,.@hpsp+(2*.@b); bonus bMaxSPrate,.@hpsp; skill "SA_CASTCANCEL",1; bonus2 bSkillUseSP,"MO_BODYRELOCATION",5; bonus bDef,30*.@a; bonus2 bSubRace,RC_DemiHuman,.@a; bonus2 bSubRace,RC_Player,.@a; bonus2 bVariableCastrate,"MO_CALLSPIRITS",-.@c*10; bonus2 bVariableCastrate,"MO_STEELBODY",-.@c*10; bonus2 bFixedCastrate,"CH_SOULCOLLECT",-.@c*10; bonus bAspdRate,2*getskilllv("SR_GENTLETOUCH_CHANGE"); bonus2 bAddClass,Class_All,4*getskilllv("SR_GENTLETOUCH_QUIET");',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22170,'Survivor\'s_Shoes','Survivor\'s Shoes',4,10,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); if (.@r >= 7) { .@hpsp = 20; .@dmg = 10; } else if (.@r >= 5) { .@hpsp = 10; .@dmg = 5; } else { .@hpsp = 3; .@dmg = 2; } bonus bMdef,15; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMatkRate,.@dmg; bonus2 bMagicAtkEle,Ele_Wind,.@dmg; bonus2 bMagicAtkEle,Ele_Earth,.@dmg;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22171,'Ancient_Hero_Boots','Ancient Hero Boots',4,20,NULL,600,NULL,15,NULL,1,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHP,500; bonus bMaxSP,50; bonus bMaxHPrate,2*(.@r/3); bonus bMaxSPrate,.@r/3; if (.@r >= 9) { .@val = -300; if (.@r >= 12) { .@val -= 200; if (.@r >= 14) { bonus bDelayRate,-5; } } bonus bFixedCast,.@val; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22172,'Gray_Wing_Boots','Gray Wing Boots',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bMdef,15; bonus bLongAtkRate,2; bonus bCritAtkRate,2; skill "TF_HIDING",1; if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bLongAtkRate,3; bonus bCritAtkRate,3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bLongAtkRate,5; bonus bCritAtkRate,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22189,'Pilgrim_Shoes','Pilgrim Shoes',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bMaxHPrate,3; bonus bMaxSPrate,3; bonus bDef,50*getskilllv("AB_SECRAMENT"); bonus bMdef,15; bonus bAspdRate,4*getskilllv("AB_CANTO"); bonus2 bSkillCooldown,"AB_PRAEFATIO",-1000; bonus bDelayrate,-6*getskilllv("AB_PRAEFATIO"); bonus2 bSubRace,RC_DemiHuman,2*getskilllv("AB_SECRAMENT"); bonus2 bSubRace,RC_Player,2*getskilllv("AB_SECRAMENT"); bonus bHealPower,5*getskilllv("AB_HIGHNESSHEAL"); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bUseSPrate,-3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bUseSPrate,-5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22190,'Illusion_Boots','Illusion Boots',4,0,NULL,600,NULL,16,NULL,1,0x416E5CEA,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bCritical,(5*(.@r/3)); bonus bAspdRate,.@r;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22192,'Illusion_Goibne\'s_Greaves','Illusion Goibne\'s Greaves',4,0,NULL,1200,NULL,42,NULL,1,0xFFFFFFFE,63,2,64,NULL,'130',1,0,'.@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (.@r >= 7) { bonus bVariableCastrate,-5; if (.@r >= 9) { bonus bLongAtkRate,10; } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22195,'Booster_Shoes','Booster Shoes',4,20,NULL,800,NULL,30,NULL,1,0xFFFFFFFF,63,2,64,NULL,'100',1,NULL,'.@r = getrefine(); bonus bMdef,10; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus2 bSubRace,RC_Player,5; if (.@r>=7) { if (readparam(bStr)>=125) bonus bBaseAtk,90; if (readparam(bAgi)>=125) bonus bAspd,2; if (readparam(bVit)>=125) bonus bMaxHPrate,12; if (readparam(bInt)>=125) bonus bMatk,120; if (readparam(bDex)>=125) bonus bLongAtkRate,10; if (readparam(bLuk)>=125) bonus bCritAtkRate,20; } if (.@r>=9) { if (readparam(bStr)>=125) bonus bBaseAtk,90; if (readparam(bAgi)>=125) bonus bAspd,2; if (readparam(bVit)>=125) bonus bMaxHPrate,12; if (readparam(bInt)>=125) bonus bMatk,120; if (readparam(bDex)>=125) bonus bLongAtkRate,10; if (readparam(bLuk)>=125) bonus bCritAtkRate,20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22196,'Illusion_Leg_A-type','Illusion Leg A-type',4,20,NULL,500,NULL,20,NULL,1,0xFFFFFFFF,63,2,64,NULL,'130',1,NULL,'.@r = getrefine(); bonus bMaxSP,200+(20*(.@r/2)); if (.@r >= 7) { bonus bLongAtkRate,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22197,'Illusion_Leg_B-type','Illusion Leg B-type',4,20,NULL,500,NULL,20,NULL,1,0xFFFFFFFF,63,2,64,NULL,'130',1,NULL,'.@r = getrefine(); bonus bMaxSP,200+(20*(.@r/2)); if (.@r >= 7) { bonus2 bMagicAtkEle,Ele_All,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22198,'Traveler_Shoes','Traveler Shoes',4,20,NULL,500,NULL,15,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'bonus bMdef,15; bonus bMaxHPrate,3+(2*getskilllv("WM_FRIGG_SONG")); bonus bMaxSPrate,3; bonus bMatkRate,2; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus bAllStats,getskilllv("WA_SWING_DANCE"); bonus bAspdRate,4*getskilllv("MI_HARMONIZE"); bonus2 bSkillAtk,"WM_METALICSOUND",10*getskilllv("WM_GLOOMYDAY"); bonus2 bVariableCastrate,"WM_METALICSOUND",-10*getskilllv("WM_GLOOMYDAY"); bonus3 bAddEff,Eff_Sleep,2*getskilllv("WM_LULLABY_DEEPSLEEP"),ATF_MAGIC; .@r = getrefine(); if (.@r>=5) { bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,3; } if (.@r>=7) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bMatkRate,5; bonus2 bMagicAtkEle,Ele_Neutral,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22199,'Lava_Leather_Boots','Lava Leather Boots',4,20,NULL,600,NULL,50,NULL,1,0xFFFFFFFF,63,2,64,NULL,'175',1,0,'.@r = getrefine(); bonus2 bAddClass,Class_All,2; if (.@r>=7) bonus bBaseAtk,25; if (.@r>=9) bonus bBaseAtk,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22200,'Lava_Leather_Shoes','Lava Leather Shoes',4,20,NULL,600,NULL,50,NULL,1,0xFFFFFFFF,63,2,64,NULL,'175',1,0,'.@r = getrefine(); bonus bCritical,5; if (.@r>=7) bonus2 bAddSize,Size_All,5; if (.@r>=9) bonus bCritAtkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22201,'Lava_Leather_Sandals','Lava Leather Sandals',4,20,NULL,500,NULL,25,NULL,1,0xFFFFFFFF,63,2,64,NULL,'175',1,0,'.@r = getrefine(); bonus2 bMagicAtkEle,Ele_Fire,3; if (.@r>=7) bonus bMatk,25; if (.@r>=9) bonus bMatk,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22207,'Imperial_Boots','Imperial Boots',4,20,NULL,400,NULL,12,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,10; bonus bMaxHPrate,3; bonus bMaxSPrate,3; skill "AL_INCAGI",1; bonus2 bSkillAtk,"LG_BANISHINGPOINT",10*getskilllv("LG_CANNONSPEAR"); bonus2 bAddClass,Class_All,4*getskilllv("CR_DEVOTION"); if (getskilllv("LG_INSPIRATION")>=5) bonus2 bSkillCooldown,"LG_SHIELDSPELL",-2000; bonus2 bIgnoreDefClassRate,Class_All,20*getskilllv("LG_PINPOINTATTACK"); if (.@r>=5) { bonus bMaxSPrate,7; bonus bMaxHPrate,7; bonus bLongAtkRate,5; } if (.@r>=7) { bonus bMaxSPrate,10; bonus bMaxHPrate,10; bonus bLongAtkRate,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22210,'Fluffy_Fish_Shoes','Fluffy Fish Shoes',4,20,NULL,100,NULL,12,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); .@hpsp = 3; .@val = -10 * getskilllv("SU_SHRIMPARTY"); if (.@r>=5) { .@hpsp += 7; .@delay = -10; if (.@r>=7) { .@hpsp += 10; .@delay -= 10; } bonus bDelayrate,.@delay; } if (getskilllv("SU_SPIRITOFSEA") == 1) { autobonus3 "{ bonus2 bResEff,Eff_Stun,10000; bonus2 bResEff,Eff_Sleep,10000; bonus2 bResEff,EFF_Stone,10000; }",1000,30000,"SU_GROOMING"; } if (getskilllv("SU_GROOMING") == 5) { bonus bFixedCastrate,-50; bonus bNoKnockback; } bonus bMaxHPrate,.@hpsp; bonus bMaxSPrate,.@hpsp; bonus bMdef,10; bonus2 bVariableCastrate,"SU_FRESHSHRIMP",.@val; bonus2 bVariableCastrate,"SU_BUNCHOFSHRIMP",.@val; bonus2 bVariableCastrate,"SU_TUNABELLY",.@val; bonus2 bVariableCastrate,"SU_TUNAPARTY",.@val; bonus2 bVariableCastrate,"SU_SHRIMPARTY",.@val; bonus bHealPower,10*getskilllv("SU_PURRING");',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22214,'Authority_Sandals','Authority Sandals',4,20,NULL,500,NULL,10,NULL,0,0xFFFFFFFF,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bMdef,10; bonus bAllStats,10; bonus2 bIgnoreDefRaceRate,RC_All,50; bonus2 bIgnoreMdefRaceRate,RC_All,50; if (.@r>=7) bonus bAllStats,10; if (.@r>=9) bonus bAllStats,10;',NULL,NULL); #=================================================================== # New Usable items #=================================================================== @@ -11725,7 +11523,7 @@ REPLACE INTO `item_db_re` VALUES (22870,'Xmas_Package_14','Christmas Package',3, REPLACE INTO `item_db_re` VALUES (22873,'Sealed_Beelzebub_Scroll_II','Sealed Beelzebub Scroll II',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem callfunc("F_Rand",22875,6238,6239,6228,6232,24231,24232,17474,6635),1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22874,'Sealed_Beelzebub_Card_Album','Sealed Beelzebub Card Album',2,10,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*No Info*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22875,'Sealed_Beelzebub_Card','Sealed Beelzebub Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bVariableCastrate,-15; /*Item removed on 2014-12-17*/',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (22876,'Old_Money_Pocket','Old Money Pocket',2,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Zeny += rand(500,550);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22876,'Old_Money_Pocket','Old Money Pocket',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'Zeny += rand(500,550);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22881,'Binding_Rope','Rope Gallows',2,10,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*Used to catch a Lost Sheep*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22882,'Choco_Tteokguk','Chocolate Rice Cake Soup',2,10,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 10,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22883,'September_Gift_Box_','September Gift Box',2,10,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*2 Lucky Eggs*/',NULL,NULL); @@ -12260,9 +12058,9 @@ REPLACE INTO `item_db_re` VALUES (25184,'Portable_Sewingbox','Portable Sewingbox REPLACE INTO `item_db_re` VALUES (25185,'Locket_Pendant','Locket Pendant',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (25187,'Slug_Bullet','Slug Bullet',3,1200,NULL,1200,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (25223,'Para_Team_Coin','Eden Group Coin',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (25231,'Suspicious_Bottle','Suspicious Bottle',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (25232,'Cheap_Lubricant','Cheap Lubricant',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (25233,'Cotton_Tufts','Cotton Tufts',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (25231,'Suspicious_Bottle','Suspicious Bottle',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (25232,'Cheap_Lubricant','Cheap Lubricant',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (25233,'Cotton_Tufts','Cotton Tufts',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (25238,'New_Normal_Lubricant','New Normal Lubricant',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (25239,'New_Advanced_Lubricant','New Advanced Lubricant',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (25246,'Juice_Mix_Package','Juice Mix Package',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -12332,6 +12130,7 @@ REPLACE INTO `item_db_re` VALUES (25705,'M_M_Lucky_Strike','Modification Module # New Spears #=================================================================== REPLACE INTO `item_db_re` VALUES (26007,'Illusion_Spectral_Spear','Illusion Spectral Spear',5,20,NULL,2000,'240',NULL,3,1,0x00004082,63,2,34,4,'99',1,5,'.@r = getrefine(); .@val = 3*(.@r/2); bonus2 bAddEle,Ele_Dark,(20+.@val); bonus2 bAddRace,RC_Demon,(20+.@val); bonus2 bAddRace,RC_Undead,(20+.@val); bonus2 bSubRace,RC_Demon,(10+.@val); bonus2 bSubEle,Ele_Undead,(10+.@val); bonus2 bSubEle,Ele_Dark,(10+.@val); bonus bHPGainValue,50; bonus bSPGainValue,(.@r/2); bonus2 bAddEff2,Eff_Confusion,1000;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (26016,'Royal_Knight\'s_Lance','Royal Knight\'s Lance',5,20,NULL,1000,'205',NULL,1,2,0x00004082,63,2,34,3,'175',1,5,'.@r = getrefine(); bonus bLongAtkRate,3*(.@r/2); if (.@r>=7) bonus2 bAddClass,Class_All,5; if (.@r>=9) bonus2 bAddRace,RC_All,15;',NULL,NULL); #=================================================================== # New Staves #=================================================================== @@ -12340,6 +12139,8 @@ REPLACE INTO `item_db_re` VALUES (26101,'Paradise_Foxtail_Staff_III','Eden Group REPLACE INTO `item_db_re` VALUES (26107,'Elder_Staff','Elder Staff',5,0,NULL,500,'60:150',NULL,1,3,0x00008110,63,2,2,3,'100',1,10,'.@r = getrefine(); .@bonus = 10; if (.@r>=7) { .@bonus += 5; } if (.@r>=9) { .@bonus += 10; } bonus bHealPower,.@bonus;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (26109,'Illusion_Staff_of_Bordeaux','Illusion Staff of Bordeaux',5,20,NULL,500,'60:180',NULL,1,2,0x00010200,58,2,2,4,'99',1,10,'bonus bInt,3; bonus bDex,2; if (getskilllv("SA_DRAGONOLOGY") == 5) { .@val = getrefine()/3; bonus bMatkRate,(5+.@val); bonus bUseSPrate,(-15-(5*.@val)); }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (26110,'CandyCaneRod','Candy Cane Rod',5,20,NULL,500,'10:140',NULL,1,2,0x00818315,63,2,2,4,'99',1,10,'bonus bInt,2; bonus bFlee,2*getrefine(); if(getrefine()>= 10) { bonus bFlee2,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (26138,'Hellfire_Staff','Hellfire Staff',5,20,NULL,800,'110:180',NULL,1,2,0x00818314,63,2,2,4,'175',1,23,'.@r = getrefine; bonus bInt,5; bonus bMatk,15*(.@r/2); bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; bonus2 bMagicAtkEle,Ele_Fire,.@val; bonus2 bMagicAtkEle,Ele_Earth,.@val;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (26139,'Icicle_Staff','Icicle Staff',5,20,NULL,800,'110:180',NULL,1,2,0x00818314,63,2,2,4,'175',1,23,'.@r = getrefine; bonus bInt,5; bonus bMatk,15*(.@r/2); bonus bUnbreakableWeapon; if (.@r>=9) .@val = 15; else if (.@r>=7) .@val = 5; bonus2 bMagicAtkEle,Ele_Water,.@val; bonus2 bMagicAtkEle,Ele_Holy,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (26151,'Rutilus_Stick-OS','Rutilus Stick-OS',5,20,NULL,900,'80:175',NULL,1,2,0x00818315,63,2,2,4,'130',1,10,'.@r = getrefine(); bonus bUnbreakableWeapon; bonus2 bMagicAddEle,Ele_Neutral,5; bonus2 bMagicAddEle,Ele_Earth,5; if (.@r >= 7) { bonus bVariableCastrate,-7; if (.@r >= 9) { autobonus "{ bonus2 bMagicAtkEle,Ele_Fire,30; }",5,10000,BF_MAGIC; /* unknown rate */ if (.@r >= 11) { bonus bDelayrate,-10; } } }',NULL,NULL); #REPLACE INTO `item_db_re` VALUES (26154,'Spirit_Plumb','Spirit Plumb',5,20,NULL,1100,'70:160',NULL,1,2,0x00000000,63,2,2,4,'100',1,10,'.@r = getrefine(); bonus bMatk,10*(.@r/2); bonus bMaxSPrate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SP_SPA",15; if (.@r >= 9) { bonus bVariableCastrate,-10; if (.@r >= 11) { bonus2 bSkillAtk,"SP_SWHOO",20; } } }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (26155,'Meowmeow_Foxtail','Meowmeow Foxtail',5,20,NULL,1100,'300:300',NULL,1,2,0x80000000,7,2,2,4,'100',1,10,'.@r = getrefine(); bonus bMatk,10*(.@r/2); bonus bBaseAtk,10*(.@r/2); bonus2 bAddClass,Class_All,2*(.@r/3); bonus bMatkRate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SU_LUNATICCARROTBEAT",15; bonus2 bSkillAtk,"SU_SV_STEMSPEAR",15; if (.@r >= 9) { bonus bVariableCastrate,-10; bonus bAspdRate,10; if (.@r >= 11) { bonus2 bSkillAtk,"SU_PICKYPECK",15; bonus2 bSkillAtk,"SU_CN_METEOR",15; } } }',NULL,NULL); @@ -12504,6 +12305,24 @@ REPLACE INTO `item_db_re` VALUES (27340,'Chaotic_Killer_Mantis_Card','Chaotic Ki REPLACE INTO `item_db_re` VALUES (27341,'Chaotic_Poporing_Card','Chaotic Poporing Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubRace,RC_Fish,15;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (27342,'Chaotic_Stem_Worm_Card','Chaotic Stem Worm Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bHit,10; bonus2 bSubDefEle,Ele_Earth,20; bonus2 bSubDefEle,Ele_Neutral,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (27343,'Chaotic_Acolyte_Card','Chaotic Acolyte Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,128,NULL,NULL,NULL,NULL,'bonus bDelayrate,-4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27346,'Rigid_Muspellskoll_Card','Rigid Muspellskoll Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubRace,RC_Dragon,30; bonus2 bSubRace,RC_Demon,30; bonus2 bSubRace,RC_Brute,30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27347,'Rigid_Kaho_Card','Rigid Kaho Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bMagicAddEle,Ele_Earth,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27348,'Rigid_Lava_Golem_Card','Rigid Lava Golem Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,63,2,2,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus2 bMagicAddEle,Ele_Neutral,3+((.@r>=7)*5)+((.@r>=9)*7);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27349,'Rigid_Explosion_Card','Rigid Explosion Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubRace,RC_Dragon,15; bonus2 bSubDefEle,Ele_Fire,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27350,'Rigid_Earth_Deleter_Card','Rigid Earth Deleter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,768,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus bMaxSPrate,2+(.@r/2);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27351,'Rigid_Sky_Deleter_Card','Rigid Sky Deleter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,768,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27352,'Rigid_Nightmare_Terror_Card','Rigid Nightmare Terror Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bMaxSPrate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27353,'Rigid_Blazer_Card','Rigid Blazer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubRace,RC_Demon,15; bonus2 bSubDefEle,Ele_Neutral,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27354,'Contaminated_Raydric_Card','Contaminated Raydric Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddClass,Class_All,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27355,'Contaminated_Raydric_Archer_Card','Contaminated Raydric Archer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bLongAtkRate,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27356,'Frozen_Gargoyle_Card','Frozen Gargoyle Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubSize,Size_Medium,25; bonus2 bSubSize,Size_Large,25; bonus2 bSubSize,Size_Small,-5; bonus bDef,20;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27357,'Contaminated_Sting_Card','Contaminated Sting Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bDef,100+25*(getrefine()/3);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27358,'Prison_Breaker_Card','Prison Breaker Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bSubEle,Ele_Wind,30; bonus2 bSubEle,Ele_Poison,30; bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Earth,30; bonus2 bSubEle,Ele_Undead,30; bonus2 bSubEle,Ele_Holy,-100; bonus2 bSubEle,Ele_Ghost,-100; bonus2 bSubEle,Ele_Fire,-100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27359,'Ice_Ghost_Card','Ice Ghost Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bMagicAddEle,Ele_Water,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27360,'Flame_Ghost_Card','Flame Ghost Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bMagicAddEle,Ele_Fire,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27361,'Contaminated_Wanderer_Card','Contaminated Wanderer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddSize,Size_Large,30; bonus2 bAddSize,Size_Medium,30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27362,'Contaminated_Spider_Queen_Card','Contaminated Spider Queen Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bSubEle,Ele_All,-30; bonus2 bMagicAtkEle,Ele_Earth,100; bonus2 bMagicAtkEle,Ele_Water,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (27363,'Contaminated_Dark_Lord_Card','Contaminated Dark Lord Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8,NULL,NULL,NULL,NULL,'bonus bAspd,1;',NULL,NULL); #=================================================================== # New Katars #=================================================================== @@ -12523,7 +12342,7 @@ REPLACE INTO `item_db_re` VALUES (28038,'Meuchler-OS','Meuchler-OS',5,20,NULL,13 # New Axes #=================================================================== REPLACE INTO `item_db_re` VALUES (28100,'Thanos_Axe','Thanos Axe',5,10,NULL,4000,'300:80',NULL,1,1,0x000444A2,56,2,34,4,'120',1,7,'bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bHPDrainRate,50,5; bonus2 bSPDrainRate,10,5; bonus2 bHPLossRate,100,10000;',NULL,'heal -1000,0;'); -REPLACE INTO `item_db_re` VALUES (28101,'Tornado_Axe','Axe Tornado',5,10,NULL,4000,'320',NULL,NULL,1,0x00000400,56,2,34,4,'130',1,7,'bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,"NC_AXETORNADO",-1000;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28101,'Tornado_Axe','Axe Tornado',5,10,NULL,4000,'320',NULL,NULL,1,0x00000400,56,2,34,4,'100',1,7,'bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,"NC_AXETORNADO",-1000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28102,'Half_BF_Two_Handed_Axe1','Half BF Two Handed Axe1',5,20,NULL,0,'200',NULL,1,0,0x000444A2,63,2,34,3,'80',1,7,'bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus bUnbreakableWeapon;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28103,'Ru_Blue_Axe_M','Blue Twohand Axe',5,10,NULL,3000,'330',NULL,1,1,0x00000400,56,2,34,3,'1',1,7,'bonus bStr,5; bonus bVit,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28104,'Ru_Gold_Axe_M','Ru Gold Axe M',5,0,NULL,3000,'330',NULL,1,2,0x00000400,56,2,34,3,'120',1,7,'bonus bStr,8; bonus bVit,8;',NULL,NULL); @@ -12570,6 +12389,7 @@ REPLACE INTO `item_db_re` VALUES (28317,'RCC2013_RING','RCC2013_RING',4,200,NULL REPLACE INTO `item_db_re` VALUES (28318,'RCC2013_RING_','RCC2013_RING_',4,200,NULL,200,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'1',0,NULL,'bonus2 bAddClass,Class_All,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28310,'Earring_Of_Sarah_L','Sarah\'s Left Earring',4,10,NULL,100,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,136,NULL,'145',0,NULL,'skill "AL_HEAL",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28311,'Earring_Of_Sarah_R','Sarah\'s Right Earring',4,10,NULL,100,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,136,NULL,'145',0,NULL,'skill "AL_TELEPORT",1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28320,'Assassin\'s_Despair','Assassin\'s Despair',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'50',0,0,'bonus bAspd,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28321,'Falconer_Claw','Falconer Claw',4,0,NULL,100,NULL,5,NULL,1,0x00000800,63,2,136,NULL,'80',0,NULL,'bonus bDex,1; bonus2 bSkillAtk,"HT_BLITZBEAT",getskilllv("HT_STEELCROW")*10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28322,'Falconer_Glove','Falconer Glove',4,0,NULL,100,NULL,5,NULL,1,0x00000800,63,2,136,NULL,'80',0,NULL,'bonus bDex,1; bonus bUseSPrate,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28326,'Broken_Chip_1','Broken Chips 01',4,10,NULL,100,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,NULL,'bonus bStr,4;',NULL,NULL); @@ -12577,13 +12397,18 @@ REPLACE INTO `item_db_re` VALUES (28327,'Broken_Chip_2','Broken Chips 02',4,10,N REPLACE INTO `item_db_re` VALUES (28332,'Jewel_Ring','Jewerly Ring',4,10,NULL,100,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,136,NULL,'1',0,NULL,'bonus bLuk,20; autobonus "{ bonus bAspd,2; }",50,2000,BF_WEAPON|BF_MAGIC;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28333,'Gold_PC_Room_Ring','Gold PC Room Ring',4,10,NULL,0,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'1',0,NULL,'bonus bMaxHPrate,3; bonus bMaxSPrate,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28342,'Critical_Anklet','Critical Anklet',4,0,NULL,200,NULL,3,NULL,1,0xFFFFFFFF,63,2,136,NULL,NULL,0,NULL,'bonus bCritical,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28352,'Vesper_Gear_01','Vesper Gear 01',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bMdef,3; bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28353,'Vesper_Gear_02','Vesper Gear 02',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bMdef,3; bonus2 bAddClass,Class_All,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28354,'City_Map','City Map',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'1',0,0,'/* todo */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28355,'Shining_Holy_Water_','Shining Holy Water',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'1',0,0,'/* todo */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28356,'Prontera_Badge','Prontera Badge',4,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'1',0,0,'/*warp "prontera",159,192; 15 mins cooldown */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28357,'Vesper_Gear_03','Vesper Gear 03',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bMdef,3; bonus bFlee,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28358,'Cursed_Lucky_Clover','Cursed Lucky Clover',4,0,NULL,100,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,NULL,'bonus bLuk,2; bonus bFlee,3; bonus2 bAddEff2,Eff_Curse,5;',NULL,'sc_end SC_CLOAKING; /*FIXME: Because the combo has Cloaking skill*/'); +REPLACE INTO `item_db_re` VALUES (28359,'Vesper_Gear_04','Vesper Gear 04',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bMdef,3; bonus bHit,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28372,'Imperial_Ring','Imperial Ring',4,0,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,63,2,136,NULL,'50',0,NULL,'bonus bStr,1; bonus bInt,1; bonus bMaxHPRate,3; bonus bMaxSPRate,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28374,'Foxtail_Ring','Foxtail Ring',4,20,NULL,100,NULL,0,NULL,0,0x80000000,7,2,136,NULL,'1',0,NULL,'bonus2 bExpAddRace,RC_All,5; .@lvl = min(BaseLevel/5,10); bonus bAtk,2*.@lvl; bonus bMatk,2*.@lvl; bonus bMaxHP,10*.@lvl; bonus bMaxSP,5*.@lvl;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28377,'Magical_Ring','Magical Ring',4,0,NULL,100,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'20',0,NULL,'bonus2 bMagicAtkEle,Ele_Fire,5; bonus2 bMagicAtkEle,Ele_Water,5; bonus2 bMagicAtkEle,Ele_Earth,5; bonus2 bMagicAtkEle,Ele_Wind,5; if (BaseLevel > 4) { bonus2 bSkillAtk,"MG_FIREBOLT",BaseLevel/5; bonus2 bSkillAtk,"MG_COLDBOLT",BaseLevel/5; bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",BaseLevel/5; bonus2 bSkillAtk,"WZ_EARTHSPIKE",BaseLevel/5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28379,'Shadow_Ring','Shadow Ring',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'20',0,0,'.@s = getskilllv("RG_STEALCOIN"); .@r = getskilllv("RG_RAID"); if (.@s>=1) .@a = .@s; else .@a = 1; bonus3 bAutoSpell,"RG_STEALCOIN",.@a,50; bonus2 bSkillAtk,"RG_BACKSTAP",2*BaseLevel; bonus3 bAddEff,Eff_Stun,.@r*100,ATF_SHORT; autobonus3 "{ bonus2 bSkillAtk,\\\"SC_TRIANGLESHOT\\\",BaseLevel/3; }",1000,20000,5010,"{ specialeffect2 153; }"; /* Placeholder specialeffect */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28380,'Fresh_Grass_Necklace','Fresh Grass Necklace',4,20,NULL,100,NULL,0,NULL,1,0x80000000,7,2,136,NULL,'100',0,NULL,'bonus bFlee2,5; bonus2 bSkillCooldown,"SU_SCAROFTAROU",-5000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28381,'Cute_Grass_Necklace','Cute Grass Necklace',4,20,NULL,10,NULL,0,NULL,1,0x80000000,7,2,136,NULL,'100',0,NULL,'bonus bHealPower,5; bonus2 bSkillCooldown,"SU_TUNAPARTY",-7000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28382,'Charm_Grass_Necklace','Charm Grass Necklace',4,20,NULL,10,NULL,0,NULL,1,0x80000000,7,2,136,NULL,'100',0,NULL,'bonus bMdef,5; bonus2 bVariableCastrate,"SU_CN_METEOR",-1000;',NULL,NULL); @@ -12606,6 +12431,12 @@ REPLACE INTO `item_db_re` VALUES (28423,'Fresh_Tuna_Talisman','Fresh Tuna Talism REPLACE INTO `item_db_re` VALUES (28424,'Chubby_Worm_Talisman','Chubby Worm Talisman',4,0,NULL,100,NULL,1,NULL,1,0x80000000,63,2,136,NULL,'100',NULL,NULL,'bonus2 bVariableCastrate,"SU_PICKYPECK",-50; bonus2 bSkillAtk,"SU_PICKYPECK",(readparam(bDex)/2)+(20 * getskilllv("SU_PICKYPECK")); /* Need to confirm damage formula */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28425,'Mercenary_Ring_Type_A','Mercenary Ring Type A',4,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'99',0,0,'bonus bVit,3; if (BaseClass == Job_Gunslinger || BaseJob == Job_Novice || BaseJob == Job_SuperNovice || BaseClass == Job_Ninja || BaseClass == Job_Taekwon) { bonus bMaxHP,1000; bonus bMaxSP,200; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28426,'Mercenary_Ring_Type_B','Mercenary Ring Type B',4,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'99',0,0,'bonus bInt,3; if (BaseClass == Job_Gunslinger || BaseJob == Job_Novice || BaseJob == Job_SuperNovice || BaseClass == Job_Ninja || BaseClass == Job_Taekwon) { bonus bVariableCastrate,-30; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28429,'Arquien\'s_Necklace','Arquien\'s Necklace',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'20',0,0,'bonus2 bSkillAtk,"MC_CARTREVOLUTION",Baselevel; bonus2 bSkillAtk,"NC_AXETORNADO",(Baselevel/3); bonus2 bSkillAtk,"NC_POWERSWING",(Baselevel/5); bonus2 bSkillUseSP,"NC_POWERSWING",2; bonus2 bAddMonsterDropItem,529,2000; bonus2 bAddMonsterDropItem,530,2000; bonus2 bAddMonsterDropItem,573,500; bonus2 bAddItemHealRate,529,100; bonus2 bAddItemHealRate,530,100; /* Unknow drop rates */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28430,'Arch_Bishop_Ring','Arch Bishop Ring',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bLuk,2; bonus bFlee2,5; bonus bUseSPrate,-5; bonus bHealPower,15; bonus bAddItemHealRate,15;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28433,'Luminous_Blue_Stone','Luminous Blue Stone',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bAgi,2; bonus bCritical,5; bonus bAspdRate,5; bonus bCritAtkRate,2; skill "MG_SIGHT",1; if (readparam(bLuk)>=100) { bonus bCritical,10; bonus bCritAtkRate,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28434,'Fist_Fighter_Glove','Fist Fighter\'s Glove',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bStr,2; bonus bMaxSP,100; bonus2 bAddClass,Class_All,2; skill "MO_ABSORBSPIRITS",1; if (readparam(bStr)>99) bonus2 bAddClass,Class_All,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28437,'Hibram\'s_Gloves','Hibram\'s Gloves',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'skill "AL_HEAL",3; bonus bInt,2; bonus bMatkRate,2; bonus bUseSPrate,-5; if (readparam(bInt)>=110) bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28438,'Fairy_Leaf_Powder','Fairy Leaf Powder',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bDex,2; bonus bDelayrate,-5; bonus bLongAtkRate,2; skill "SM_MAGNUM",3; if (readparam(bDex)>=100) bonus bLongAtkRate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28441,'Vigilante_Badge','Vigilante Badge',4,0,NULL,200,NULL,0,NULL,0,0x00020000,56,2,136,NULL,'100',0,0,'bonus bFlee,10; bonus bLongAtkRate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28442,'Hippie_Feather','Hippie Feather',4,0,NULL,200,NULL,0,NULL,1,0x00080000,56,2,136,NULL,'100',0,0,'bonus bHit,5; bonus bFlee,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28443,'Para_Team_Str_Ring100','Awakened Eden Group Ring of Strength I',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'100',NULL,NULL,'bonus2 bAddClass,Class_All,2;',NULL,NULL); @@ -12639,13 +12470,35 @@ REPLACE INTO `item_db_re` VALUES (28470,'Para_Team_Agi_Necklace145','Awakened Ed REPLACE INTO `item_db_re` VALUES (28471,'Para_Team_Agi_Ring160','Awakened Eden Group Ring of Agility V',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'160',NULL,NULL,'bonus bLongAtkRate,4; skill "AL_HEAL",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28472,'Para_Team_Agi_Necklace160','Awakened Eden Group Necklace of Agility V',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'160',NULL,NULL,'bonus bDex,4; skill "AL_TELEPORT",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28483,'Royal_Guardian_Ring','Royal Guardian Ring',4,0,NULL,10,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'99',NULL,NULL,'.@b = min(BaseLevel/25,7); bonus bMaxHPrate,.@b; bonus bMaxSPrate,.@b;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28484,'Rebel_Scarf','Rebel Scarf',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'.@M = getskilllv("RL_MASS_SPIRAL"); .@F = getskilllv("RL_FIRE_RAIN"); .@H = getskilllv("RL_HEAT_BARREL"); .@S = getskilllv("RL_S_STORM"); .@D = getskilllv("RL_D_TAIL"); .@E = getskilllv("RL_E_CHAIN"); bonus2 bAddClass,Class_All,5; bonus bAspdRate,2*.@M; bonus bVariableCastrate,-10; bonus bDelayrate,-(.@F); bonus2 bSkillCooldown,"RL_HEAT_BARREL",-4000*.@S; bonus2 bSkillCooldown,"RL_S_STORM",-100*.@S; bonus bCritAtkRate,3*.@D; bonus2 bSkillAtk,"RL_FIRE_RAIN",5*.@F; bonus2 bSkillAtk,"RL_MASS_SPIRAL",5*.@M; bonus2 bSkillAtk,"RL_QD_SHOT",5*.@E; bonus2 bSkillAtk,"RL_S_STORM",5*.@S; bonus2 bSkillUseSP,"RL_FIREDANCE",10; bonus2 bSkillUseSP,"RL_FIRE_RAIN",4*.@F; bonus2 bSkillUseSP,"RL_MASS_SPIRAL",2*.@M; if(getiteminfo(getequipid(EQI_HAND_R),11) == W_GRENADE) { autobonus3 "{ bonus3 bAutoSpell,\\\"RL_D_TAIL\\\",max(1,getskilllv(\\\"RL_D_TAIL\\\")),10;}",1000,50000,"RL_C_MARKER","{specialeffect2 311;}"; } /* Placeholder Effect */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28485,'Shinobi_Sash_H','Shinobi Sash H',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMatkRate,5; bonus bAspdRate,5; bonus bDelayrate,-5; .@a = (getskilllv("KO_GENWAKU")+getskilllv("KO_JYUSATSU")+getskilllv("KO_KYOUGAKU")); bonus2 bMagicAddEle,Ele_Dark,4*.@a; bonus2 bSkillAtk,"NJ_BAKUENRYU",10*getskilllv("NJ_KOUENKA"); bonus2 bSkillAtk,"NJ_KAMAITACHI",10*getskilllv("NJ_HUUJIN"); bonus2 bSkillAtk,"NJ_HYOUSYOURAKU",20*getskilllv("NJ_HYOUSENSOU");',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28491,'Hunting_Knife','Hunting Knife',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bLuk,2; bonus bHit,10; bonus bCriticalLong,5; skill "TF_HIDING",1; if (readparam(bLuk>=100)) { bonus bHit,5; bonus bCriticalLong,10; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28492,'Thieve_Guide_V1','Thieve\'s Guide Vol.1',4,20,NULL,10,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bStr,5; bonus bAgi,5; bonus bInt,5; if (getskilllv(2292)==3) skill "SN_WINDWALK",5; if (getskilllv(2293)==3) skill "HP_ASSUMPTIO",5; if (getskilllv(2294)==3) skill "WS_OVERTHRUSTMAX",5; if (getskilllv(2295)==3) skill "ASC_METEORASSAULT",5; if (getskilllv(2296)==3) skill "LK_BERSERK",1; if (getskilllv(2297)==3) skill "HW_MAGICPOWER",5; if (getskilllv(220)==1) { bonus bStr,5; bonus bAgi,5; bonus bInt,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28495,'Sheriffs_Left_Badge','Sheriff\'s Left Badge',4,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFF,63,2,128,NULL,'100',0,0,'if (readparam(bStr) > 89) bonus2 bAddClass,Class_All,3; if (readparam(bVit) > 89) bonus bMaxHP,1000; if (readparam(bDex) > 89) bonus bLongAtkRate,3;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28496,'Sheriffs_Right_Badge','Sheriff\'s Right Badge',4,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'100',0,0,'if (readparam(bVit) > 89) bonus bMaxHP,1000; if (readparam(bInt) > 89) bonus bMatkRate,3; if (readparam(bDex) > 89) bonus bVariableCastrate,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28499,'Proof_of_Glory','Proof of Glory',4,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'100',NULL,NULL,'bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; if(BaseLevel>=150) { bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28500,'Zealous_Necklace','Zealous Necklace',4,20,NULL,200,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28501,'Horn_of_Kirin','Horn of Kirin',4,20,NULL,500,NULL,3,NULL,1,0xFFFFFFFF,63,2,136,NULL,'50',0,0,'bonus bAgi,2; bonus bAspdRate,2; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Brute,1; bonus2 bSubRace,RC_Fish,1; bonus2 bSubRace,RC_Player,1; bonus2 bSubRace,RC_Demon,2; bonus2 bSubRace,RC_Undead,2; skill "AL_INCAGI",6; if (readparam(bAgi)>=100) { bonus bAspdRate,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28502,'Mob_Scarf','Mob Scarf',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'100',0,1568,'skill "SA_SPELLBREAKER",2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28503,'Keraunos','Keraunos',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHPrate,5; bonus2 bAddClass,Class_All,5; bonus bAspdRate,5; bonus2 bVariableCastrate,"SR_GATEOFHELL",-3*(BaseLevel/20); bonus2 bVariableCastrate,"SR_RIDEINLIGHTNING",-5*(BaseLevel/15); bonus2 bSkillCooldown,"SR_ASSIMILATEPOWER",-3000; bonus2 bSkillAtk,"SR_RIDEINLIGHTNING",5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28506,'Storm_Stone','Storm Stone',4,30000,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'bonus bMaxSPrate,5; bonus bAspdRate,5; bonus2 bAddClass,Class_All,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28507,'Magician_Gloves','Magician\'s Gloves',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'80',0,0,'bonus bVariableCastrate,-10; bonus2 bMagicAtkEle,Ele_Earth,5; bonus2 bMagicAtkEle,Ele_Water,5; bonus2 bMagicAtkEle,Ele_Wind,5; bonus2 bMagicAtkEle,Ele_Fire,5; bonus2 bMagicAtkEle,Ele_Ghost,5; bonus2 bIgnoreMdefRaceRate,RC_All,50;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28508,'Illusion_Skull_Ring','Illusion Skull Ring',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'100',0,0,'bonus3 bAddEff,Eff_Curse,5000,ATF_SELF|ATF_TARGET|ATF_SHORT|ATF_WEAPON;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28509,'Illusion_Ring','Illusion Ring',4,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'100',0,0,'bonus bStr,3; if (readparam(bStr) >= 100) { bonus bBaseAtk,30; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28510,'A_Vampire\'s_Servant','A Vampire\'s Servant',4,0,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,8,NULL,'100',0,NULL,'bonus2 bSPDrainRate,1000,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28513,'JRO_Celine_Brooch','Celine\'s Brooch',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHP,500; bonus bMaxSP,250; bonus bMatkRate,5; bonus bAspd,1; bonus bVariableCastrate,-10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28520,'Egir_Ring','Egir Ring',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMdef,5; bonus bAllStats,1; bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus2 bSubEle,Ele_Water,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28521,'Giant\'s_Protection','Giant\'s Protection',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'1',0,0,'bonus2 bAddClass,Class_All,5; if (readparam(bStr)>=120) { bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,50; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28531,'Blacksmith\'s_Gloves','Blacksmith\'s Gloves',4,20,NULL,500,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,136,NULL,'80',0,NULL,'bonus bDelayrate,-10; bonus2 bAddClass,Class_Boss,5; bonus2 bIgnoreDefRaceRate,RC_All,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28533,'Chemical_Glove','Chemical Glove',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'20',0,NULL,'.@s = getskilllv("GN_REMODELING_CART"); bonus bHit,20; bonus bAspdRate,5+.@s; bonus bBaseAtk,15*.@s; bonus bMaxHPrate,2*.@s; bonus2 bSkillUseSP,"GN_CART_TORNADO",.@s; bonus2 bAddItemHealRate,501,100; bonus2 bAddItemHealRate,502,100; bonus2 bAddItemHealRate,503,100; bonus2 bAddItemHealRate,504,100; bonus2 bSkillAtk,"MC_CARTREVOLUTION",Baselevel; bonus2 bSkillAtk,"GN_CARTCANNON",2*(Baselevel/20); bonus2 bSkillAtk,"GN_CART_TORNADO",2*(Baselevel/30);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28551,'Imperial_Glove','Imperial Glove',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus2 bAddClass,Class_All,5; bonus bVariableCastrate,-10; bonus bNoCastCancel;',NULL,NULL); +#REPLACE INTO `item_db_re` VALUES (28560,'Yin_Yang_Talisman','Yin Yang Talisman',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'50',0,0,'bonus bMatkRate,5; bonus bHit,20; bonus bAspdRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28564,'Valkyrie_Drop','Valkyrie Drop',4,20,NULL,30,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'.@r = getskilllv("PR_IMPOSITIO"); bonus bSPrecovRate,50; bonus bVariableCastrate,-10; bonus bDelayrate,-5; bonus2 bVariableCastrate,"AB_ORATIO",-50; bonus2 bFixedCastrate,"AB_ORATIO",-100; bonus2 bMagicAddSize,Size_All,3*.@r; bonus2 bSkillAtk,"PR_MAGNUS",3*(Baselevel/2); if (.@r == 5) skill "ALL_ODINS_POWER",2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28565,'Perverse_Demon_Mask','Perverse Demon Mask',4,20,NULL,60,NULL,0,NULL,1,0xFFFFFFFF,63,2,128,NULL,'80',0,0,'.@s = readparam(bStr); .@a = readparam(bAgi); .@d = readparam(bDex); .@v = readparam(bvit); .@l = readparam(bLuk); .@i = readparam(bInt); bonus bStr,3*(.@i/18); bonus bAgi,3*(.@l/18); bonus bVit,3*(.@d/18); bonus bInt,3*(.@s/18); bonus bDex,3*(.@v/18); bonus bLuk,3*(.@a/18); bonus bMaxHPrate,(.@d/18); bonus bFlee2,(.@a/18); bonus bMaxHPrate,(.@d/18); bonus bVariableCastrate,-(.@v/18); bonus bDelayrate,-(.@i/18); bonus2 bIgnoreDefClassRate,Class_All,15*(.@l/18); bonus2 bIgnoreMdefClassRate,Class_All,15*(.@s/18);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28573,'Emerald_Ring','Emerald Ring',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'.@a = getskilllv("AC_DOUBLE")/2; bonus bAgi,5+(.@a); bonus bVit,5+(.@a); bonus bDex,5+(.@a); bonus bBaseAtk,(20*.@a); bonus2 bSkillAtk,"AC_DOUBLE",Baselevel; bonus2 bSkillAtk,"AC_SHOWER",Baselevel; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",2*(Baselevel/10); bonus2 bSkillUseSP,"WM_RANDOMIZESPELL",18;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28575,'Verus_Core','Verus Core',4,10,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'80',0,0,'bonus bAspdRate,10; bonus2 bAddEle,Ele_All,5; bonus bPerfectHitAddRate,20;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28594,'Temporal_Ring','Temporal Ring',4,20,NULL,500,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bBaseAtk,50; bonus bMatk,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28598,'Powered_Chip','Powered Chip',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bStr,5; bonus bVit,5; bonus bDex,5; bonus2 bAddClass,Class_All,5; if (getskilllv("NC_ARMSCANNON") >= 3) bonus bDelayrate,-30; if (getskilllv("NC_NEUTRALBARRIER") >= 3) { bonus2 bVariableCastrate,"NC_ARMSCANNON",-50; bonus2 bVariableCastrate,"NC_FLAMELAUNCHER",-50; bonus2 bVariableCastrate,"NC_COLDSLOWER",-50; } if (getskilllv("NC_PILEBUNKER") >= 3) { bonus bStr,5; bonus bVit,5; bonus bDex,5; bonus bBaseAtk,100; } if (getskilllv("NC_RESEARCHFE") >= 5) bonus bNoMadoFuel;',NULL,NULL); #=================================================================== # More books #=================================================================== @@ -12657,6 +12510,8 @@ REPLACE INTO `item_db_re` VALUES (28605,'Book_of_Vicious_Mind','Book of Vicious REPLACE INTO `item_db_re` VALUES (28606,'Unity_Bible','Unity Bible',5,20,NULL,220,'42',NULL,1,1,0x00410100,63,2,2,3,'1',1,15,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28608,'Elemental_Origin','Elemental Origin',5,0,NULL,800,'120:150',NULL,1,2,0x00010000,56,2,2,3,'100',1,15,'.@r = getrefine(); bonus bInt,4; .@bonus = 10; if (.@r>=7) { .@bonus += 10; } if (.@r>=9) { .@bonus += 10; } bonus2 bSkillAtk,"MG_FIREBOLT",.@bonus; bonus2 bSkillAtk,"MG_COLDBOLT",.@bonus; bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@bonus;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28612,'Illusion_Apocalypse','Illusion Apocalypse',5,0,NULL,800,'170',NULL,1,2,0x00410100,63,2,2,4,'100',1,15,'.@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bSubDefEle,Ele_Holy,-30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28618,'Book_of_the_Sun_God','Book of the Sun God',5,10,NULL,500,'180:170',NULL,1,4,0x00010100,63,2,2,3,'100',1,15,'.@r = getrefine(); bonus bMaxHP,200*.@r; bonus bMaxSP,50*.@r; bonus bAspdRate,.@r; if (.@r>=10) bonus3 bAutoSpell,"WZ_METEOR",5,200; else if (.@r>=8) bonus3 bAutoSpell,"WZ_METEOR",4,150; else bonus3 bAutoSpell,"WZ_METEOR",3,100;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28619,'Prisoner_Diary','Prisoner\'s Diary',5,20,NULL,800,'210',NULL,1,2,0x00410100,63,2,2,3,'175',1,15,'.@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,20*(.@r/2); if (.@r>=9) .@val = 25; else if (.@r>=7) .@val = 10; if (.@r>=11) { bonus2 bAddEle,Ele_Dark,15; bonus2 bMagicAddEle,Ele_Dark,15; bonus2 bAddEle,Ele_Undead,15; bonus2 bMagicAddEle,Ele_Undead,15; } bonus2 bAddRace,RC_Demon,.@val; bonus2 bAddRace,RC_Undead,.@val; bonus2 bMagicAddRace,RC_Demon,.@val; bonus2 bMagicAddRace,RC_Undead,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28626,'Illusion_Tablet','Illusion Tablet',5,0,NULL,800,'170',NULL,1,2,0x00410100,63,2,2,4,'100',1,15,'.@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bAddEle,Ele_Poison,.@val; bonus2 bAddEle,Ele_Ghost,.@val; bonus2 bSubDefEle,Ele_Dark,-30;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28629,'Circuit_Board-OS','Circuit Board-OS',5,20,NULL,1200,'180',NULL,1,2,0x00410100,63,2,2,4,'130',1,15,'.@r = getrefine(); bonus2 bAddClass,Class_All,3; if (.@r >= 7) { bonus bAspdRate,7; if (.@r >= 9) { bonus2 bAddSize,Size_Small,20; bonus2 bAddSize,Size_Medium,20; if (.@r >= 11) { bonus bCritAtkRate,20; } } }',NULL,NULL); #REPLACE INTO `item_db_re` VALUES (28631,'Thousand_Sun','Thousand Sun',5,20,NULL,900,'160',NULL,1,2,0x00000000,63,2,2,4,'100',1,15,'.@r = getrefine(); bonus bBaseAtk,10*(.@r/2); bonus bMaxSPrate,2*(.@r/3); if (.@r >= 7) { bonus2 bSkillAtk,"SJ_PROMINENCEKICK",15; if (.@r >= 9) { bonus bAspdRate,10; if (.@r >= 11) { bonus2 bSkillAtk,"SJ_SOLARBURST",20; } } }',NULL,NULL); @@ -12669,6 +12524,7 @@ REPLACE INTO `item_db_re` VALUES (28702,'Ru_Gold_Ashura','Ru Gold Ashura',5,0,NU REPLACE INTO `item_db_re` VALUES (28703,'Infinity_Dagger','Infinity Dagger',5,10,NULL,500,'125:100',NULL,1,1,0x028F5EEF,56,2,2,4,'100',1,1,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (28705,'Crimson_Dagger','Crimson Dagger',5,20,NULL,550,'55',NULL,1,2,0x028F5EEF,63,2,2,3,'70',1,1,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28706,'Dagger_of_Vicious_Mind','Dagger of Vicious Mind',5,20,NULL,1050,'105:50',NULL,1,1,0x028F5EEF,63,2,2,4,'160',1,1,'bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28717,'Valkyrie_Knife','Valkyrie Knife',5,50,NULL,100,'50:50',NULL,1,4,0x228F5EEF,63,2,2,4,'70',1,1,'.@r = getrefine(); .@b = readparam(bDex)/10; if (.@r>7) { .@c = .@r-7; if (BaseClass==Job_Novice||BaseJob==Job_Mage) { bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; } } if (BaseClass==Job_Novice) { bonus bMaxHP,300+(200*.@c); bonus bMaxSP,300+(20*.@c); bonus bBaseAtk,100; bonus bMatk,150+(15*.@c); bonus bUseSPrate,-5; bonus bUnbreakableWeapon; bonus bInt,2*.@c; bonus bDex,(2*.@c)-(.@c*.@b); bonus bCritical,7*.@c; bonus bAspdRate,10*.@c; bonus bCritAtkRate,1*.@c; } if (BaseClass==Job_Thief) { bonus bMaxSP,100; bonus bMatk,150; bonus bCritAtkRate,.@r; } if (BaseClass==Job_Mage && .@c) { bonus bMaxHP,200*.@c; bonus bMaxSP,20*.@c; } if (BaseJob==Job_Hunter) { bonus bMaxHP,200; bonus bUseSPrate,-5; bonus bInt,2*.@r; bonus bDex,2*.@r; } if (BaseJob==Job_Bard||BaseJob==Job_Dancer) { bonus bBaseAtk,100; bonus bAspdRate,10*.@r; bonus bUnbreakableWeapon; bonus bDex,-1*(.@c*.@b); }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28721,'Monokage','Monokage',5,10,NULL,800,'100',NULL,1,2,0x20000000,63,2,2,3,'100',1,1,'.@r = getrefine(); bonus2 bSkillAtk,"KO_BAKURETSU",getskilllv("NJ_TOBIDOUGU"); if (.@r>=9) { bonus bLongAtkRate,5; } else if (.@r>=7) { bonus bLongAtkRate,2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28725,'Illusion_Moonlight_Dagger','Illusion Moonlight Dagger',5,20,NULL,700,'150',NULL,1,1,0x028F5EEE,63,2,2,4,'99',1,1,'bonus bMaxSPrate,10; .@val = 3; if (getrefine() >= 10) { .@val += 4; } bonus bSPDrainValue,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28745,'Illusion_Counter_Dagger','Illusion Counter Dagger',5,0,NULL,900,'170',NULL,1,2,0x00810204,63,2,2,4,'120',0,1,'.@r = getrefine(); bonus bCritical,90; bonus bCritAtkRate,(3*(.@r/2)); if (.@r >= 7) { bonus2 bAddClass,Class_All,5; if (.@r >= 9) { bonus2 bAddSize,Size_All,20; if (.@r >= 11) { bonus2 bAddEle,Ele_All,20; } } }',NULL,NULL); @@ -12693,8 +12549,14 @@ REPLACE INTO `item_db_re` VALUES (28910,'Rectangular_Large_Sleeve','Rectangular REPLACE INTO `item_db_re` VALUES (28913,'Ultralight_Magic_Shield','Ultralight Magic Shield',4,0,NULL,100,NULL,50,NULL,1,0xFFFFFFFF,63,2,32,NULL,'100',1,1,'.@r = getrefine(); .@val = 5; bonus2 bIgnoreDefClassRate,Class_Normal,10; if (.@r >= 9) { .@val += 5; } else if (.@r >= 7) { .@val += 2; } bonus bAspdRate,.@val; bonus2 bSubEle,Ele_Neutral,.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28915,'Bunker_Shield','Bunker Shield',4,20,NULL,3500,NULL,90,NULL,1,0xFFFFFFFF,63,2,32,NULL,'50',1,1,'.@r = getrefine(); if(.@r >= 5) { .@dmg = .@r - 4; } bonus2 bAddClass,Class_All,(4+.@dmg); bonus bAspdRate,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28916,'Gaia_Shield','Gaia Shield',4,20,NULL,2000,NULL,150,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'bonus bMdef,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bAddEle,Ele_Earth,5; bonus2 bMagicAddEle,Ele_Earth,5; .@r = getrefine(); if(.@r>=6) { bonus2 bSubEle,Ele_Earth,15; bonus2 bAddEle,Ele_Earth,10; bonus2 bMagicAddEle,Ele_Earth,10; } if(.@r>=8) { if(readparam(bStr)>=90) { bonus bBaseAtk,50; } if(readparam(bAgi)>=90) { bonus bAspdRate,5; } if(readparam(bVit)>=90) { bonus bHealPower2,10; bonus bAddItemHealRate,10; } if(readparam(bInt)>=90) { bonus bMatk,30; } if(readparam(bDex)>=90) { bonus bVariableCastrate,-5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,5; } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28918,'Shield_of_Chaos','Shield of Chaos',4,20,NULL,500,NULL,80,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'.@r = getrefine(); bonus bMdef,5; bonus2 bSubEle,Ele_Dark,25; if (.@r>=5) bonus bAspd,1; if (.@r>=7) bonus bAspd,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28920,'Diamond_Shield','Diamond Shield',4,20,NULL,1000,NULL,50,NULL,0,0xFFFFFFFF,63,2,32,NULL,'100',1,1,'.@r = getrefine(); if(BaseLevel>=150) { bonus bDef,100+(20*(.@r/3)); }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28921,'Anemos_Shield','Anemos Shield',4,20,NULL,3500,NULL,150,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'bonus bMdef,15; bonus2 bAddEle,Ele_Wind,5; bonus2 bMagicAddEle,Ele_wind,5; bonus2 bSubEle,Ele_Wind,10; bonus bUnbreakableShield; .@r = getrefine(); if (.@r>=6) { bonus2 bAddEle,Ele_Wind,10; bonus2 bMagicAddEle,Ele_wind,10; bonus2 bSubEle,Ele_Wind,15; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (28922,'Illusion_Sacred_Mission','Illusion Sacred Mission',4,0,NULL,1600,NULL,190,NULL,1,0x00004000,56,2,32,NULL,'120',1,4,'bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield; bonus2 bSkillAtk,"LG_EARTHDRIVE",(7*getrefine());',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28929,'Happy_Shield','Happy Shield',4,10,NULL,3500,NULL,150,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'bonus bMdef,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28941,'Excelion_Shield','Excelion Shield',4,20,NULL,1200,NULL,95,NULL,1,0xFFFFFFFF,63,2,32,NULL,'100',1,1,'.@r = getrefine(); bonus bMdef,5; bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bBaseAtk,30*(.@r/3); bonus bMatk,30*(.@r/3); if (readparam(Baselevel>=130)) { bonus bMaxHPrate,5; bonus bMaxSPrate,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28951,'Nero_Shield','Nero Shield',4,20,NULL,500,NULL,80,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'.@r = getrefine(); bonus bUnbreakableShield; bonus bMdef,5; bonus2 bSubEle,Ele_Water,10; bonus2 bAddEle,Ele_Water,5; bonus2 bMagicAddEle,Ele_Water,5; if (.@r>=6) { bonus2 bSubEle,Ele_Water,15; bonus2 bAddEle,Ele_Water,10; bonus2 bMagicAddEle,Ele_Water,10; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (28955,'Fotia_Shield','Fotia Shield',4,20,NULL,1000,NULL,120,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'.@r = getrefine(); bonus bUnbreakableShield; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bAddEle,Ele_Fire,5; bonus2 bMagicAddEle,Ele_Fire,5; if (.@r>=6) { bonus2 bSubEle,Ele_Fire,15; bonus2 bAddEle,Ele_Fire,10; bonus2 bMagicAddEle,Ele_Fire,10; } if (.@r>=8) { if (readparam(bStr)>=90) bonus bBaseAtk,50; if (readparam(bAgi)>=90) bonus bAspdRate,5; if (readparam(bInt)>=90) bonus bMatk,30; if (readparam(bVit)>=90) bonus bAddItemHealRate,10; if (readparam(bDex)>=90) bonus bVariableCastrate,-5; if (readparam(bLuk)>=90) bonus bCritAtkRate,5; }',NULL,NULL); #=================================================================== # Enchantment stones #=================================================================== @@ -13188,6 +13050,7 @@ REPLACE INTO `item_db_re` VALUES (31475,'C_Black_Fox_Ear_Ribbon','C Black Fox Ea REPLACE INTO `item_db_re` VALUES (31476,'C_Cherry_Blossom_Hat_YL','C Yellow Cherry Blossom Hat',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1727,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31477,'C_Straight_Long_BL_','Rental C Straight Long Black',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1725,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31478,'C_Eleanor_Wig_','C Eleanors Wig Lower',4,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,4096,NULL,'1',0,1502,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (31479,'C_Group_of_Stars','Costume Group of Stars',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1729,'hateffect(HAT_EF_MANYSTARS,true);',NULL,'hateffect(HAT_EF_MANYSTARS,false);'); REPLACE INTO `item_db_re` VALUES (31481,'C_TriColor_CatCup','C TriColor CatCup',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1731,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31484,'C_JP_EV13','C BearCompanion Female',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1736,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31485,'C_JP_EV14','C BearCompanion Male',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1737,NULL,NULL,NULL); @@ -13275,7 +13138,7 @@ REPLACE INTO `item_db_re` VALUES (31581,'C_Jack_Upper','C Jack Upper',4,0,NULL,0 REPLACE INTO `item_db_re` VALUES (31582,'C_Jirant_Circlet','C Jirant Circlet',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1644,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31583,'C_Will_O_Wisp_Lower','C Will O Wisp Lower',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,880,NULL,'sc_start SC_STRANGELIGHTS,INFINITE_TICK,0;','sc_end SC_STRANGELIGHTS;'); REPLACE INTO `item_db_re` VALUES (31586,'C_Poporing_Muffler','C Poporing Muffler',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1797,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (31588,'C_Snow_Flower','C Snow Flower',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1799,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (31588,'C_Snow_Flower','C Snow Flower',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1799,'hateffect(HAT_EF_SNOWFLAKE_TIARA,true);',NULL,'hateffect(HAT_EF_SNOWFLAKE_TIARA,false);'); REPLACE INTO `item_db_re` VALUES (31589,'C_Golden_Majestic_Goat','C Golden Majestic Goat',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1800,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31590,'C_Designer_Brush','C Designer\'s Brush',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1291,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31593,'C_Yellow_Scarf','C Yellow Scarf',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1170,NULL,NULL,NULL); @@ -13287,7 +13150,7 @@ REPLACE INTO `item_db_re` VALUES (31598,'C_Forest_Guide','C Forest Guide',4,0,NU REPLACE INTO `item_db_re` VALUES (31599,'C_Medium_Wave','C Medium Wave',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1803,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31600,'C_Kishu_Dog','C Kishu Dog',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',0,1804,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31601,'C_Under_Rim_Glasses_Blue','C Under Rim Glasses Blue',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'1',NULL,1805,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (31602,'C_Midgarts_Glory','C Rune Midgarts Glory',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',NULL,1807,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (31602,'C_Midgarts_Glory','C Rune Midgarts Glory',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1807,'hateffect(HAT_EF_MIDGARTS_GLORY,true);',NULL,'hateffect(HAT_EF_MIDGARTS_GLORY,false);'); REPLACE INTO `item_db_re` VALUES (31606,'C_Autumn_Headband','C Autumn Headband',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1119,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31607,'C_Cat_Ear_Witch_Hat','C Cat Ear Witch Hat',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1808,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31608,'C_Magicstone_of_Grace','C Magic Stone of Grace',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,7168,NULL,'1',0,1420,NULL,NULL,NULL); @@ -13296,18 +13159,20 @@ REPLACE INTO `item_db_re` VALUES (31610,'C_Yellow_Wizardry_Hat','C Yellow Wizard REPLACE INTO `item_db_re` VALUES (31611,'C_Snake_Lord_Stole','C Snake Lord Stole',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1810,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (31612,'C_Large_Sorcerer_Crown','C Large Sorcerer Crown',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1811,NULL,NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (31479,'C_Group_of_Stars','Costume Group of Stars',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1729,'hateffect(HAT_EF_MANYSTARS,true);',NULL,'hateffect(HAT_EF_MANYSTARS,false);'); -REPLACE INTO `item_db_re` VALUES (31588,'C_Snow_Flower','C Snow Flower',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1799,'hateffect(HAT_EF_SNOWFLAKE_TIARA,true);',NULL,'hateffect(HAT_EF_SNOWFLAKE_TIARA,false);'); -REPLACE INTO `item_db_re` VALUES (31602,'C_Midgarts_Glory','C Rune Midgarts Glory',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1807,'hateffect(HAT_EF_MIDGARTS_GLORY,true);',NULL,'hateffect(HAT_EF_MIDGARTS_GLORY,false);'); REPLACE INTO `item_db_re` VALUES (32005,'Illusion_Pole_Axe','Illusion Pole Axe',5,0,NULL,1500,'190',NULL,3,2,0x00004082,63,2,2,4,'120',1,4,'.@r = getrefine(); bonus bStr,3; bonus bInt,2; bonus bDex,2; if (.@r >= 13) { .@val = -2000; } else if (.@r >= 9) { .@val = -1000; } bonus2 bSkillCooldown,"RK_HUNDREDSPEAR",.@val;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32013,'Metal_Stick','Metal Stick',5,0,0,2000,'180',NULL,3,3,0x00004080,56,2,2,4,'150',1,4,'.@r = getrefine(); bonus2 bSkillAtk,"LG_CANNONSPEAR",10; if(.@r > 6){ bonus2 bSkillAtk,"LG_OVERBRAND",10 + (.@r > 8 ? 15 : 0); } if(.@r > 11){ bonus bDelayrate,-15; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32014,'Brute_Spear','Brute Spear',5,0,0,0,'150',NULL,3,0,0x00004080,56,2,2,4,'100',1,4,'.@r = getrefine(); bonus bUnbreakableWeapon; bonus2 bIgnoreDefRaceRate,RC_All,5*.@r; bonus2 bAddRace,RC_Player,80 + (.@r > 8 ? 20 : 0) + (.@r > 7 ? 35 : 0); if(.@r > 9){ bonus bMaxHPrate,15; bonus bMaxSPrate,15; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32019,'Boost_Lance-OS','Boost Lance-OS',5,20,NULL,1000,'190',NULL,3,2,0x00004000,56,2,2,4,'130',1,4,'.@r = getrefine(); .@aspd = 3; if (.@r >= 7) { .@aspd += 7; if (.@r >= 9) { .@dmg = 20; if (.@r >= 11) { .@dmg += 15; } bonus2 bSkillAtk,"LG_BANISHINGPOINT",.@dmg; } } bonus bAspdRate,.@aspd;',NULL,NULL); # +REPLACE INTO `item_db_re` VALUES (32203,'Accelerator_Chip','Accelerator Chip',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bAspdRate,5; /* Combo with Riot Chip not implemented yet. */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32204,'Immortal_Dog_Tag','Immortal Dog Tag',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bBaseAtk,50; bonus bMatk,50; bonus2 bSubRace,RC_Undead,4;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32206,'Prontera_Militia_Glove','Prontera Militia Glove',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bVit,5; bonus bMdef,5; bonus bAspdRate,5; bonus2 bSubRace,RC_DemiHuman,3; bonus2 bSubRace,RC_Player,3; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Earth,5; bonus2 bSubEle,Ele_Wind,5; bonus2 bSubEle,Ele_Fire,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32207,'Illusion_Booster_R','Illusion Booster R',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'130',0,0,'bonus2 bAddClass,Class_All,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32208,'Illusion_Booster_L','Illusion Booster L',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,128,NULL,'130',0,0,'bonus2 bAddClass,Class_All,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32209,'Illusion_Battle_chip_R','Illusion Battle chip R',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'130',0,0,'bonus bMatkRate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32210,'Illusion_Battle_chip_L','Illusion Battle chip L',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,128,NULL,'130',0,0,'bonus bMatkRate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32222,'Brooch_of_Hero','Brooch of Hero',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; if((eaclass()&EAJL_THIRD && BaseJob == Job_Knight) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Crusader))) { bonus bMaxHPrate,10; bonus2 bAddRace,RC_All,5; } if((eaclass()&EAJL_THIRD && BaseJob == Job_Priest) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Monk))) { bonus bAspdRate,10; bonus2 bAddRace,RC_All,5; } if((eaclass()&EAJL_THIRD && BaseJob == Job_Blacksmith) || ((eaclass()&EAJL_THIRD && BaseJob == Job_Alchemist))) { bonus bUseSPrate,-10; bonus2 bAddRace,RC_All,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32227,'Hrodvitnir\'s_Chain','Hrodvitnir\'s Chain',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bAspdRate,5; bonus bDelayrate,-5; skill "AL_TELEPORT",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32228,'Schmidt_Insignia_Power','King Schmidt\'s Power Insignia',4,0,0,200,NULL,10,NULL,1,0xFFFFFFFF,63,2,128,NULL,'150',NULL,NULL,'bonus2 bAddClass,Class_All,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32229,'Schmidt_Insignia_Divine_Power','King Schmidt\'s Divine Power Insignia',4,0,0,200,NULL,10,NULL,1,0xFFFFFFFF,63,2,128,NULL,'150',NULL,NULL,'bonus bMatkRate,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32230,'Schmidt_Insignia_Hundred_Lucks','King Schmidt\'s Hundred Lucks Insignia',4,0,0,200,NULL,10,NULL,1,0xFFFFFFFF,63,2,128,NULL,'150',NULL,NULL,'bonus bCritAtkRate,7;',NULL,NULL); @@ -13317,6 +13182,10 @@ REPLACE INTO `item_db_re` VALUES (32233,'Schmidt_Insignia_Celestial','King Schmi REPLACE INTO `item_db_re` VALUES (32237,'Celine\'s_Brooch','Celine\'s Brooch',4,10,NULL,500,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'100',0,0,'bonus bMatkRate,5; bonus bVariableCastrate,-10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32238,'Illusion_Morpheus\'s_Ring','Illusion Morpheus\'s Ring',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'130',0,0,'bonus bInt,3; bonus bMaxSPrate,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (32239,'Illusion_Morpheus\'s_Bracelet','Illusion Morpheus\'s Bracelet',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,128,NULL,'130',0,0,'bonus bInt,3; bonus bMaxSPrate,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32242,'Old_Detachment_Ring','Old Detachment Ring',4,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMdef,10; bonus2 bSubRace,RC_Player,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32258,'Ring_of_Jupiter','Ring of Jupiter',4,20,NULL,500,NULL,2,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'skill "AL_BLESSING",5; if (getequipid(EQI_ACC_R) == 32258) { bonus bBaseAtk,15*(readparam(bLuk)/10); bonus bMatk,15*(readparam(bLuk)/10); if (readparam(bLuk) >= 125) { bonus2 bAddClass,Class_Boss,15; bonus2 bMagicAddClass,Class_Boss,15; } } if (getequipid(EQI_ACC_L) == 32258) { bonus bMaxHPRate,2*(readparam(bVit)/10); bonus bMaxSPRate,2*(readparam(bVit)/10); if (readparam(bVit) >= 125) { bonus bDef,300; bonus bMdef,50; bonus2 bSubRace,RC_Player,3; } }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32262,'Rasen_Fuma_Orb','Rasen Fuma\'s Orb',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bStr,5; bonus bAgi,5; bonus bVit,5; bonus2 bAddClass,Class_All,5; if (getskilllv("KO_ZANZOU")>=5) { bonus2 bSkillAtk,"KO_HUUMARANKA",Baselevel/4; bonus2 bSkillAtk,"NJ_HUUMA",2*(Baselevel/4); } if (getskilllv("KO_KYOUGAKU")>=5) { bonus2 bSkillUseSP,"KO_HUUMARANKA",10; bonus2 bSkillCooldown,"KO_HUUMARANKA",-100; } if (getskilllv("KO_MUCHANAGE")==10) { bonus2 bHPDrainRate,50,1; } if (getskilllv("KO_MEIKYOUSISUI")>=5) { bonus bSPDrainValue,2; bonus2 bSkillCooldown,"KO_IZAYOI",-25000; } if (getskilllv("KO_SETSUDAN")>=5) { bonus2 bVariableCastrate,"KO_HUUMARANKA",-50; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (32263,'Shield_Ring','Shield Ring',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bStr,5; bonus bInt,5; bonus bDex,5; bonus2 bAddClass,Class_All,5; if (getskilllv("LG_EARTHDRIVE")==5) bonus bDelayrate,-30; if (getskilllv("LG_INSPIRATION")==5) bonus2 bSkillCooldown,"LG_EARTHDRIVE",-1500; if (getskilllv("CR_DEVOTION")==5) { bonus bStr,5; bonus bInt,5; bonus bDex,5; bonus bBaseAtk,100; } if (getskilllv("LG_PINPOINTATTACK")==5) { bonus2 bSkillVariableCast,"LG_EARTHDRIVE",-500; bonus2 bSkillUseSP,"LG_EARTHDRIVE",25; }',NULL,NULL); #=================================================================== # More Guns #=================================================================== diff --git a/sql-files/main.sql b/sql-files/main.sql index fbbff0cf99e..8574ce9b91a 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -731,7 +731,7 @@ CREATE TABLE IF NOT EXISTS `inventory` ( -- CREATE TABLE IF NOT EXISTS `ipbanlist` ( - `list` varchar(255) NOT NULL default '', + `list` varchar(15) NOT NULL default '', `btime` datetime NOT NULL, `rtime` datetime NOT NULL, `reason` varchar(255) NOT NULL default '', @@ -986,18 +986,6 @@ CREATE TABLE IF NOT EXISTS `quest` ( PRIMARY KEY (`char_id`,`quest_id`) ) ENGINE=MyISAM; --- --- Table structure for table `ragsrvinfo` --- - -CREATE TABLE IF NOT EXISTS `ragsrvinfo` ( - `index` int(11) NOT NULL default '0', - `name` varchar(255) NOT NULL default '', - `exp` int(11) unsigned NOT NULL default '0', - `jexp` int(11) unsigned NOT NULL default '0', - `drop` int(11) unsigned NOT NULL default '0' -) ENGINE=MyISAM; - -- -- Table structure for table `skill` -- diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql index df1ec583d7f..c10a14c7a37 100644 --- a/sql-files/mob_db.sql +++ b/sql-files/mob_db.sql @@ -5,7 +5,7 @@ DROP TABLE IF EXISTS `mob_db`; CREATE TABLE `mob_db` ( `ID` mediumint(9) unsigned NOT NULL default '0', - `Sprite` text NOT NULL, + `Sprite` varchar(24) NOT NULL, `kName` text NOT NULL, `iName` text NOT NULL, `LV` tinyint(6) unsigned NOT NULL default '0', @@ -61,7 +61,8 @@ CREATE TABLE `mob_db` ( `Drop9per` smallint(9) unsigned NOT NULL default '0', `DropCardid` smallint(5) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', - PRIMARY KEY (`ID`) + PRIMARY KEY (`ID`), + UNIQUE KEY (`Sprite`) ) ENGINE=MyISAM; # Monster Database diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql index 7b498dc5170..bb1179ce5c7 100644 --- a/sql-files/mob_db2.sql +++ b/sql-files/mob_db2.sql @@ -5,7 +5,7 @@ DROP TABLE IF EXISTS `mob_db2`; CREATE TABLE `mob_db2` ( `ID` mediumint(9) unsigned NOT NULL default '0', - `Sprite` text NOT NULL, + `Sprite` varchar(24) NOT NULL, `kName` text NOT NULL, `iName` text NOT NULL, `LV` tinyint(6) unsigned NOT NULL default '0', @@ -61,7 +61,8 @@ CREATE TABLE `mob_db2` ( `Drop9per` smallint(9) unsigned NOT NULL default '0', `DropCardid` smallint(5) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', - PRIMARY KEY (`ID`) + PRIMARY KEY (`ID`), + UNIQUE KEY (`Sprite`) ) ENGINE=MyISAM; # Monster Additional Database diff --git a/sql-files/mob_db2_re.sql b/sql-files/mob_db2_re.sql index a5fe826a103..2d3f5edcb01 100644 --- a/sql-files/mob_db2_re.sql +++ b/sql-files/mob_db2_re.sql @@ -5,7 +5,7 @@ DROP TABLE IF EXISTS `mob_db2_re`; CREATE TABLE `mob_db2_re` ( `ID` mediumint(9) unsigned NOT NULL default '0', - `Sprite` text NOT NULL, + `Sprite` varchar(24) NOT NULL, `kName` text NOT NULL, `iName` text NOT NULL, `LV` tinyint(6) unsigned NOT NULL default '0', @@ -61,7 +61,8 @@ CREATE TABLE `mob_db2_re` ( `Drop9per` smallint(9) unsigned NOT NULL default '0', `DropCardid` smallint(5) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', - PRIMARY KEY (`ID`) + PRIMARY KEY (`ID`), + UNIQUE KEY (`Sprite`) ) ENGINE=MyISAM; # Monsters Additional Database diff --git a/sql-files/mob_db_re.sql b/sql-files/mob_db_re.sql index 6bf8f25ebb8..ef1d56e87f1 100644 --- a/sql-files/mob_db_re.sql +++ b/sql-files/mob_db_re.sql @@ -5,7 +5,7 @@ DROP TABLE IF EXISTS `mob_db_re`; CREATE TABLE `mob_db_re` ( `ID` mediumint(9) unsigned NOT NULL default '0', - `Sprite` text NOT NULL, + `Sprite` varchar(24) NOT NULL, `kName` text NOT NULL, `iName` text NOT NULL, `LV` tinyint(6) unsigned NOT NULL default '0', @@ -61,7 +61,8 @@ CREATE TABLE `mob_db_re` ( `Drop9per` smallint(9) unsigned NOT NULL default '0', `DropCardid` smallint(5) unsigned NOT NULL default '0', `DropCardper` smallint(9) unsigned NOT NULL default '0', - PRIMARY KEY (`ID`) + PRIMARY KEY (`ID`), + UNIQUE KEY (`Sprite`) ) ENGINE=MyISAM; # Monster Database @@ -2431,12 +2432,12 @@ REPLACE INTO `mob_db_re` VALUES (3203,'INORGANIC_JAKK','Inorganic Pumpkin','Inor #REPLACE INTO `mob_db_re` VALUES (3205,'PIXY_BLUE_PORING','Poring','Poring',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12418,1000,12422,1500,12425,1500,12208,500,22553,1000,12919,1000,16640,5,0,0,0,0,0,0); #REPLACE INTO `mob_db_re` VALUES (3206,'LITTLE_GOLDPORING','Poring','Poring',100,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); #REPLACE INTO `mob_db_re` VALUES (3207,'E_AQUA_ELEMENTAL','Poring','Poring',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x83,200,0,0,0,0,0,0,0,0,0,0,969,3000,7444,3000,22537,1000,6635,1000,18570,500,19539,500,0,0,0,0,0,0,0,0); -REPLACE INTO `mob_db_re` VALUES (3208,'V_EREMES','V Eremes','Eremes Guille',179,2380000,1,70000,35000,1,5333,2000,180,100,150,190,60,70,200,80,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6816,100,19973,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4684,1); -REPLACE INTO `mob_db_re` VALUES (3209,'V_MAGALETA','V Magaleta','Margaretha Sorin',177,2448000,1,80000,40000,1,1667,7000,160,400,130,80,120,160,150,70,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6819,100,19962,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4685,1); -REPLACE INTO `mob_db_re` VALUES (3210,'V_KATRINN','V Katrinn','Kathryne Cheiron',177,2040000,1,60000,30000,1,1333,6000,110,400,110,80,60,200,210,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6817,100,19968,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4686,1); -REPLACE INTO `mob_db_re` VALUES (3211,'V_SHECIL','V Shecil','Shecil Damon',179,2142000,1,70000,35000,14,4667,2000,100,100,130,130,70,80,300,50,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,20392,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4687,1); -REPLACE INTO `mob_db_re` VALUES (3212,'V_HARWORD','V Harword','Harword Alt-Eisen',177,2720000,1,100000,50000,1,3333,3000,200,100,160,80,200,60,130,50,10,12,1,7,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6815,100,19963,100,19964,100,22679,10,22687,10,0,0,0,0,0,0,0,0,4688,1); -REPLACE INTO `mob_db_re` VALUES (3213,'V_SEYREN','V Seyren','Seyren Windsor',179,2448000,1,80000,40000,1,6000,4000,400,200,170,100,200,50,200,60,10,12,1,6,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6814,100,19961,100,0,0,22679,10,22687,10,0,0,0,0,0,0,0,0,4689,1); +REPLACE INTO `mob_db_re` VALUES (3208,'V_EREMES','V Eremes','Eremes Guille',179,2380000,1,70000,35000,1,5333,2000,180,100,150,190,60,70,200,80,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6816,500,20391,50,19973,50,4684,1); +REPLACE INTO `mob_db_re` VALUES (3209,'V_MAGALETA','V Magaleta','Margaretha Sorin',177,2448000,1,80000,40000,1,1667,7000,160,400,130,80,120,160,150,70,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6819,500,19962,50,4685,1); +REPLACE INTO `mob_db_re` VALUES (3210,'V_KATRINN','V Katrinn','Kathryne Cheiron',177,2040000,1,60000,30000,1,1333,6000,110,400,110,80,60,200,210,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6817,500,19968,50,4686,1); +REPLACE INTO `mob_db_re` VALUES (3211,'V_SHECIL','V Shecil','Shecil Damon',179,2142000,1,70000,35000,14,4667,2000,100,100,130,130,70,80,300,50,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19974,50,4687,1); +REPLACE INTO `mob_db_re` VALUES (3212,'V_HARWORD','V Harword','Harword Alt-Eisen',177,2720000,1,100000,50000,1,3333,3000,200,100,160,80,200,60,130,50,10,12,1,7,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6815,500,19963,50,19964,50,4688,1); +REPLACE INTO `mob_db_re` VALUES (3213,'V_SEYREN','V Seyren','Seyren Windsor',179,2448000,1,80000,40000,1,6000,4000,400,200,170,100,200,50,200,60,10,12,1,6,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6814,500,19961,50,4689,1); REPLACE INTO `mob_db_re` VALUES (3214,'V_G_EREMES','V G Eremes','Assassin Cross Eremes',189,2100000,1,0,0,1,8000,4000,360,200,300,380,120,140,400,160,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db_re` VALUES (3215,'V_G_MAGALETA','V G Magaleta','High Priest Margaretha',187,2400000,1,0,0,1,2500,14000,320,800,260,160,240,320,300,140,10,12,1,7,86,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db_re` VALUES (3216,'V_G_KATRINN','V G Katrinn','High Wizard Kathryne',187,1800000,1,0,0,1,2000,12000,220,800,220,160,120,400,420,100,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -2449,13 +2450,13 @@ REPLACE INTO `mob_db_re` VALUES (3222,'V_B_SHECIL','Ranger Shecil','Ranger Cecil REPLACE INTO `mob_db_re` VALUES (3223,'V_B_HARWORD','Mechanic Harword','Mechanic Howard',187,18000000,1,3000000,3000000,1,10000,6000,400,200,320,160,400,120,260,100,10,12,1,7,81,0x6283695,100,76,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4677,1); REPLACE INTO `mob_db_re` VALUES (3224,'V_B_KATRINN','Warlock Katrinn','Warlock Kathryne',187,10800000,1,3000000,3000000,1,4000,12000,220,800,220,160,120,400,420,100,10,12,1,7,88,0x6283695,100,576,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4678,1); REPLACE INTO `mob_db_re` VALUES (3225,'V_B_SEYREN','Rune Knight Seyren','Rune Knight Seyren',189,14400000,1,3000000,3000000,1,9000,8000,800,400,340,200,400,100,400,120,10,12,1,7,83,0x6283695,100,76,384,288,0,0,0,0,0,0,0,20748,3000,20748,500,20748,500,0,0,0,0,0,0,0,0,0,0,0,0,4679,1); -REPLACE INTO `mob_db_re` VALUES (3226,'V_RANDEL','V Randel','Randel Lawrence',178,2550000,1,100000,50000,1,4000,2000,300,200,200,80,200,50,190,70,10,12,1,7,86,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6814,100,20393,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4690,1); -REPLACE INTO `mob_db_re` VALUES (3227,'V_FLAMEL','V Flamel','Flamel Emule',176,2312000,1,80000,40000,1,3333,5000,130,100,140,80,70,150,200,50,10,12,1,7,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6815,100,19967,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4691,1); -REPLACE INTO `mob_db_re` VALUES (3228,'V_CELIA','V Celia','Celia Alde',178,2295000,1,90000,45000,1,2000,5000,110,800,140,100,60,150,120,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,6817,100,19970,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4692,1); -REPLACE INTO `mob_db_re` VALUES (3229,'V_CHEN','V Chen','Chen Liu',178,2261000,1,70000,35000,1,5333,3000,180,100,150,80,90,130,200,60,10,12,1,6,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6819,100,19969,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4693,1); -REPLACE INTO `mob_db_re` VALUES (3230,'V_GERTIE','V Gertie','Gertie Wie',178,2040000,1,80000,40000,1,4667,2500,160,100,180,130,60,50,210,50,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6816,100,19965,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4694,1); -REPLACE INTO `mob_db_re` VALUES (3231,'V_ALPHOCCIO','V Alphoccio','Alphoccio Basil',176,2040000,1,60000,30000,1,2667,6000,120,100,120,150,70,200,150,90,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,19966,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4696,1); -REPLACE INTO `mob_db_re` VALUES (3232,'V_TRENTINI','V Trentini','Trentini',176,2040000,1,60000,30000,2,2667,6000,100,100,110,150,70,200,150,80,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,6818,100,19971,100,22679,10,22687,10,0,0,0,0,0,0,0,0,0,0,4695,1); +REPLACE INTO `mob_db_re` VALUES (3226,'V_RANDEL','V Randel','Randel Lawrence',178,2550000,1,100000,50000,1,4000,2000,300,200,200,80,200,50,190,70,10,12,1,7,86,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6814,500,19972,50,4690,1); +REPLACE INTO `mob_db_re` VALUES (3227,'V_FLAMEL','V Flamel','Flamel Emule',176,2312000,1,80000,40000,1,3333,5000,130,100,140,80,70,150,200,50,10,12,1,7,83,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6815,500,19967,50,4691,1); +REPLACE INTO `mob_db_re` VALUES (3228,'V_CELIA','V Celia','Celia Alde',178,2295000,1,90000,45000,1,2000,5000,110,800,140,100,60,150,120,50,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6817,500,19970,50,4692,1); +REPLACE INTO `mob_db_re` VALUES (3229,'V_CHEN','V Chen','Chen Liu',178,2261000,1,70000,35000,1,5333,3000,180,100,150,80,90,130,200,60,10,12,1,6,81,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6819,500,19969,50,4693,1); +REPLACE INTO `mob_db_re` VALUES (3230,'V_GERTIE','V Gertie','Gertie Wie',178,2040000,1,80000,40000,1,4667,2500,160,100,180,130,60,50,210,50,10,12,1,6,85,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6816,500,19965,50,4694,1); +REPLACE INTO `mob_db_re` VALUES (3231,'V_ALPHOCCIO','V Alphoccio','Alphoccio Basil',176,2040000,1,60000,30000,1,2667,6000,120,100,120,150,70,200,150,90,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19966,50,4696,1); +REPLACE INTO `mob_db_re` VALUES (3232,'V_TRENTINI','V Trentini','Trentini',176,2040000,1,60000,30000,2,2667,6000,100,100,110,150,70,200,150,80,10,12,1,7,84,0x6203695,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25131,1000,22687,500,23016,500,6818,500,19971,50,4695,1); REPLACE INTO `mob_db_re` VALUES (3233,'V_G_RANDEL','V G Randel','Paladin Randel',188,3000000,1,0,0,1,12000,4000,600,400,400,160,400,100,380,140,10,12,1,7,86,0x6203695,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db_re` VALUES (3234,'V_G_FLAMEL','V G Flamel','Creator Flamel',186,2400000,1,0,0,1,5000,10000,260,200,280,160,140,300,400,100,10,12,1,7,83,0x6203695,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); REPLACE INTO `mob_db_re` VALUES (3235,'V_G_CELIA','V G Celia','Sorcerer Celia',188,4050000,1,0,0,1,3000,10000,220,800,280,200,120,300,240,100,10,12,1,7,88,0x6203695,100,576,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); @@ -3793,6 +3794,121 @@ REPLACE INTO `mob_db_re` VALUES (3790,'SWEETS_DROPS','Sweets Drops','Sweets Drop #20583,MD_C_WHITEKNIGHT_G #20584,MD_C_KHALITZBURG_G #20585,MD_C_RAY_ARCHER_G +#20586,NYA_BRZ +#20587,WITCH_BRZ +#20588,ELDER_BRZ +#20589,SWING_TALE +#20590,RU_E_ECLIPS +#20591,PAPARE +#20592,POISONOUS +#20593,TOXIOUS +#20594,MINERAL_G +#20595,MINERAL_R +#20596,MINERAL_W +#20597,MINERAL_P +#20598,JEWELIANT +#20599,G_JEWELIANT +#20600,JEWEL +#20601,JUNGOLIANT +#20602,PORCELLIO_W +#20603,ABYSSMAN +#20604,ANGELGOLT +#20605,ANGELGOLT2 +#20606,HOLY_FRUS +#20607,HOLY_SKOGUL +#20608,PLASMA_ARCH +#20609,PLASMA_SPT +#20610,REGINLEIF +#20611,INGRID +#20612,FERUS_P +#20613,TREASURE_MIMIC +#20614,ACIDUS_B +#20615,ACIDUS_S +#20616,BONE_FERUS +#20617,BONE_ACIDUS +#20618,BONE_DETALE +#20619,GLOOMUNDERNIGHT2 +#20620,MD_REDPEPPER +#20621,MD_REDPEPPER_H +#20622,MD_ASSISTANT +#20623,MD_ASSISTANT_H +#20624,MD_DRY_RAFFLESIA +#20625,MD_DRY_RAFFLESIA_H +#20626,MD_ALNOLDI_EX +#20627,MD_ALNOLDI_EX_H +#20628,EP17_2_ALPHA_MASTER +#20629,EP17_2_BETA_BASIC +#20630,EP17_2_BETA_BASIC_NG +#20631,MD_BETA_SCISSORE_NG +#20632,MD_BETA_SCISSORE_NG_H +#20633,EP17_2_BETA_CLEANER_A +#20634,EP17_2_BETA_CLEANER_B +#20635,EP17_2_BETA_BATHS_A +#20636,EP17_2_BETA_BATHS_B +#20637,EP17_2_BETA_ITEMKEEPER +#20638,EP17_2_BETA_GUARDS +#20639,EP17_2_BETA_GUARDS_NG +#20640,EP17_2_OMEGA_CLEANER +#20641,EP17_2_OMEGA_CLEANER_NG +#20642,MD_SWEETY +#20643,EP17_2_PHEN +#20644,EP17_2_MARC +#20645,EP17_2_SWORD_FISH +#20646,EP17_2_PIRANHA +#20647,EP17_2_BATH_MERMAID +#20648,EP17_2_PITAYA_BOSS +#20649,EP17_2_PITAYA_R +#20650,EP17_2_PITAYA_Y +#20651,EP17_2_PITAYA_B +#20652,EP17_2_PITAYA_V +#20653,EP17_2_PITAYA_G +#20654,G_PITAYA_R +#20655,G_PITAYA_Y +#20656,G_PITAYA_B +#20657,G_PITAYA_V +#20658,G_PITAYA_G +#20659,MD_PITAYA_BOSS +#20660,MD_PITAYA_R +#20661,MD_PITAYA_Y +#20662,MD_PITAYA_B +#20663,MD_PITAYA_V +#20664,MD_PITAYA_G +#20665,MD_VERPORTA +#20666,MD_VERPORTE_H +#20667,MD_SILVA_PAPILIA +#20668,MD_GRAN_PAPILIA +#20669,MD_PAPILA +#20670,MD_PAPILA_H +#20671,MD_PAPILA_RUBA +#20672,MD_PAPILA_RUBA_H +#20673,MD_PAPILA_RUBA2 +#20674,MD_PAPILA_CAE +#20675,MD_PAPILA_CAE_H +#20676,MD_PAPILA_CAE2 +#20677,MD_ARIES +#20678,MD_ARIES_H +#20679,EP17_2_GUARDIAN_PARTS +#20680,EP17_2_HEART_HUNTER +#20681,G_EP17_2_HEART_HUNTER +#20682,EP17_2_HEART_HUNTER_H +#20683,EP17_2_BOOKWORM +#20684,EP17_2_ROAMING_SPLBOOK +#20685,EP17_2_VENENUM3 +#20686,EP17_2_CRAMP +#20687,EP17_2_WATERFALL +#20688,EP17_2_BELLARE3 +#20689,EP17_2_DOLOR3 +#20690,EP17_2_PLASMA_Y +#20691,EP17_2_PLAGA3 +#20692,EP17_2_SANARE3 +#20693,EP17_2_PLASMA_R +#20694,EP17_2_PLASMA_R2 +#20695,E_GARLING +#20696,EP17_2_CHILD_ADMIN1 +#20697,EP17_2_CHILD_ADMIN2 +#20698,G_ASSISTANT +#20699,G_BELLARE3 +#20700,G_BETA_SCISSORE_NG #31999,HUNTING_GID_DEFAULT #32000,MONSTER_2ND_END diff --git a/sql-files/mob_skill_db_re.sql b/sql-files/mob_skill_db_re.sql index ce9cb758e02..9a3a72ac7e9 100644 --- a/sql-files/mob_skill_db_re.sql +++ b/sql-files/mob_skill_db_re.sql @@ -8997,51 +8997,51 @@ REPLACE INTO `mob_skill_db_re` VALUES (2541,'Faceworm Larva@NPC_POISONATTACK','a #REPLACE INTO `mob_skill_db_re` VALUES (2542,'Irene Elder@NPC_MILLENNIUMSHIELD','chase',707,1,5000,1000,30000,'no','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); #Geffen Magic Tournament -REPLACE INTO `mob_skill_db_re` VALUES (2549,'[PH] 게펜마법사1@MG_FIREBOLT','attack',19,5,3000,1000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2549,'[PH] 게펜마법사1@MG_FIREWALL','attack',18,1,3000,2000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2550,'[PH] 게펜마법사2@MG_FROSTDIVER','attack',15,5,3000,1000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2550,'[PH] 게펜마법사2@MG_THUNDERSTORM','attack',21,3,3000,2000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2551,'[PH] 게펜마법사3 1@NPC_COMBOATTACK','attack',171,2,5000,0,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2551,'[PH] 게펜마법사3 1@MG_STONECURSE','attack',16,5,5000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2551,'[PH] 게펜마법사3 1@TF_POISON','attack',52,3,3000,0,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2552,'[PH] 게펜마법사3 2@BS_HAMMERFALL','attack',110,5,5000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2552,'[PH] 게펜마법사3 2@NPC_POWERUP','attack',349,5,5000,1000,25000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2553,'[PH] 게펜마법사3 3@ASC_BREAKER','attack',379,1,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2553,'[PH] 게펜마법사3 3@AS_VENOMDUST','attack',140,10,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2554,'[PH] 게펜마법사4@AL_INCAGI','idle',29,10,10000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2554,'[PH] 게펜마법사4@AL_INCAGI','attack',29,10,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2554,'[PH] 게펜마법사4@AL_DECAGI','attack',30,48,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2554,'[PH] 게펜마법사4@NPC_COMBOATTACK','attack',171,3,5000,0,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2555,'[PH] 게펜마법사5@MG_COLDBOLT','attack',14,5,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2555,'[PH] 게펜마법사5@WZ_STORMGUST','attack',89,1,3000,3000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2555,'[PH] 게펜마법사5@WZ_FROSTNOVA','attack',88,5,3000,1000,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2556,'[PH] 게펜마법사6@CR_AUTOGUARD','attack',249,5,3000,500,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2556,'[PH] 게펜마법사6@CR_GRANDCROSS','attack',254,5,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2557,'[PH] 게펜마법사7@NPC_BLEEDING','attack',660,5,5000,0,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2557,'[PH] 게펜마법사7@NPC_WIDESOULDRAIN','attack',680,3,3000,500,10000,'no','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2557,'[PH] 게펜마법사7@NPC_COMBOATTACK','attack',171,10,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2557,'[PH] 게펜마법사7@NPC_INVISIBLE','attack',353,1,2000,1000,60000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2558,'[PH] 게펜마법사8@LK_SPIRALPIERCE','attack',397,5,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2558,'[PH] 게펜마법사8@SM_ENDURE','attack',8,10,3000,0,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2558,'[PH] 게펜마법사8@SM_MAGNUM','attack',7,25,3000,500,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -#REPLACE INTO `mob_skill_db_re` VALUES (2558,'[PH] 게펜마법사8@NPC_MILLENNIUMSHIELD','attack',707,1,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2559,'[PH] 게펜마법사9@NPC_HOLYATTACK','attack',189,10,3000,500,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2559,'[PH] 게펜마법사9@AL_HEAL','attack',28,8,3000,0,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2559,'[PH] 게펜마법사9@AL_PNEUMA','attack',25,1,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2560,'[PH] 게펜마법사10@NPC_MENTALBREAKER','attack',159,4,2000,1500,10000,'no','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2560,'[PH] 게펜마법사10@AC_DOUBLE','attack',46,5,3000,500,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2560,'[PH] 게펜마법사10@HT_ANKLESNARE','attack',117,1,2000,1000,10000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2560,'[PH] 게펜마법사10@HT_FLASHER','attack',120,1,2000,1000,10000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@MG_FIREBOLT','attack',19,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@MG_COLDBOLT','attack',14,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@MG_LIGHTNINGBOLT','attack',20,5,1000,500,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@WZ_EARTHSPIKE','attack',90,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@PF_SPIDERWEB','attack',405,1,1000,1000,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2561,'[PH] 게펜마법사11@RG_STRIPSHIELD','attack',216,5,3000,1000,30000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2562,'[PH] 게펜마법사12@NPC_SLOWCAST','attack',672,5,1000,1000,15000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2562,'[PH] 게펜마법사12@MG_SOULSTRIKE','attack',13,10,1000,500,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2562,'[PH] 게펜마법사12@WZ_FIREPILLAR','attack',80,5,3000,500,5000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `mob_skill_db_re` VALUES (2562,'[PH] 게펜마법사12@WZ_VERMILION','attack',85,5,1000,2000,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2549,'Arhi@MG_FIREBOLT','attack',19,5,3000,1000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2549,'Arhi@MG_FIREWALL','attack',18,1,3000,2000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2550,'Dio Anemos@MG_FROSTDIVER','attack',15,5,3000,1000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2550,'Dio Anemos@MG_THUNDERSTORM','attack',21,3,3000,2000,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2551,'Geffen Shoplifter@NPC_COMBOATTACK','attack',171,2,5000,0,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2551,'Geffen Shoplifter@MG_STONECURSE','attack',16,5,5000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2551,'Geffen Shoplifter@TF_POISON','attack',52,3,3000,0,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2552,'Geffen Bully@BS_HAMMERFALL','attack',110,5,5000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2552,'Geffen Bully@NPC_POWERUP','attack',349,5,5000,1000,25000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2553,'Geffen Gang Member@ASC_BREAKER','attack',379,1,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2553,'Geffen Gang Member@AS_VENOMDUST','attack',140,10,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2554,'Faymont@AL_INCAGI','idle',29,10,10000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2554,'Faymont@AL_INCAGI','attack',29,10,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2554,'Faymont@AL_DECAGI','attack',30,48,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2554,'Faymont@NPC_COMBOATTACK','attack',171,3,5000,0,3000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2555,'Ordre@MG_COLDBOLT','attack',14,5,3000,1000,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2555,'Ordre@WZ_STORMGUST','attack',89,1,3000,3000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2555,'Ordre@WZ_FROSTNOVA','attack',88,5,3000,1000,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2556,'Blut Hase@CR_AUTOGUARD','attack',249,5,3000,500,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2556,'Blut Hase@CR_GRANDCROSS','attack',254,5,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2557,'Kuro Akuma@NPC_BLEEDING','attack',660,5,5000,0,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2557,'Kuro Akuma@NPC_WIDESOULDRAIN','attack',680,3,3000,500,10000,'no','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2557,'Kuro Akuma@NPC_COMBOATTACK','attack',171,10,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2557,'Kuro Akuma@NPC_INVISIBLE','attack',353,1,2000,1000,60000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2558,'Ifodes@LK_SPIRALPIERCE','attack',397,5,3000,1000,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2558,'Ifodes@SM_ENDURE','attack',8,10,3000,0,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2558,'Ifodes@SM_MAGNUM','attack',7,25,3000,500,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +#REPLACE INTO `mob_skill_db_re` VALUES (2558,'Ifodes@NPC_MILLENNIUMSHIELD','attack',707,1,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2559,'Licheniyes@NPC_HOLYATTACK','attack',189,10,3000,500,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2559,'Licheniyes@AL_HEAL','attack',28,8,3000,0,5000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2559,'Licheniyes@AL_PNEUMA','attack',25,1,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2560,'Odoric@NPC_MENTALBREAKER','attack',159,4,2000,1500,10000,'no','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2560,'Odoric@AC_DOUBLE','attack',46,5,3000,500,5000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2560,'Odoric@HT_ANKLESNARE','attack',117,1,2000,1000,10000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2560,'Odoric@HT_FLASHER','attack',120,1,2000,1000,10000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@MG_FIREBOLT','attack',19,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@MG_COLDBOLT','attack',14,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@MG_LIGHTNINGBOLT','attack',20,5,1000,500,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@WZ_EARTHSPIKE','attack',90,5,1000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@PF_SPIDERWEB','attack',405,1,1000,1000,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2561,'Ju@RG_STRIPSHIELD','attack',216,5,3000,1000,30000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2562,'Dwigh@NPC_SLOWCAST','attack',672,5,1000,1000,15000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2562,'Dwigh@MG_SOULSTRIKE','attack',13,10,1000,500,10000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2562,'Dwigh@WZ_FIREPILLAR','attack',80,5,3000,500,5000,'yes','around2','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `mob_skill_db_re` VALUES (2562,'Dwigh@WZ_VERMILION','attack',85,5,1000,2000,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `mob_skill_db_re` VALUES (2563,'Fei Kanabian@AM_DEMONSTRATION','attack',229,5,2000,500,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `mob_skill_db_re` VALUES (2563,'Fei Kanabian@AM_ACIDTERROR','attack',230,5,2000,1000,15000,'yes','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `mob_skill_db_re` VALUES (2563,'Fei Kanabian@AM_POTIONPITCHER','attack',231,4,3000,1000,10000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql-files/upgrades/upgrade_20190309.sql b/sql-files/upgrades/upgrade_20190309.sql index 26244e53ac2..21a237673a2 100644 --- a/sql-files/upgrades/upgrade_20190309.sql +++ b/sql-files/upgrades/upgrade_20190309.sql @@ -10,3 +10,32 @@ WHERE AND ( `i`.`card1` | ( `i`.`card2` << 16 ) ) = `c`.`pet_id` ; + +INSERT INTO `inventory`( `char_id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3` ) +SELECT + `p`.`char_id`, -- Character ID + `p`.`egg_id`, -- Egg Item ID + '1', -- Amount + '0', -- Equip + '1', -- Identify + '0', -- Refine + '1', -- Attribute + '256', -- Card0 + ( `p`.`pet_id` & 0xFFFF ), -- Card1 + ( ( `p`.`pet_id` >> 16 ) & 0xFFFF ), -- Card2 + '0' -- Card3 +FROM `pet` `p` +LEFT JOIN `inventory` `i` +ON + `i`.`char_id` = `p`.`char_id` +AND + `i`.`nameid` = `p`.`egg_id` +AND + `i`.`card0` = '256' +AND + ( `i`.`card1` | ( `i`.`card2` << 16 ) ) = `p`.`pet_id` +WHERE + `p`.`incubate` = '0' +AND + `i`.`id` IS NULL +; diff --git a/sql-files/upgrades/upgrade_20190628.sql b/sql-files/upgrades/upgrade_20190628.sql new file mode 100644 index 00000000000..ad2906c5253 --- /dev/null +++ b/sql-files/upgrades/upgrade_20190628.sql @@ -0,0 +1,19 @@ +ALTER TABLE `mob_db` + MODIFY `Sprite` varchar(24) NOT NULL, + ADD UNIQUE KEY (`Sprite`) +; + +ALTER TABLE `mob_db_re` + MODIFY `Sprite` varchar(24) NOT NULL, + ADD UNIQUE KEY (`Sprite`) +; + +ALTER TABLE `mob_db2` + MODIFY `Sprite` varchar(24) NOT NULL, + ADD UNIQUE KEY (`Sprite`) +; + +ALTER TABLE `mob_db2_re` + MODIFY `Sprite` varchar(24) NOT NULL, + ADD UNIQUE KEY (`Sprite`) +; diff --git a/sql-files/upgrades/upgrade_20190814.sql b/sql-files/upgrades/upgrade_20190814.sql new file mode 100644 index 00000000000..3b8e17af88d --- /dev/null +++ b/sql-files/upgrades/upgrade_20190814.sql @@ -0,0 +1,2 @@ +ALTER TABLE `ipbanlist` + CHANGE COLUMN `list` `list` VARCHAR(15) NOT NULL DEFAULT '' FIRST; diff --git a/sql-files/upgrades/upgrade_20190815.sql b/sql-files/upgrades/upgrade_20190815.sql new file mode 100644 index 00000000000..f8e3b5bbfff --- /dev/null +++ b/sql-files/upgrades/upgrade_20190815.sql @@ -0,0 +1 @@ +DROP TABLE `ragsrvinfo`; diff --git a/src/char/char.cpp b/src/char/char.cpp index cffb8e2a120..11e81573859 100644 --- a/src/char/char.cpp +++ b/src/char/char.cpp @@ -2299,7 +2299,7 @@ bool char_checkdb(void){ schema_config.party_db, schema_config.pet_db, schema_config.friend_db, schema_config.mail_db, schema_config.auction_db, schema_config.quest_db, schema_config.homunculus_db, schema_config.skill_homunculus_db, schema_config.mercenary_db, schema_config.mercenary_owner_db, - schema_config.elemental_db, schema_config.ragsrvinfo_db, schema_config.skillcooldown_db, schema_config.bonus_script_db, + schema_config.elemental_db, schema_config.skillcooldown_db, schema_config.bonus_script_db, schema_config.clan_table, schema_config.clan_alliance_table, schema_config.mail_attachment_db, schema_config.achievement_table }; ShowInfo("Start checking DB integrity\n"); @@ -2494,11 +2494,6 @@ bool char_checkdb(void){ Sql_ShowDebug(sql_handle); return false; } - //checking ragsrvinfo_db - if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `index`,`name`,`exp`,`jexp`,`drop` FROM `%s` LIMIT 1;", schema_config.ragsrvinfo_db) ){ - Sql_ShowDebug(sql_handle); - return false; - } //checking skillcooldown_db if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id`,`char_id`,`skill`,`tick` FROM `%s` LIMIT 1;", schema_config.skillcooldown_db) ){ Sql_ShowDebug(sql_handle); @@ -2686,7 +2681,6 @@ void char_set_default_sql(){ safestrncpy(schema_config.skill_homunculus_db,"skill_homunculus",sizeof(schema_config.skill_homunculus_db)); safestrncpy(schema_config.mercenary_db,"mercenary",sizeof(schema_config.mercenary_db)); safestrncpy(schema_config.mercenary_owner_db,"mercenary_owner",sizeof(schema_config.mercenary_owner_db)); - safestrncpy(schema_config.ragsrvinfo_db,"ragsrvinfo",sizeof(schema_config.ragsrvinfo_db)); safestrncpy(schema_config.skillcooldown_db,"skillcooldown",sizeof(schema_config.skillcooldown_db)); safestrncpy(schema_config.bonus_script_db,"bonus_script",sizeof(schema_config.bonus_script_db)); safestrncpy(schema_config.char_reg_num_table,"char_reg_num",sizeof(schema_config.char_reg_num_table)); @@ -3129,9 +3123,6 @@ void do_final(void) do_final_chmapif(); do_final_chlogif(); - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s`", schema_config.ragsrvinfo_db) ) - Sql_ShowDebug(sql_handle); - char_db_->destroy(char_db_, NULL); online_char_db->destroy(online_char_db, NULL); auth_db->destroy(auth_db, NULL); diff --git a/src/char/char.hpp b/src/char/char.hpp index ab24ace569e..c4e9b08c858 100644 --- a/src/char/char.hpp +++ b/src/char/char.hpp @@ -79,7 +79,6 @@ struct Schema_Config { char skill_homunculus_db[DB_NAME_LEN]; char mercenary_db[DB_NAME_LEN]; char mercenary_owner_db[DB_NAME_LEN]; - char ragsrvinfo_db[DB_NAME_LEN]; char elemental_db[DB_NAME_LEN]; char bonus_script_db[DB_NAME_LEN]; char acc_reg_num_table[DB_NAME_LEN]; diff --git a/src/char/char_clif.cpp b/src/char/char_clif.cpp index bf88b3b449a..ab2ba963dda 100644 --- a/src/char/char_clif.cpp +++ b/src/char/char_clif.cpp @@ -290,7 +290,7 @@ int chclif_parse_pincode_setnew( int fd, struct char_session_data* sd ){ if( pincode_allowed(newpin) ){ chlogif_pincode_notifyLoginPinUpdate( sd->account_id, newpin ); - strncpy( sd->pincode, newpin, strlen( newpin ) ); + strncpy( sd->pincode, newpin, sizeof( newpin ) ); chclif_pincode_sendstate( fd, sd, PINCODE_PASSED ); }else{ diff --git a/src/char/char_mapif.cpp b/src/char/char_mapif.cpp index e6d6cd1f0d3..00304318d51 100644 --- a/src/char/char_mapif.cpp +++ b/src/char/char_mapif.cpp @@ -855,26 +855,6 @@ int chmapif_parse_reqdivorce(int fd){ return 1; } -/** - * Receive rates of this map index - * @author [Wizputer] - * @param fd: wich fd to parse from - * @return : 0 not enough data received, 1 success - */ -int chmapif_parse_updmapinfo(int fd){ - if( RFIFOREST(fd) < 14 ) - return 0; - else { - char esc_server_name[sizeof(charserv_config.server_name)*2+1]; - Sql_EscapeString(sql_handle, esc_server_name, charserv_config.server_name); - if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` SET `index`='%d',`name`='%s',`exp`='%d',`jexp`='%d',`drop`='%d'", - schema_config.ragsrvinfo_db, fd, esc_server_name, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)) ) - Sql_ShowDebug(sql_handle); - RFIFOSKIP(fd,14); - } - return 1; -} - /** * Character disconnected set online 0 * @author [Wizputer] @@ -1442,7 +1422,6 @@ int chmapif_parse(int fd){ case 0x2b11: next=chmapif_parse_reqdivorce(fd); break; case 0x2b13: next=chmapif_parse_updmapip(fd,id); break; case 0x2b15: next=chmapif_parse_req_saveskillcooldown(fd); break; - case 0x2b16: next=chmapif_parse_updmapinfo(fd); break; case 0x2b17: next=chmapif_parse_setcharoffline(fd); break; case 0x2b18: next=chmapif_parse_setalloffline(fd,id); break; case 0x2b19: next=chmapif_parse_setcharonline(fd,id); break; @@ -1530,8 +1509,6 @@ void chmapif_server_reset(int id){ WBUFW(buf,2) = j * 4 + 10; chmapif_sendallwos(fd, buf, WBUFW(buf,2)); } - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `index`='%d'", schema_config.ragsrvinfo_db, map_server[id].fd) ) - Sql_ShowDebug(sql_handle); online_char_db->foreach(online_char_db,char_db_setoffline,id); //Tag relevant chars as 'in disconnected' server. chmapif_server_destroy(id); chmapif_server_init(id); diff --git a/src/char/char_mapif.hpp b/src/char/char_mapif.hpp index 294f5aedbe1..2bfb1a69e9a 100644 --- a/src/char/char_mapif.hpp +++ b/src/char/char_mapif.hpp @@ -28,7 +28,6 @@ int chmapif_parse_fwlog_changestatus(int fd); int chmapif_parse_updfamelist(int fd); void chmapif_send_ackdivorce(int partner_id1, int partner_id2); int chmapif_parse_reqdivorce(int fd); -int chmapif_parse_updmapinfo(int fd); int chmapif_parse_setcharoffline(int fd); int chmapif_parse_setalloffline(int fd, int id); int chmapif_parse_setcharonline(int fd, int id); diff --git a/src/char/int_achievement.cpp b/src/char/int_achievement.cpp index 06cb6adc9a9..54cc1d8fe91 100644 --- a/src/char/int_achievement.cpp +++ b/src/char/int_achievement.cpp @@ -113,6 +113,13 @@ bool mapif_achievement_add(uint32 char_id, struct achievement* ad) StringBuf buf; int i; + ARR_FIND( 0, MAX_ACHIEVEMENT_OBJECTIVES, i, ad->count[i] != 0 ); + + if( i == MAX_ACHIEVEMENT_OBJECTIVES && ad->completed == 0 && ad->rewarded == 0 ){ + // Do not save + return true; + } + StringBuf_Init(&buf); StringBuf_Printf(&buf, "INSERT INTO `%s` (`char_id`, `id`, `completed`, `rewarded`", schema_config.achievement_table); for (i = 0; i < MAX_ACHIEVEMENT_OBJECTIVES; ++i) diff --git a/src/common/common-minicore.vcxproj.filters b/src/common/common-minicore.vcxproj.filters index e9a4a6b9988..c3eb2cfe133 100644 --- a/src/common/common-minicore.vcxproj.filters +++ b/src/common/common-minicore.vcxproj.filters @@ -106,8 +106,8 @@ Source Files - + Source Files - + diff --git a/src/common/common.vcxproj.filters b/src/common/common.vcxproj.filters index aac83d890ae..8aff9e4471d 100644 --- a/src/common/common.vcxproj.filters +++ b/src/common/common.vcxproj.filters @@ -145,9 +145,9 @@ Source Files - + Source Files - + Source Files diff --git a/src/common/mmo.hpp b/src/common/mmo.hpp index 8859db3d543..69227b5cdcc 100644 --- a/src/common/mmo.hpp +++ b/src/common/mmo.hpp @@ -152,7 +152,6 @@ #define EL_CLASS_MAX (EL_CLASS_BASE+MAX_ELEMENTAL_CLASS-1) //Achievement System -#define MAX_ACHIEVEMENT_RANK 20 /// Maximum achievement level #define MAX_ACHIEVEMENT_OBJECTIVES 10 /// Maximum different objectives in achievement_db.yml #define MAX_ACHIEVEMENT_DEPENDENTS 20 /// Maximum different dependents in achievement_db.yml #define ACHIEVEMENT_NAME_LENGTH 50 /// Max Achievement Name length diff --git a/src/login/ipban.cpp b/src/login/ipban.cpp index 58ef012407a..e7790923f87 100644 --- a/src/login/ipban.cpp +++ b/src/login/ipban.cpp @@ -100,7 +100,7 @@ TIMER_FUNC(ipban_cleanup){ if( !login_config.ipban ) return 0;// ipban disabled - if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `ipbanlist` WHERE `rtime` <= NOW()") ) + if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `rtime` <= NOW()", ipban_table) ) Sql_ShowDebug(sql_handle); return 0; diff --git a/src/login/loginclif.cpp b/src/login/loginclif.cpp index 5eb00a41540..8672bf2cee0 100644 --- a/src/login/loginclif.cpp +++ b/src/login/loginclif.cpp @@ -333,7 +333,7 @@ static int logclif_parse_reqauth(int fd, struct login_session_data *sd, int comm if( israwpass ) { ShowStatus("Request for connection of %s (ip: %s)\n", sd->userid, ip); - safestrncpy(sd->passwd, password, NAME_LENGTH); + safestrncpy(sd->passwd, password, PASSWD_LENGTH); if( login_config.use_md5_passwds ) MD5_String(sd->passwd, sd->passwd); sd->passwdenc = 0; diff --git a/src/map/achievement.cpp b/src/map/achievement.cpp index 83a2ee02dc1..ced4045d81c 100644 --- a/src/map/achievement.cpp +++ b/src/map/achievement.cpp @@ -187,7 +187,14 @@ uint64 AchievementDatabase::parseBodyNode(const YAML::Node &node){ condition = "achievement_condition( " + condition + " );"; } + if( achievement->condition ){ + aFree( achievement->condition ); + achievement->condition = nullptr; + } + achievement->condition = parse_script( condition.c_str(), this->getCurrentFile().c_str(), node["Condition"].Mark().line + 1, SCRIPT_IGNORE_EXTERNAL_BRACKETS ); + }else{ + achievement->condition = nullptr; } if( this->nodeExists( node, "Map" ) ){ @@ -260,7 +267,7 @@ uint64 AchievementDatabase::parseBodyNode(const YAML::Node &node){ return 0; } - achievement->rewards.nameid = amount; + achievement->rewards.amount = amount; } if( this->nodeExists( rewardNode, "Script" ) ){ @@ -270,7 +277,14 @@ uint64 AchievementDatabase::parseBodyNode(const YAML::Node &node){ return 0; } + if( achievement->rewards.script ){ + aFree( achievement->rewards.script ); + achievement->rewards.script = nullptr; + } + achievement->rewards.script = parse_script( script.c_str(), this->getCurrentFile().c_str(), achievement_id, SCRIPT_IGNORE_EXTERNAL_BRACKETS ); + }else{ + achievement->rewards.script = nullptr; } // TODO: not camel case @@ -318,6 +332,54 @@ bool AchievementDatabase::mobexists( uint32 mob_id ){ return (it != this->achievement_mobs.end()) ? true : false; } +const std::string AchievementLevelDatabase::getDefaultLocation(){ + return std::string(db_path) + "/achievement_level_db.yml"; +} + +uint64 AchievementLevelDatabase::parseBodyNode( const YAML::Node &node ){ + if( !this->nodesExist( node, { "Level", "Points" } ) ){ + return 0; + } + + uint16 level; + + if( !this->asUInt16( node, "Level", level ) ){ + return 0; + } + + if( level == 0 ){ + this->invalidWarning( node, "Invalid achievement level %hu (minimum value: 1), skipping.\n", level ); + return 0; + } + + // Make it zero based + level -= 1; + + std::shared_ptr ptr = this->find( level ); + bool exists = ptr != nullptr; + + if( !exists ){ + ptr = std::make_shared(); + ptr->level = level; + } + + uint16 points; + + if (!this->asUInt16(node, "Points", points)) { + return 0; + } + + ptr->points = points; + + if( !exists ){ + this->put( level, ptr ); + } + + return 1; +} + +AchievementLevelDatabase achievement_level_db; + /** * Add an achievement to the player's log * @param sd: Player data @@ -691,60 +753,69 @@ int achievement_check_progress(struct map_session_data *sd, int achievement_id, * Calculate a player's achievement level * @param sd: Player to check achievement level * @param flag: If the call should attempt to give the AG_GOAL_ACHIEVE achievement - * @return Player's achievement level or 0 on failure + * @return Rollover and TNL EXP or 0 on failure */ int *achievement_level(struct map_session_data *sd, bool flag) { - static int info[2]; - int i, old_level; - const int score_table[MAX_ACHIEVEMENT_RANK] = { 18, 31, 49, 73, 135, 104, 140, 178, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000 }; //! TODO: Figure out the EXP required to level up from 8-20 - - nullpo_retr(0, sd); + nullpo_retr(nullptr, sd); sd->achievement_data.total_score = 0; - old_level = sd->achievement_data.level; - for (i = 0; i < sd->achievement_data.count; i++) { + for (int i = 0; i < sd->achievement_data.count; i++) { // Recount total score if (sd->achievement_data.achievements[i].completed > 0) sd->achievement_data.total_score += sd->achievement_data.achievements[i].score; } - info[0] = 0; - info[1] = 0; + int left_score, right_score, old_level = sd->achievement_data.level; - for (i = 0; i < MAX_ACHIEVEMENT_RANK; i++) { - info[0] = info[1]; - - if (i < ARRAYLENGTH(score_table)) - info[1] = score_table[i]; - else { - info[0] = info[1]; - info[1] = info[1] + 500; + for( sd->achievement_data.level = 0; /* Break condition's inside the loop */; sd->achievement_data.level++ ){ + std::shared_ptr level = achievement_level_db.find( sd->achievement_data.level ); + + if( sd->achievement_data.total_score > level->points ){ + std::shared_ptr next_level = achievement_level_db.find( sd->achievement_data.level + 1 ); + + // Check if there is another level + if( next_level == nullptr ){ + std::shared_ptr level = achievement_level_db.find( sd->achievement_data.level ); + + left_score = sd->achievement_data.total_score - level->points; + right_score = 0; + + // Increase the level for client side display + sd->achievement_data.level++; + break; + }else{ + // Enough points for this level, check the next one + continue; + } } - if (sd->achievement_data.total_score < info[1]) + if( sd->achievement_data.level == 0 ){ + left_score = sd->achievement_data.total_score; + right_score = level->points; break; - } + }else{ + std::shared_ptr previous_level = achievement_level_db.find( sd->achievement_data.level - 1 ); - if (i == MAX_ACHIEVEMENT_RANK) - i = 0; + left_score = sd->achievement_data.total_score - previous_level->points; + right_score = level->points - previous_level->points; + break; + } + } - info[1] = info[1] - info[0]; // Right number - info[0] = sd->achievement_data.total_score - info[0]; // Left number - sd->achievement_data.level = i; + static int info[2]; - if (flag == true && old_level != sd->achievement_data.level) { - int achievement_id = 240000 + sd->achievement_data.level; + info[0] = left_score; // Left number + info[1] = right_score; // Right number - if( achievement_add(sd, achievement_id) ){ - achievement_update_achievement(sd, achievement_id, true); - } + if (flag && old_level != sd->achievement_data.level) { // Give AG_GOAL_ACHIEVE + achievement_update_objective( sd, AG_GOAL_ACHIEVE, 0 ); } return info; } -static bool achievement_check_condition( struct script_code* condition, struct map_session_data* sd, const std::array count ){ +bool achievement_check_condition( struct script_code* condition, struct map_session_data* sd ){ // Save the old script the player was attached to struct script_state* previous_st = sd->st; @@ -835,7 +906,7 @@ static bool achievement_update_objectives(struct map_session_data *sd, std::shar if (!ad->condition) return false; - if (!achievement_check_condition(ad->condition, sd, current_count)) // Parameters weren't met + if (!achievement_check_condition(ad->condition, sd)) // Parameters weren't met return false; changed = true; @@ -856,7 +927,7 @@ static bool achievement_update_objectives(struct map_session_data *sd, std::shar current_count[it.first] += update_count[it.first]; } - if (!achievement_check_condition(ad->condition, sd, current_count)) // Parameters weren't met + if (!achievement_check_condition(ad->condition, sd)) // Parameters weren't met return false; changed = true; @@ -892,9 +963,28 @@ static bool achievement_update_objectives(struct map_session_data *sd, std::shar break; } - if (isNew) { - if (!(entry = achievement_add(sd, ad->achievement_id))) - return false; // Failed to add achievement + if( isNew ){ + // Always add the achievement if it was completed + bool hasCounter = complete; + + // If it was not completed + if( !hasCounter ){ + // Check if it has a counter + for( int counter : current_count ){ + if( counter != 0 ){ + hasCounter = true; + break; + } + } + } + + if( hasCounter ){ + if( !( entry = achievement_add( sd, ad->achievement_id ) ) ){ + return false; // Failed to add achievement + } + }else{ + changed = false; + } } if (changed) { @@ -933,7 +1023,6 @@ void achievement_update_objective(struct map_session_data *sd, enum e_achievemen switch(group) { case AG_CHAT: //! TODO: Not sure how this works officially - case AG_GOAL_ACHIEVE: // These have no objective use. break; default: @@ -968,6 +1057,8 @@ void achievement_read_db(void) } } } + + achievement_level_db.load(); } /** @@ -996,6 +1087,7 @@ void do_init_achievement(void) */ void do_final_achievement(void){ achievement_db.clear(); + achievement_level_db.clear(); } /** diff --git a/src/map/achievement.hpp b/src/map/achievement.hpp index 15ab67aa758..f0b3c215dfd 100644 --- a/src/map/achievement.hpp +++ b/src/map/achievement.hpp @@ -112,6 +112,23 @@ class AchievementDatabase : public TypesafeYamlDatabase{ +public: + AchievementLevelDatabase() : TypesafeYamlDatabase( "ACHIEVEMENT_LEVEL_DB", 1 ){ + + } + + const std::string getDefaultLocation(); + uint64 parseBodyNode( const YAML::Node& node ); +}; + +extern AchievementLevelDatabase achievement_level_db; + void achievement_get_reward(struct map_session_data *sd, int achievement_id, time_t rewarded); struct achievement *achievement_add(struct map_session_data *sd, int achievement_id); bool achievement_remove(struct map_session_data *sd, int achievement_id); @@ -120,6 +137,7 @@ void achievement_check_reward(struct map_session_data *sd, int achievement_id); void achievement_free(struct map_session_data *sd); int achievement_check_progress(struct map_session_data *sd, int achievement_id, int type); int *achievement_level(struct map_session_data *sd, bool flag); +bool achievement_check_condition(struct script_code* condition, struct map_session_data* sd); void achievement_get_titles(uint32 char_id); void achievement_update_objective(struct map_session_data *sd, enum e_achievement_group group, uint8 arg_count, ...); void achievement_read_db(void); diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp index 65a96186cde..1835e64957f 100644 --- a/src/map/atcommand.cpp +++ b/src/map/atcommand.cpp @@ -3900,7 +3900,6 @@ ACMD_FUNC(reload) { ) { // Exp or Drop rates changed. mob_reload(); //Needed as well so rate changes take effect. - chrif_ragsrvinfo(battle_config.base_exp_rate, battle_config.job_exp_rate, battle_config.item_rate_common); } clif_displaymessage(fd, msg_txt(sd,255)); // Battle configuration has been reloaded. } else if (strstr(command, "statusdb") || strncmp(message, "statusdb", 3) == 0) { @@ -5535,9 +5534,12 @@ ACMD_FUNC(dropall) if( sd->inventory.u.items_inventory[i].equip != 0 ) pc_unequipitem(sd, i, 3); pc_equipswitch_remove(sd, i); - if(pc_dropitem(sd, i, sd->inventory.u.items_inventory[i].amount)) - count += sd->inventory.u.items_inventory[i].amount; - else count2 += sd->inventory.u.items_inventory[i].amount; + + int amount = sd->inventory.u.items_inventory[i].amount; + + if(pc_dropitem(sd, i, amount)) + count += amount; + else count2 += amount; } } } @@ -7226,8 +7228,8 @@ ACMD_FUNC(mobinfo) job_exp = mob->job_exp; if (pc_isvip(sd)) { // Display EXP rate increase for VIP - base_exp = (base_exp * battle_config.vip_base_exp_increase) / 100; - job_exp = (job_exp * battle_config.vip_job_exp_increase) / 100; + base_exp += (base_exp * battle_config.vip_base_exp_increase) / 100; + job_exp += (job_exp * battle_config.vip_job_exp_increase) / 100; } #ifdef RENEWAL_EXP if( battle_config.atcommand_mobinfo_type ) { @@ -10045,6 +10047,15 @@ ACMD_FUNC(camerainfo){ return 0; } +ACMD_FUNC(resurrect) { + nullpo_retr(-1, sd); + + if (!pc_revive_item(sd)) + return -1; + + return 0; +} + #include "../custom/atcommand.inc" /** @@ -10345,6 +10356,7 @@ void atcommand_basecommands(void) { ACMD_DEFR(limitedsale, ATCMD_NOCONSOLE|ATCMD_NOAUTOTRADE), ACMD_DEFR(changedress, ATCMD_NOCONSOLE|ATCMD_NOAUTOTRADE), ACMD_DEFR(camerainfo, ATCMD_NOCONSOLE|ATCMD_NOAUTOTRADE), + ACMD_DEFR(resurrect, ATCMD_NOCONSOLE), }; AtCommandInfo* atcommand; int i; diff --git a/src/map/battle.cpp b/src/map/battle.cpp index b3516b11429..7af9d722595 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -640,7 +640,7 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li if( sd && !(nk&NK_NO_CARDFIX_ATK) ) { cardfix = cardfix * (100 + sd->magic_addrace[tstatus->race] + sd->magic_addrace[RC_ALL] + sd->magic_addrace2[t_race2]) / 100; if( !(nk&NK_NO_ELEFIX) ) { // Affected by Element modifier bonuses - cardfix = cardfix * (100 + sd->magic_addele[tstatus->def_ele] + sd->magic_addele[ELE_ALL] + + cardfix = cardfix * (100 + sd->magic_addele[tstatus->def_ele] + sd->magic_addele[ELE_ALL] + sd->magic_addele_script[tstatus->def_ele] + sd->magic_addele_script[ELE_ALL]) / 100; cardfix = cardfix * (100 + sd->magic_atk_ele[rh_ele] + sd->magic_atk_ele[ELE_ALL]) / 100; } @@ -1709,10 +1709,7 @@ int64 battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int64 if (skill_get_inf2(skill_id)&INF2_NO_GVG_DMG) //Skills with no gvg damage reduction. return damage; - /* Uncomment if you want god-mode Emperiums at 100 defense. [Kisuka] - if (md && md->guardian_data) - damage -= damage * (md->guardian_data->castle->defense/100) * battle_config.castle_defense_rate/100; - */ + if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex] if (flag&BF_WEAPON) damage = damage * battle_config.gvg_weapon_damage_rate / 100; @@ -2346,18 +2343,20 @@ static bool is_attack_right_handed(struct block_list *src, int skill_id) static bool is_attack_left_handed(struct block_list *src, int skill_id) { if(src != NULL) { - struct status_data *sstatus = status_get_status_data(src); - struct map_session_data *sd = BL_CAST(BL_PC, src); - //Skills ALWAYS use ONLY your right-hand weapon (tested on Aegis 10.2) if(!skill_id) { - if (sd && sd->weapontype1 == 0 && sd->weapontype2 > 0) - return true; + struct map_session_data *sd = BL_CAST(BL_PC, src); - if (sstatus->lhw.atk) - return true; + if (sd) { + if (sd->weapontype1 == 0 && sd->weapontype2 > 0) + return true; + if (sd->status.weapon == W_KATAR) + return true; + } + + struct status_data *sstatus = status_get_status_data(src); - if (sd && sd->status.weapon == W_KATAR) + if (sstatus->lhw.atk) return true; } } @@ -2382,14 +2381,12 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct struct map_session_data *tsd = BL_CAST(BL_PC, target); if (!first_call) - return (wd->type == DMG_CRITICAL); + return (wd->type == DMG_CRITICAL || wd->type == DMG_MULTI_HIT_CRITICAL); if (skill_id == NPC_CRITICALSLASH || skill_id == LG_PINPOINTATTACK) //Always critical skills return true; - if( !(wd->type&DMG_MULTI_HIT) && sstatus->cri && (!skill_id || - skill_id == KN_AUTOCOUNTER || skill_id == SN_SHARPSHOOTING || - skill_id == MA_SHARPSHOOTING || skill_id == NJ_KIRIKAGE)) + if( sstatus->cri && ( !skill_id || skill_get_nk(skill_id)&NK_CRITICAL ) ) { short cri = sstatus->cri; @@ -3634,11 +3631,9 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * skillratio += 40 * skill_lv; break; case LK_JOINTBEAT: - i = 10 * skill_lv - 50; - // Although not clear, it's being assumed that the 2x damage is only for the break neck ailment. - if (wd->miscflag&BREAK_NECK) - i *= 2; - skillratio += i; + skillratio += 10 * skill_lv - 50; + if (wd->miscflag & BREAK_NECK || (tsc && tsc->data[SC_JOINTBEAT] && tsc->data[SC_JOINTBEAT]->val2 & BREAK_NECK)) // The 2x damage is only for the BREAK_NECK ailment. + skillratio <<= 1; break; #ifdef RENEWAL // Renewal: skill ratio applies to entire damage [helvetica] @@ -4869,7 +4864,6 @@ static void battle_calc_attack_post_defense(struct Damage* wd, struct block_list */ static void battle_calc_attack_plant(struct Damage* wd, struct block_list *src,struct block_list *target, uint16 skill_id, uint16 skill_lv) { - struct map_session_data *sd = BL_CAST(BL_PC, src); struct status_data *tstatus = status_get_status_data(target); bool attack_hits = is_attack_hitting(wd, src, target, skill_id, skill_lv, false); int right_element = battle_get_weapon_element(wd, src, target, skill_id, skill_lv, EQI_HAND_R, false); @@ -4883,11 +4877,12 @@ static void battle_calc_attack_plant(struct Damage* wd, struct block_list *src,s if( attack_hits || wd->damage > 0 ) wd->damage = 1; //In some cases, right hand no need to have a weapon to deal a damage if( is_attack_left_handed(src, skill_id) && (attack_hits || wd->damage2 > 0) ) { - if(sd->status.weapon == W_KATAR) + struct map_session_data *sd = BL_CAST(BL_PC, src); + + if (sd && sd->status.weapon == W_KATAR) wd->damage2 = 0; //No backhand damage against plants - else { + else wd->damage2 = 1; //Deal 1 HP damage as long as there is a weapon in the left hand - } } if (attack_hits && target->type == BL_MOB) { @@ -5361,8 +5356,16 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl battle_calc_multi_attack(&wd, src, target, skill_id, skill_lv); // crit check is next since crits always hit on official [helvetica] - if (is_attack_critical(&wd, src, target, skill_id, skill_lv, true)) + if (is_attack_critical(&wd, src, target, skill_id, skill_lv, true)) { +#if PACKETVER >= 20161207 + if (wd.type&DMG_MULTI_HIT) + wd.type = DMG_MULTI_HIT_CRITICAL; + else + wd.type = DMG_CRITICAL; +#else wd.type = DMG_CRITICAL; +#endif + } // check if we're landing a hit if(!is_attack_hitting(&wd, src, target, skill_id, skill_lv, true)) @@ -6570,7 +6573,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * struct Damage atk = battle_calc_weapon_attack(src, target, skill_id, skill_lv, 0); struct Damage matk = battle_calc_magic_attack(src, target, skill_id, skill_lv, 0); md.damage = 7 * ((atk.damage/skill_lv + matk.damage/skill_lv) * tstatus->vit / 100 ); - + // AD benefits from endow/element but damage is forced back to neutral md.damage = battle_attr_fix(src, target, md.damage, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv); } @@ -7996,7 +7999,8 @@ static const struct _battle_data { { "enable_critical", &battle_config.enable_critical, BL_PC, BL_NUL, BL_ALL, }, { "mob_critical_rate", &battle_config.mob_critical_rate, 100, 0, INT_MAX, }, { "critical_rate", &battle_config.critical_rate, 100, 0, INT_MAX, }, - { "enable_baseatk", &battle_config.enable_baseatk, BL_CHAR|BL_NPC, BL_NUL, BL_ALL, }, + { "enable_baseatk", &battle_config.enable_baseatk, BL_CHAR|BL_HOM, BL_NUL, BL_ALL, }, + { "enable_baseatk_renewal", &battle_config.enable_baseatk_renewal, BL_ALL, BL_NUL, BL_ALL, }, { "enable_perfect_flee", &battle_config.enable_perfect_flee, BL_PC|BL_PET, BL_NUL, BL_ALL, }, { "casting_rate", &battle_config.cast_rate, 100, 0, INT_MAX, }, { "delay_rate", &battle_config.delay_rate, 100, 0, INT_MAX, }, @@ -8092,7 +8096,6 @@ static const struct _battle_data { { "pet_attack_support", &battle_config.pet_attack_support, 0, 0, 1, }, { "pet_damage_support", &battle_config.pet_damage_support, 0, 0, 1, }, { "pet_support_min_friendly", &battle_config.pet_support_min_friendly, 900, 0, 950, }, - { "pet_equip_min_friendly", &battle_config.pet_equip_min_friendly, 900, 0, 950, }, { "pet_support_rate", &battle_config.pet_support_rate, 100, 0, INT_MAX, }, { "pet_attack_exp_to_master", &battle_config.pet_attack_exp_to_master, 0, 0, 1, }, { "pet_attack_exp_rate", &battle_config.pet_attack_exp_rate, 100, 0, INT_MAX, }, @@ -8201,7 +8204,6 @@ static const struct _battle_data { { "skill_removetrap_type", &battle_config.skill_removetrap_type, 0, 0, 1, }, { "disp_experience", &battle_config.disp_experience, 0, 0, 1, }, { "disp_zeny", &battle_config.disp_zeny, 0, 0, 1, }, - { "castle_defense_rate", &battle_config.castle_defense_rate, 100, 0, 100, }, { "bone_drop", &battle_config.bone_drop, 0, 0, 2, }, { "buyer_name", &battle_config.buyer_name, 1, 0, 1, }, { "skill_wall_check", &battle_config.skill_wall_check, 1, 0, 1, }, diff --git a/src/map/battle.hpp b/src/map/battle.hpp index cffa0f36360..55abefaa55a 100644 --- a/src/map/battle.hpp +++ b/src/map/battle.hpp @@ -141,7 +141,7 @@ struct Battle_Config int enable_critical; int mob_critical_rate; int critical_rate; - int enable_baseatk; + int enable_baseatk, enable_baseatk_renewal; int enable_perfect_flee; int cast_rate, delay_rate; int delay_dependon_dex, delay_dependon_agi; @@ -226,7 +226,6 @@ struct Battle_Config int pet_attack_support; int pet_damage_support; int pet_support_min_friendly; //[Skotlex] - int pet_equip_min_friendly; int pet_support_rate; int pet_attack_exp_to_master; int pet_attack_exp_rate; @@ -369,7 +368,6 @@ struct Battle_Config int skill_removetrap_type; int disp_experience; int disp_zeny; - int castle_defense_rate; int backstab_bow_penalty; int hp_rate; int sp_rate; diff --git a/src/map/cashshop.cpp b/src/map/cashshop.cpp index df26abde73f..862a02e59aa 100644 --- a/src/map/cashshop.cpp +++ b/src/map/cashshop.cpp @@ -471,6 +471,7 @@ bool cashshop_buylist( struct map_session_data* sd, uint32 kafrapoints, int n, u uint32 totalcash = 0; uint32 totalweight = 0; int i,new_; + item_data *id; #if PACKETVER_SUPPORTS_SALES struct sale_item_data* sale = NULL; #endif @@ -504,13 +505,11 @@ bool cashshop_buylist( struct map_session_data* sd, uint32 kafrapoints, int n, u } nameid = *( item_list + i * 5 ) = cash_shop_items[tab].item[j]->nameid; //item_avail replacement + id = itemdb_exists(nameid); - if( !itemdb_exists( nameid ) ){ + if( !id ){ clif_cashshop_result( sd, nameid, CASHSHOP_RESULT_ERROR_UNKONWN_ITEM ); return false; - }else if( !itemdb_isstackable( nameid ) && quantity > 1 ){ - /* ShowWarning( "Player %s (%d:%d) sent a hexed packet trying to buy %d of nonstackable cash item %hu!\n", sd->status.name, sd->status.account_id, sd->status.char_id, quantity, nameid ); */ - quantity = *( item_list + i * 5 + 2 ) = 1; } if( quantity > 99 ){ @@ -544,7 +543,7 @@ bool cashshop_buylist( struct map_session_data* sd, uint32 kafrapoints, int n, u break; case CHKADDITEM_NEW: - new_++; + new_ += id->inventorySlotNeeded(quantity); break; case CHKADDITEM_OVERAMOUNT: @@ -580,13 +579,10 @@ bool cashshop_buylist( struct map_session_data* sd, uint32 kafrapoints, int n, u if (!id) continue; - if (!itemdb_isstackable2(id) && quantity > 1) - quantity = 1; - if (!pet_create_egg(sd, nameid)) { unsigned short get_amt = quantity, j; - if (id->flag.guid) + if (id->flag.guid || !itemdb_isstackable2(id)) get_amt = 1; for (j = 0; j < quantity; j += get_amt) { diff --git a/src/map/channel.hpp b/src/map/channel.hpp index 642640b7c91..19b8605f2c5 100644 --- a/src/map/channel.hpp +++ b/src/map/channel.hpp @@ -40,8 +40,8 @@ enum Channel_Type { struct Channel { //unsigned short id; ///< Channel ID (unused yet) char name[CHAN_NAME_LENGTH]; ///< Channel Name - char pass[CHAN_NAME_LENGTH]; ///< Channe display name - char alias[CHAN_NAME_LENGTH]; ///< Password + char pass[CHAN_NAME_LENGTH]; ///< Password + char alias[CHAN_NAME_LENGTH]; ///< Channel display name enum Channel_Type type; ///< Channel type @see enum Channel_Type unsigned long color; ///< Channel color in BGR unsigned char opt; ///< Channel options @see enum Channel_Opt diff --git a/src/map/chrif.cpp b/src/map/chrif.cpp index b7a73b3b25e..4baf5cc1c7d 100644 --- a/src/map/chrif.cpp +++ b/src/map/chrif.cpp @@ -43,7 +43,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free 60, 3,-1,-1,10,-1, 6,-1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff 6,-1,18, 7,-1,39,30, 10, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, U->2b07 6,30, 10, -1,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, U->2b0a, U->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f - 11,10,10, 0,11, -1,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, U->2b15, U->2b16, U->2b17 + 11,10,10, 0,11, -1, 0,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, U->2b15, F->2b16, U->2b17 2,10, 2,-1,-1,-1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f -1,10, 8, 2, 2,14,19,19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27 -1, 0, 6,15, 0, 6,-1,-1, // 2b28-2b2f: U->2b28, F->2b29, U->2b2a, U->2b2b, F->2b2c, U->2b2d, U->2b2e, U->2b2f @@ -80,7 +80,6 @@ static const int packet_len_table[0x3d] = { // U - used, F - free //2b13: Outgoing, chrif_update_ip -> 'tell the change of map-server IP' //2b14: Incoming, chrif_accountban -> 'not sure: kick the player with message XY' //2b15: Outgoing, chrif_skillcooldown_save -> request to save skillcooldown -//2b16: Outgoing, chrif_ragsrvinfo -> 'sends base / job / drop rates ....' //2b17: Outgoing, chrif_char_offline -> 'tell the charserver that the char is now offline' //2b18: Outgoing, chrif_char_reset_offline -> 'set all players OFF!' //2b19: Outgoing, chrif_char_online -> 'tell the charserver that the char .. is online' @@ -109,7 +108,6 @@ static const int packet_len_table[0x3d] = { // U - used, F - free int chrif_connected = 0; int char_fd = -1; -int srvinfo; static char char_ip_str[128]; static uint32 char_ip = 0; static uint16 char_port = 6121; @@ -1449,24 +1447,6 @@ int chrif_skillcooldown_load(int fd) { return 0; } -/*========================================== - * Send rates and motd to char server [Wizputer] - * S 2b16 .L .L .L - *------------------------------------------*/ -int chrif_ragsrvinfo(int base_rate, int job_rate, int drop_rate) { - chrif_check(-1); - - WFIFOHEAD(char_fd,14); - WFIFOW(char_fd,0) = 0x2b16; - WFIFOL(char_fd,2) = base_rate; - WFIFOL(char_fd,6) = job_rate; - WFIFOL(char_fd,10) = drop_rate; - WFIFOSET(char_fd,14); - - return 0; -} - - /*========================================= * Tell char-server charcter disconnected [Wizputer] *-----------------------------------------*/ @@ -1915,12 +1895,6 @@ static TIMER_FUNC(check_connect_char_server){ chrif_connect(char_fd); chrif_connected = (chrif_state == 2); - srvinfo = 0; - } else { - if (srvinfo == 0) { - chrif_ragsrvinfo(battle_config.base_exp_rate, battle_config.job_exp_rate, battle_config.item_rate_common); - srvinfo = 1; - } } if ( chrif_isconnected() ) displayed = 0; diff --git a/src/map/chrif.hpp b/src/map/chrif.hpp index c76724b789d..6e9bcb33020 100644 --- a/src/map/chrif.hpp +++ b/src/map/chrif.hpp @@ -69,7 +69,6 @@ int chrif_req_login_operation(int aid, const char* character_name, enum chrif_re int chrif_updatefamelist(struct map_session_data *sd); int chrif_buildfamelist(void); int chrif_save_scdata(struct map_session_data *sd); -int chrif_ragsrvinfo(int base_rate,int job_rate, int drop_rate); int chrif_char_offline(struct map_session_data *sd); int chrif_char_offline_nsd(uint32 account_id, uint32 char_id); int chrif_char_reset_offline(void); diff --git a/src/map/clif.cpp b/src/map/clif.cpp index bc3a461190a..78042ce25fb 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -4784,6 +4784,7 @@ static int clif_hallucination_damage() /// 10 = critical hit /// 11 = lucky dodge /// 12 = (touch skill?) +/// 13 = multi-hit critical int clif_damage(struct block_list* src, struct block_list* dst, t_tick tick, int sdelay, int ddelay, int64 sdamage, int div, enum e_damage_type type, int64 sdamage2, bool spdamage) { unsigned char buf[34]; @@ -4804,7 +4805,8 @@ int clif_damage(struct block_list* src, struct block_list* dst, t_tick tick, int nullpo_ret(src); nullpo_ret(dst); - type = clif_calc_delay(type,div,damage+damage2,ddelay); + if (type != DMG_MULTI_HIT_CRITICAL) + type = clif_calc_delay(type,div,damage+damage2,ddelay); sc = status_get_sc(dst); if(sc && sc->count) { if(sc->data[SC_HALLUCINATION]) { @@ -4866,6 +4868,9 @@ int clif_damage(struct block_list* src, struct block_list* dst, t_tick tick, int if(src == dst) { unit_setdir(src, unit_getdir(src)); } + + // In case this assignment is bypassed by DMG_MULTI_HIT_CRITICAL + type = clif_calc_delay(type, div, damage + damage2, ddelay); //Return adjusted can't walk delay for further processing. return clif_calc_walkdelay(dst, ddelay, type, damage+damage2, div); } @@ -5843,7 +5848,7 @@ void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst) { struct status_data *status; unsigned char buf[64]; - int i;//, fix; + int i, fix; nullpo_retv(sd); nullpo_retv(dst); @@ -5865,9 +5870,8 @@ void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst) +(battle_config.estimation_type&2?status->mdef2:0); WBUFW(buf,18)= status->def_ele; for(i=0;i<9;i++) - WBUFB(buf,20+i)= (unsigned char)battle_attr_ratio(i+1,status->def_ele, status->ele_lv); // The following caps negative attributes to 0 since the client displays them as 255-fix. [Skotlex] -// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,status->def_ele, status->ele_lv))<0?0:fix); + WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,status->def_ele, status->ele_lv))<0?0:fix); clif_send(buf,packet_len(0x18c),&sd->bl,sd->status.party_id>0?PARTY_SAMEMAP:SELF); } @@ -6221,6 +6225,10 @@ void clif_displaymessage(const int fd, const char* mes) /// 009a .W .?B void clif_broadcast(struct block_list* bl, const char* mes, int len, int type, enum send_target target) { + nullpo_retv(mes); + if (len < 2) + return; + int lp = (type&BC_COLOR_MASK) ? 4 : 0; std::unique_ptr buf(new unsigned char[4+lp+len]); @@ -6267,6 +6275,10 @@ void clif_GlobalMessage(struct block_list* bl, const char* message, enum send_ta /// 01c3 .W .L .W .W .W .W .?B void clif_broadcast2(struct block_list* bl, const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY, enum send_target target) { + nullpo_retv(mes); + if (len < 2) + return; + std::unique_ptr buf(new unsigned char[16+len]); WBUFW(buf.get(),0) = 0x1c3; @@ -7923,6 +7935,7 @@ void clif_sendegg(struct map_session_data *sd) /// 3 = accessory /// 4 = performance (data = 1~3: normal, 4: special) /// 5 = hairstyle +/// 6 = close egg selection ui and update egg in inventory (PACKETVER >= 20180704) /// /// If sd is null, the update is sent to nearby objects, otherwise it is sent only to that player. void clif_send_petdata(struct map_session_data* sd, struct pet_data* pd, int type, int param) @@ -14936,29 +14949,7 @@ void clif_parse_HomMenu(int fd, struct map_session_data *sd) /// 0292 void clif_parse_AutoRevive(int fd, struct map_session_data *sd) { - if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. - return; - - int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); - uint8 hp = 100, sp = 100; - - if (item_position < 0) { - if (sd->sc.data[SC_LIGHT_OF_REGENE]) { - hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; - sp = 0; - } else - return; - } - - if (!status_revive(&sd->bl, hp, sp)) - return; - - if (item_position < 0) - status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); - else - pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); - - clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); + pc_revive_item(sd); } @@ -15884,7 +15875,17 @@ void clif_mail_removeitem( struct map_session_data* sd, bool success, int index, WFIFOB(fd, 2) = success; WFIFOW(fd, 3) = index; WFIFOW(fd, 5) = amount; - WFIFOW(fd, 7) = 0; // TODO: which weight? item weight? removed weight? remaining weight? + + int total = 0; + for( int i = 0; i < MAIL_MAX_ITEM; i++ ){ + if( sd->mail.item[i].nameid == 0 ){ + break; + } + + total += sd->mail.item[i].amount * ( sd->inventory_data[sd->mail.item[i].index]->weight / 10 ); + } + + WFIFOW(fd, 7) = total; WFIFOSET(fd, 9); } @@ -17052,9 +17053,12 @@ void clif_quest_update_status(struct map_session_data *sd, int quest_id, bool ac /// 1 = orange /// 2 = green /// 3 = purple -void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, short effect, short color) +void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, e_questinfo_types effect, e_questinfo_markcolor color) { #if PACKETVER >= 20090218 + nullpo_retv(sd); + nullpo_retv(bl); + int fd = sd->fd; WFIFOHEAD(fd, packet_len(0x446)); @@ -20296,14 +20300,11 @@ void clif_parse_sale_remove( int fd, struct map_session_data* sd ){ /// Author: Luxuri, Aleos /** - * Sends all achievement data to the client (ZC_ALL_AG_LIST). + * Sends all achievement data to the client (ZC_ALL_ACH_LIST). * 0a23 .W .W .L .L */ void clif_achievement_list_all(struct map_session_data *sd) { - int i, j, len, fd, *info; - uint16 count = 0; - nullpo_retv(sd); if (!battle_config.feature_achievement) { @@ -20311,14 +20312,14 @@ void clif_achievement_list_all(struct map_session_data *sd) return; } - fd = sd->fd; - count = sd->achievement_data.count; // All achievements should be sent to the client - len = (50 * count) + 22; + int count = sd->achievement_data.count; // All achievements should be sent to the client - if (len <= 22) + if (count == 0) return; - info = achievement_level(sd, true); + int len = (50 * count) + 22; + int fd = sd->fd; + int *info = achievement_level(sd, true); WFIFOHEAD(fd,len); WFIFOW(fd, 0) = 0xa23; @@ -20329,10 +20330,10 @@ void clif_achievement_list_all(struct map_session_data *sd) WFIFOL(fd, 14) = info[0]; // Achievement EXP (left number in bar) WFIFOL(fd, 18) = info[1]; // Achievement EXP TNL (right number in bar) - for (i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { WFIFOL(fd, i * 50 + 22) = (uint32)sd->achievement_data.achievements[i].achievement_id; WFIFOB(fd, i * 50 + 26) = (uint32)sd->achievement_data.achievements[i].completed > 0; - for (j = 0; j < MAX_ACHIEVEMENT_OBJECTIVES; j++) + for (int j = 0; j < MAX_ACHIEVEMENT_OBJECTIVES; j++) WFIFOL(fd, (i * 50) + 27 + (j * 4)) = (uint32)sd->achievement_data.achievements[i].count[j]; WFIFOL(fd, i * 50 + 67) = (uint32)sd->achievement_data.achievements[i].completed; WFIFOB(fd, i * 50 + 71) = sd->achievement_data.achievements[i].rewarded > 0; @@ -20341,13 +20342,11 @@ void clif_achievement_list_all(struct map_session_data *sd) } /** - * Sends a single achievement's data to the client (ZC_AG_UPDATE). + * Sends a single achievement's data to the client (ZC_ACH_UPDATE). * 0a24 .W .L */ void clif_achievement_update(struct map_session_data *sd, struct achievement *ach, int count) { - int fd, i, *info; - nullpo_retv(sd); if (!battle_config.feature_achievement) { @@ -20355,8 +20354,8 @@ void clif_achievement_update(struct map_session_data *sd, struct achievement *ac return; } - fd = sd->fd; - info = achievement_level(sd, true); + int fd = sd->fd; + int *info = achievement_level(sd, true); WFIFOHEAD(fd, packet_len(0xa24)); WFIFOW(fd, 0) = 0xa24; @@ -20367,7 +20366,7 @@ void clif_achievement_update(struct map_session_data *sd, struct achievement *ac if (ach) { WFIFOL(fd, 16) = ach->achievement_id; // Achievement ID WFIFOB(fd, 20) = ach->completed > 0; // Is it complete? - for (i = 0; i < MAX_ACHIEVEMENT_OBJECTIVES; i++) + for (int i = 0; i < MAX_ACHIEVEMENT_OBJECTIVES; i++) WFIFOL(fd, 21 + (i * 4)) = (uint32)ach->count[i]; // 1~10 pre-reqs WFIFOL(fd, 61) = (uint32)ach->completed; // Epoch time WFIFOB(fd, 65) = ach->rewarded > 0; // Got reward? @@ -20377,7 +20376,7 @@ void clif_achievement_update(struct map_session_data *sd, struct achievement *ac } /** - * Checks if an achievement reward can be rewarded (CZ_REQ_AG_REWARD). + * Checks if an achievement reward can be rewarded (CZ_REQ_ACH_REWARD). * 0a25 .W .L */ void clif_parse_AchievementCheckReward(int fd, struct map_session_data *sd) @@ -20391,7 +20390,7 @@ void clif_parse_AchievementCheckReward(int fd, struct map_session_data *sd) } /** - * Returns the result of achievement_check_reward (ZC_REQ_AG_REWARD_ACK). + * Returns the result of achievement_check_reward (ZC_REQ_ACH_REWARD_ACK). * 0a26 .W .W .L */ void clif_achievement_reward_ack(int fd, unsigned char result, int achievement_id) @@ -20760,9 +20759,9 @@ void clif_parse_equipswitch_remove( int fd, struct map_session_data* sd ){ } /// Acknowledgement for adding an equip to the equip switch window -/// 0a98 .W .L .L <= 20170502 -/// 0a98 .W .L .W -void clif_equipswitch_add( struct map_session_data* sd, uint16 index, uint32 pos, bool failed ){ +/// 0a98 .W .L .L <= 20170502 +/// 0a98 .W .L .W +void clif_equipswitch_add( struct map_session_data* sd, uint16 index, uint32 pos, uint8 flag ){ #if PACKETVER >= 20170208 int fd = sd->fd; @@ -20771,9 +20770,9 @@ void clif_equipswitch_add( struct map_session_data* sd, uint16 index, uint32 pos WFIFOW(fd, 2) = index + 2; WFIFOL(fd, 4) = pos; #if PACKETVER <= 20170502 - WFIFOL(fd, 8) = failed; + WFIFOL(fd, 8) = flag; #else - WFIFOW(fd, 8) = failed; + WFIFOW(fd, 8) = flag; #endif WFIFOSET(fd,packet_len(0xa98)); #endif @@ -20795,7 +20794,7 @@ void clif_parse_equipswitch_add( int fd, struct map_session_data* sd ){ } if( sd->state.trading || sd->npc_shopid ){ - clif_equipswitch_add( sd, index, position, true ); + clif_equipswitch_add( sd, index, position, ITEM_EQUIP_ACK_OK ); return; } diff --git a/src/map/clif.hpp b/src/map/clif.hpp index 586cb8ca1d7..505984280c4 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -13,6 +13,8 @@ #include "../common/mmo.hpp" #include "../common/timer.hpp" // t_tick +#include "script.hpp" + struct Channel; struct clan; struct item; @@ -547,6 +549,7 @@ enum e_damage_type : uint8_t { DMG_CRITICAL, /// critical hit DMG_LUCY_DODGE, /// lucky dodge DMG_TOUCH, /// (touch skill?) + DMG_MULTI_HIT_CRITICAL /// multi-hit with critical }; enum class e_pet_evolution_result : uint32 { @@ -909,7 +912,7 @@ void clif_quest_add(struct map_session_data * sd, struct quest * qd); void clif_quest_delete(struct map_session_data * sd, int quest_id); void clif_quest_update_status(struct map_session_data * sd, int quest_id, bool active); void clif_quest_update_objective(struct map_session_data * sd, struct quest * qd, int mobid); -void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, short state, short color); +void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, e_questinfo_types effect, e_questinfo_markcolor color); void clif_displayexp(struct map_session_data *sd, unsigned int exp, char type, bool quest, bool lost); int clif_send(const uint8* buf, int len, struct block_list* bl, enum send_target type); @@ -1119,7 +1122,7 @@ void clif_camerainfo( struct map_session_data* sd, bool show, float range = 0.0f /// Equip Switch System void clif_equipswitch_list( struct map_session_data* sd ); -void clif_equipswitch_add( struct map_session_data* sd,uint16 index, uint32 pos, bool failed ); +void clif_equipswitch_add( struct map_session_data* sd,uint16 index, uint32 pos, uint8 flag ); void clif_equipswitch_remove( struct map_session_data* sd, uint16 index, uint32 pos, bool failed ); void clif_equipswitch_reply( struct map_session_data* sd, bool failed ); diff --git a/src/map/intif.cpp b/src/map/intif.cpp index d8d69a88632..dd61e299164 100644 --- a/src/map/intif.cpp +++ b/src/map/intif.cpp @@ -205,6 +205,10 @@ int intif_rename(struct map_session_data *sd, int type, char *name) */ int intif_broadcast(const char* mes, int len, int type) { + nullpo_ret(mes); + if (len < 2) + return 0; + int lp = (type|BC_COLOR_MASK) ? 4 : 0; // Send to the local players @@ -246,6 +250,10 @@ int intif_broadcast(const char* mes, int len, int type) */ int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY) { + nullpo_ret(mes); + if (len < 2) + return 0; + // Send to the local players clif_broadcast2(NULL, mes, len, fontColor, fontType, fontSize, fontAlign, fontY, ALL_CLIENT); @@ -2171,11 +2179,17 @@ void intif_parse_achievements(int fd) memmove(&sd->achievement_data.achievements[k], &sd->achievement_data.achievements[sd->achievement_data.incompleteCount], sizeof(struct achievement) * (num_received - k)); sd->achievement_data.achievements = (struct achievement *)aRealloc(sd->achievement_data.achievements, sizeof(struct achievement) * sd->achievement_data.count); } - achievement_level(sd, false); // Calculate level info but don't give any AG_GOAL_ACHIEVE achievements - achievement_get_titles(sd->status.char_id); // Populate the title list for completed achievements - clif_achievement_update(sd, NULL, 0); - clif_achievement_list_all(sd); } + + // Check all conditions and counters on login + for( int group = AG_NONE + 1; group < AG_MAX; group++ ){ + achievement_update_objective( sd, static_cast( group ), 0 ); + } + + achievement_level(sd, false); // Calculate level info but don't give any AG_GOAL_ACHIEVE achievements + achievement_get_titles(sd->status.char_id); // Populate the title list for completed achievements + clif_achievement_update(sd, NULL, 0); + clif_achievement_list_all(sd); } /** diff --git a/src/map/itemdb.cpp b/src/map/itemdb.cpp index d3ebd7f99eb..98bd999a54d 100644 --- a/src/map/itemdb.cpp +++ b/src/map/itemdb.cpp @@ -502,19 +502,9 @@ bool itemdb_isequip2(struct item_data *id) { bool itemdb_isstackable2(struct item_data *id) { nullpo_ret(id); - switch(id->type) { - case IT_WEAPON: - case IT_ARMOR: - case IT_PETEGG: - case IT_PETARMOR: - case IT_SHADOWGEAR: - return false; - default: - return true; - } + return id->isStackable(); } - /*========================================== * Trade Restriction functions [Skotlex] *------------------------------------------*/ @@ -573,6 +563,12 @@ bool itemdb_isrestricted(struct item* item, int gmlv, int gmlv2, bool (*func)(st return true; } +bool itemdb_ishatched_egg(struct item* item) { + if (item && item->card[0] == CARD0_PET && item->attribute == 1) + return true; + return false; +} + /** Specifies if item-type should drop unidentified. * @param nameid ID of item */ @@ -1975,6 +1971,24 @@ static int itemdb_randomopt_free(DBKey key, DBData *data, va_list ap) { return 1; } +bool item_data::isStackable() +{ + switch (this->type) { + case IT_WEAPON: + case IT_ARMOR: + case IT_PETEGG: + case IT_PETARMOR: + case IT_SHADOWGEAR: + return false; + } + return true; +} + +int item_data::inventorySlotNeeded(int quantity) +{ + return (this->flag.guid || !this->isStackable()) ? quantity : 1; +} + /** * Reload Item DB */ diff --git a/src/map/itemdb.hpp b/src/map/itemdb.hpp index 4b9b5eb9718..564a80ca17b 100644 --- a/src/map/itemdb.hpp +++ b/src/map/itemdb.hpp @@ -861,6 +861,9 @@ struct item_data struct item_combo **combos; unsigned char combos_count; short delay_sc; ///< Use delay group if any instead using player's item_delay data [Cydh] + + bool isStackable(); + int inventorySlotNeeded(int quantity); }; // Struct for item random option [Secret] @@ -932,6 +935,7 @@ bool itemdb_canguildstore_sub(struct item_data *itd, int gmlv, int unused); bool itemdb_canmail_sub(struct item_data *itd, int gmlv, int unused); bool itemdb_canauction_sub(struct item_data *itd, int gmlv, int unused); bool itemdb_isrestricted(struct item* item, int gmlv, int gmlv2, bool (*func)(struct item_data*, int, int)); +bool itemdb_ishatched_egg(struct item* item); #define itemdb_isdropable(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_isdropable_sub) #define itemdb_cantrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_cantrade_sub) #define itemdb_canpartnertrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_canpartnertrade_sub) diff --git a/src/map/mail.cpp b/src/map/mail.cpp index f3673bc9971..780dc08d80e 100644 --- a/src/map/mail.cpp +++ b/src/map/mail.cpp @@ -65,18 +65,27 @@ int mail_removeitem(struct map_session_data *sd, short flag, int idx, int amount pc_delitem(sd, idx, amount, 0, 0, LOG_TYPE_MAIL); #endif }else{ - for( ; i < MAIL_MAX_ITEM-1; i++ ){ - if (sd->mail.item[i + 1].nameid == 0) - break; - sd->mail.item[i].index = sd->mail.item[i+1].index; - sd->mail.item[i].nameid = sd->mail.item[i+1].nameid; - sd->mail.item[i].amount = sd->mail.item[i+1].amount; - } + sd->mail.item[i].amount -= amount; + + // Item was removed completely + if( sd->mail.item[i].amount <= 0 ){ + // Move the rest of the array forward + for( ; i < MAIL_MAX_ITEM - 1; i++ ){ + if ( sd->mail.item[i + 1].nameid == 0 ){ + break; + } + + sd->mail.item[i].index = sd->mail.item[i+1].index; + sd->mail.item[i].nameid = sd->mail.item[i+1].nameid; + sd->mail.item[i].amount = sd->mail.item[i+1].amount; + } - for( ; i < MAIL_MAX_ITEM; i++ ){ - sd->mail.item[i].index = 0; - sd->mail.item[i].nameid = 0; - sd->mail.item[i].amount = 0; + // Zero the rest + for( ; i < MAIL_MAX_ITEM; i++ ){ + sd->mail.item[i].index = 0; + sd->mail.item[i].nameid = 0; + sd->mail.item[i].amount = 0; + } } #if PACKETVER < 20150513 @@ -146,6 +155,9 @@ enum mail_attach_result mail_setitem(struct map_session_data *sd, short idx, uin if( idx < 0 || idx >= MAX_INVENTORY || sd->inventory_data[idx] == nullptr ) return MAIL_ATTACH_ERROR; + if (itemdb_ishatched_egg(&sd->inventory.u.items_inventory[idx])) + return MAIL_ATTACH_ERROR; + if( sd->inventory.u.items_inventory[idx].equipSwitch ){ return MAIL_ATTACH_EQUIPSWITCH; } diff --git a/src/map/map-server.vcxproj b/src/map/map-server.vcxproj index dd1c3151701..a8ba8c8f494 100644 --- a/src/map/map-server.vcxproj +++ b/src/map/map-server.vcxproj @@ -292,6 +292,7 @@ + diff --git a/src/map/map.cpp b/src/map/map.cpp index 608bbbc0aca..59a89d1a6f8 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -3688,15 +3688,10 @@ void map_data_copy(struct map_data *dst_map, struct map_data *src_map) { dst_map->skill_duration.insert(src_map->skill_duration.begin(), src_map->skill_duration.end()); dst_map->zone = src_map->zone; - dst_map->qi_count = 0; - dst_map->qi_data = NULL; // Mimic questinfo - if (src_map->qi_count) { - dst_map->qi_count = src_map->qi_count; - CREATE(dst_map->qi_data, struct questinfo, dst_map->qi_count); - memcpy(dst_map->qi_data, src_map->qi_data, dst_map->qi_count * sizeof(struct questinfo)); - } + if (!src_map->qi_data.empty()) + src_map->qi_data = dst_map->qi_data; } /** @@ -3911,8 +3906,6 @@ int map_readallmaps (void) memset(&mapdata->save, 0, sizeof(struct point)); mapdata->damage_adjust = {}; - mapdata->qi_count = 0; - mapdata->qi_data = NULL; mapdata->channel = NULL; } @@ -4361,110 +4354,31 @@ int log_sql_init(void) return 0; } -struct questinfo *map_add_questinfo(int m, struct questinfo *qi) { - unsigned short i; +void map_remove_questinfo(int m, struct npc_data *nd) { struct map_data *mapdata = map_getmapdata(m); + struct s_questinfo *qi; - /* duplicate, override */ - for(i = 0; i < mapdata->qi_count; i++) { - if( &mapdata->qi_data[i] && mapdata->qi_data[i].nd == qi->nd && mapdata->qi_data[i].quest_id == qi->quest_id) - break; - } - - if( i == mapdata->qi_count ) - RECREATE(mapdata->qi_data, struct questinfo, ++mapdata->qi_count); - else { // clear previous criteria on override - if (mapdata->qi_data[i].jobid) - aFree(mapdata->qi_data[i].jobid); - mapdata->qi_data[i].jobid = NULL; - mapdata->qi_data[i].jobid_count = 0; - if (mapdata->qi_data[i].req) - aFree(mapdata->qi_data[i].req); - mapdata->qi_data[i].req = NULL; - mapdata->qi_data[i].req_count = 0; - } - - memcpy(&mapdata->qi_data[i], qi, sizeof(struct questinfo)); - return &mapdata->qi_data[i]; -} - -bool map_remove_questinfo(int m, struct npc_data *nd) { - unsigned short i, c; - struct map_data *mapdata = map_getmapdata(m); - - for(i = 0; i < mapdata->qi_count; i++) { - struct questinfo *qi = &mapdata->qi_data[i]; - if( qi->nd == nd ) { - if (qi->jobid) - aFree(qi->jobid); - qi->jobid = NULL; - qi->jobid_count = 0; - - if (qi->req) - aFree(qi->req); - qi->req = NULL; - qi->req_count = 0; - - memset(&mapdata->qi_data[i], 0, sizeof(mapdata->qi_data[i])); - } - } - - // Move next data to empty slot - for(i = 0, c = 0; i < mapdata->qi_count; i++) { - struct questinfo *qi = &mapdata->qi_data[i]; - if (!qi || !qi->nd) - continue; + nullpo_retv(nd); + nullpo_retv(mapdata); - if (i != c) { - mapdata->qi_data[c] = mapdata->qi_data[i]; - memset(&mapdata->qi_data[i], 0, sizeof(mapdata->qi_data[i])); + for (int i = 0; i < mapdata->qi_data.size(); i++) { + qi = &mapdata->qi_data[i]; + if (qi && qi->nd == nd) { + script_free_code(qi->condition); + mapdata->qi_data.erase(mapdata->qi_data.begin() + i); } - - c++; - } - - if (!(mapdata->qi_count = c)) { - aFree(mapdata->qi_data); - mapdata->qi_data = NULL; } - else - RECREATE(mapdata->qi_data, struct questinfo, mapdata->qi_count); - - return true; } static void map_free_questinfo(struct map_data *mapdata) { - unsigned short i; - if (!mapdata) - return; + nullpo_retv(mapdata); - for(i = 0; i < mapdata->qi_count; i++) { - if (mapdata->qi_data[i].jobid) - aFree(mapdata->qi_data[i].jobid); - mapdata->qi_data[i].jobid = NULL; - mapdata->qi_data[i].jobid_count = 0; - if (mapdata->qi_data[i].req) - aFree(mapdata->qi_data[i].req); - mapdata->qi_data[i].req = NULL; - mapdata->qi_data[i].req_count = 0; + for (const auto &it : mapdata->qi_data) { + if (it.condition) + script_free_code(it.condition); } - aFree(mapdata->qi_data); - mapdata->qi_data = NULL; - mapdata->qi_count = 0; -} - -struct questinfo *map_has_questinfo(int m, struct npc_data *nd, int quest_id) { - unsigned short i; - struct map_data *mapdata = map_getmapdata(m); - for (i = 0; i < mapdata->qi_count; i++) { - struct questinfo *qi = &mapdata->qi_data[i]; - if (qi->nd == nd && qi->quest_id == quest_id) { - return qi; - } - } - - return NULL; + mapdata->qi_data.clear(); } /** diff --git a/src/map/map.hpp b/src/map/map.hpp index eb289a0e38c..aaf678e0f91 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -18,6 +18,8 @@ #include "../common/timer.hpp" #include "../config/core.hpp" +#include "script.hpp" + struct npc_data; struct item_data; struct Channel; @@ -312,6 +314,12 @@ enum e_race2 : uint8{ RC2_BIO5_ACOLYTE_MERCHANT, RC2_BIO5_MAGE_ARCHER, RC2_BIO5_MVP, + RC2_CLOCKTOWER, + RC2_THANATOS, + RC2_FACEWORM, + RC2_HEARTHUNTER, + RC2_ROCKRIDGE, + RC2_WERNER_LAB, RC2_MAX }; @@ -430,6 +438,7 @@ enum _sp { SP_ROULETTE_GOLD = 130, SP_CASHPOINTS, SP_KAFRAPOINTS, SP_PCDIECOUNTER, SP_COOKMASTERY, + SP_ACHIEVEMENT_LEVEL, // Mercenaries SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190, @@ -485,7 +494,8 @@ enum _sp { SP_HP_VANISH_RACE_RATE, SP_SP_VANISH_RACE_RATE, SP_ABSORB_DMG_MAXHP, SP_SUB_SKILL, SP_SUBDEF_ELE, // 2074-2078 SP_STATE_NORECOVER_RACE, SP_CRITICAL_RANGEATK, SP_MAGIC_ADDRACE2, SP_IGNORE_MDEF_RACE2_RATE, // 2079-2082 SP_WEAPON_ATK_RATE, SP_WEAPON_MATK_RATE, SP_DROP_ADDRACE, SP_DROP_ADDCLASS, SP_NO_MADO_FUEL, // 2083-2087 - SP_IGNORE_DEF_CLASS_RATE, SP_REGEN_PERCENT_HP, SP_REGEN_PERCENT_SP, SP_SKILL_DELAY, SP_NO_WALK_DELAY //2088-2093 + SP_IGNORE_DEF_CLASS_RATE, SP_REGEN_PERCENT_HP, SP_REGEN_PERCENT_SP, SP_SKILL_DELAY, SP_NO_WALK_DELAY, //2088-2093 + SP_LONG_SP_GAIN_VALUE, SP_LONG_HP_GAIN_VALUE // 2094-2095 }; enum _look { @@ -698,22 +708,11 @@ struct iwall_data { bool shootable; }; -struct questinfo_req { - unsigned int quest_id; - unsigned state : 2; // 0: Doesn't have, 1: Inactive, 2: Active, 3: Complete //! TODO: CONFIRM ME!! -}; - -struct questinfo { +struct s_questinfo { struct npc_data *nd; - unsigned short icon; - unsigned char color; - int quest_id; - unsigned short min_level, - max_level; - uint8 req_count; - uint8 jobid_count; - struct questinfo_req *req; - unsigned short *jobid; + e_questinfo_types icon; + e_questinfo_markcolor color; + struct script_code* condition; }; struct map_data { @@ -753,9 +752,8 @@ struct map_data { struct Channel *channel; /* ShowEvent Data Cache */ - struct questinfo *qi_data; - unsigned short qi_count; - + std::vector qi_data; + /* speeds up clif_updatestatus processing by causing hpmeter to run only when someone with the permission can view it */ unsigned short hpmeter_visible; }; @@ -1099,9 +1097,7 @@ struct mob_data * map_id2boss(int id); // reload config file looking only for npcs void map_reloadnpc(bool clear); -struct questinfo *map_add_questinfo(int m, struct questinfo *qi); -bool map_remove_questinfo(int m, struct npc_data *nd); -struct questinfo *map_has_questinfo(int m, struct npc_data *nd, int quest_id); +void map_remove_questinfo(int m, struct npc_data *nd); /// Bitfield of flags for the iterator. enum e_mapitflags diff --git a/src/map/npc.cpp b/src/map/npc.cpp index 369cf185588..c33c414a80d 100644 --- a/src/map/npc.cpp +++ b/src/map/npc.cpp @@ -1563,6 +1563,7 @@ int npc_cashshop_buylist(struct map_session_data *sd, int points, int count, uns unsigned short nameid; struct npc_data *nd = (struct npc_data *)map_id2bl(sd->npc_shopid); enum e_CASHSHOP_ACK res; + item_data *id; if( !nd || ( nd->subtype != NPCTYPE_CASHSHOP && nd->subtype != NPCTYPE_ITEMSHOP && nd->subtype != NPCTYPE_POINTSHOP ) ) return ERROR_TYPE_NPC; @@ -1578,8 +1579,9 @@ int npc_cashshop_buylist(struct map_session_data *sd, int points, int count, uns { nameid = item_list[i*2+1]; amount = item_list[i*2+0]; + id = itemdb_exists(nameid); - if( !itemdb_exists(nameid) || amount <= 0 ) + if( !id || amount <= 0 ) return ERROR_TYPE_ITEM_ID; ARR_FIND(0,nd->u.shop.count,j,nd->u.shop.shop_item[j].nameid == nameid || itemdb_viewid(nd->u.shop.shop_item[j].nameid) == nameid); @@ -1588,7 +1590,7 @@ int npc_cashshop_buylist(struct map_session_data *sd, int points, int count, uns nameid = item_list[i*2+1] = nd->u.shop.shop_item[j].nameid; //item_avail replacement - if( !itemdb_isstackable(nameid) && amount > 1 ) + if( !itemdb_isstackable2(id) && amount > 1 ) { ShowWarning("Player %s (%d:%d) sent a hexed packet trying to buy %d of nonstackable item %hu!\n", sd->status.name, sd->status.account_id, sd->status.char_id, amount, nameid); amount = item_list[i*2+0] = 1; @@ -1597,7 +1599,7 @@ int npc_cashshop_buylist(struct map_session_data *sd, int points, int count, uns switch( pc_checkadditem(sd,nameid,amount) ) { case CHKADDITEM_NEW: - new_++; + new_ += id->inventorySlotNeeded(amount); break; case CHKADDITEM_OVERAMOUNT: return ERROR_TYPE_INVENTORY_WEIGHT; @@ -1739,7 +1741,7 @@ int npc_cashshop_buy(struct map_session_data *sd, unsigned short nameid, int amo nameid = nd->u.shop.shop_item[i].nameid; //item_avail replacement - if(!itemdb_isstackable(nameid) && amount > 1) + if(!itemdb_isstackable2(item) && amount > 1) { ShowWarning("Player %s (%d:%d) sent a hexed packet trying to buy %d of nonstackable item %hu!\n", sd->status.name, sd->status.account_id, sd->status.char_id, amount, nameid); @@ -1749,7 +1751,7 @@ int npc_cashshop_buy(struct map_session_data *sd, unsigned short nameid, int amo switch( pc_checkadditem(sd, nameid, amount) ) { case CHKADDITEM_NEW: - if( pc_inventoryblank(sd) == 0 ) + if( pc_inventoryblank(sd) < item->inventorySlotNeeded(amount) ) return ERROR_TYPE_INVENTORY_WEIGHT; break; case CHKADDITEM_OVERAMOUNT: @@ -1857,6 +1859,7 @@ uint8 npc_buylist(struct map_session_data* sd, uint16 n, struct s_npc_buy_list * for( i = 0; i < n; ++i ) { unsigned short nameid, amount; int value; + item_data *id; // find this entry in the shop's sell list ARR_FIND( 0, nd->u.shop.count, j, @@ -1878,11 +1881,12 @@ uint8 npc_buylist(struct map_session_data* sd, uint16 n, struct s_npc_buy_list * amount = item_list[i].qty; nameid = item_list[i].nameid = shop[j].nameid; //item_avail replacement value = shop[j].value; + id = itemdb_exists(nameid); - if( !itemdb_exists(nameid) ) + if( !id ) return 3; // item no longer in itemdb - if( !itemdb_isstackable(nameid) && amount > 1 ) { //Exploit? You can't buy more than 1 of equipment types o.O + if( !itemdb_isstackable2(id) && amount > 1 ) { //Exploit? You can't buy more than 1 of equipment types o.O ShowWarning("Player %s (%d:%d) sent a hexed packet trying to buy %d of nonstackable item %hu!\n", sd->status.name, sd->status.account_id, sd->status.char_id, amount, nameid); amount = item_list[i].qty = 1; @@ -1897,7 +1901,7 @@ uint8 npc_buylist(struct map_session_data* sd, uint16 n, struct s_npc_buy_list * break; case CHKADDITEM_NEW: - new_++; + new_ += id->inventorySlotNeeded(amount); break; case CHKADDITEM_OVERAMOUNT: @@ -2516,7 +2520,7 @@ static void npc_parsename(struct npc_data* nd, const char* name, const char* sta * Support for using Constants in place of NPC View IDs. */ int npc_parseview(const char* w4, const char* start, const char* buffer, const char* filepath) { - int val = JT_FAKENPC, i = 0; + int i = 0; char viewid[1024]; // Max size of name from const.txt, see read_constdb. // Extract view ID / constant @@ -2529,36 +2533,21 @@ int npc_parseview(const char* w4, const char* start, const char* buffer, const c safestrncpy(viewid, w4, i+=1); + char *pid; + int val = strtol(viewid, &pid, 0); + // Check if view id is not an ID (only numbers). - if(!npc_viewisid(viewid)) { + if (pid != nullptr && *pid != '\0') { // Check if constant exists and get its value. if(!script_get_constant(viewid, &val)) { ShowWarning("npc_parseview: Invalid NPC constant '%s' specified in file '%s', line'%d'. Defaulting to INVISIBLE. \n", viewid, filepath, strline(buffer,start-buffer)); val = JT_INVISIBLE; } - } else { - // NPC has an ID specified for view id. - val = atoi(w4); } return val; } -/** - * Checks if given view is an ID or constant. - */ -bool npc_viewisid(const char * viewid) -{ - if(atoi(viewid) != JT_FAKENPC) { - // Loop through view, looking for non-numeric character. - while (*viewid) { - if (ISDIGIT(*viewid++) == 0) return false; - } - } - - return true; -} - /** * Create a bare NPC object. * @param m: Map ID diff --git a/src/map/npc.hpp b/src/map/npc.hpp index 0ce0c96a017..35773ca703a 100644 --- a/src/map/npc.hpp +++ b/src/map/npc.hpp @@ -1142,8 +1142,25 @@ enum e_job_types JT_4_F_EINRESERCHER, JT_4_F_REINDEER, JT_4_PIGOCTO, - - JT_4_JP_16TH = 10343, + JT_4_ORK_HERO, + JT_4_JP_16TH, + JT_4_EP17_MASTER_A, + JT_4_EP17_BASIC_B, + JT_4_EP17_GUARD_B, + JT_4_EP17_BASIC_B_NG, + JT_4_EP17_GUARD_B_NG, + JT_4_EP17_SWEETY, + JT_4_EP17_BOY_A, + JT_4_EP17_BOY_B, + JT_4_EP17_TAMARIN, + JT_4_EP17_SCISSORE, + JT_4_EP17_TABLET, + JT_4_EP17_BUCKETS, + JT_4_EP17_CLEANER, + JT_4_EP17_BASKET, + JT_4_EP17_BROKENBETA, + JT_4_EP17_CLEANER_W, + JT_4_EP17_MERMAID, JT_NEW_NPC_3RD_END = 19999, NPC_RANGE3_END, // Official: JT_NEW_NPC_3RD_END=19999 @@ -1195,7 +1212,6 @@ int npc_buysellsel(struct map_session_data* sd, int id, int type); uint8 npc_buylist(struct map_session_data* sd, uint16 n, struct s_npc_buy_list *item_list); uint8 npc_selllist(struct map_session_data* sd, int n, unsigned short *item_list); void npc_parse_mob2(struct spawn_data* mob); -bool npc_viewisid(const char * viewid); struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y); int npc_globalmessage(const char* name,const char* mes); const char *npc_get_script_event_name(int npce_index); diff --git a/src/map/party.cpp b/src/map/party.cpp index cd4ea9aa6c2..40fafe091bd 100644 --- a/src/map/party.cpp +++ b/src/map/party.cpp @@ -1000,7 +1000,7 @@ int party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id break; case MO_COMBOFINISH: //Increase Counter rate of Star Gladiators if((p_sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR - && sd->sc.data[SC_READYCOUNTER] + && p_sd->sc.data[SC_READYCOUNTER] && pc_checkskill(p_sd,SG_FRIEND)) { sc_start4(&p_sd->bl,&p_sd->bl,SC_SKILLRATE_UP,100,TK_COUNTER, 50+50*pc_checkskill(p_sd,SG_FRIEND), //+100/150/200% rate diff --git a/src/map/pc.cpp b/src/map/pc.cpp index b528862f332..a06d3add3ed 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -729,6 +729,9 @@ bool pc_can_sell_item(struct map_session_data *sd, struct item *item, enum npc_s return false; } + if (itemdb_ishatched_egg(item)) + return false; + switch (shoptype) { case NPCTYPE_SHOP: if (item->bound && battle_config.allow_bound_sell&ISR_BOUND_SELLABLE && ( @@ -1381,6 +1384,7 @@ bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_ sd->pvp_timer = INVALID_TIMER; sd->expiration_tid = INVALID_TIMER; sd->autotrade_tid = INVALID_TIMER; + sd->respawn_tid = INVALID_TIMER; #ifdef SECURE_NPCTIMEOUT // Initialize to defaults/expected @@ -1459,7 +1463,7 @@ bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_ sd->vars_ok = false; sd->vars_received = 0x0; - sd->qi_display = NULL; + sd->qi_display = nullptr; sd->qi_count = 0; //warp player @@ -2301,14 +2305,12 @@ static void pc_bonus_autospell(std::vector &spell, short id, short flag |= BF_NORMAL; //By default autospells should only trigger on normal weapon attacks. } - if (!battle_config.autospell_stacking && rate > 0) // Stacking disabled, make a new entry - ; - else { - for (auto &it : spell) { - if ((it.card_id == card_id || it.rate < 0 || rate < 0) && it.id == id && it.lv == lv && it.flag == flag) { - it.rate = cap_value(it.rate + rate, -10000, 10000); + for (auto &it : spell) { + if ((it.card_id == card_id || it.rate < 0 || rate < 0) && it.id == id && it.lv == lv && it.flag == flag) { + if (!battle_config.autospell_stacking && it.rate > 0 && rate > 0) // Stacking disabled return; - } + it.rate = cap_value(it.rate + rate, -10000, 10000); + return; } } @@ -3382,6 +3384,13 @@ void pc_bonus(struct map_session_data *sd,int type,int val) if(!sd->state.lr_flag) sd->bonus.hp_gain_value += val; break; + case SP_LONG_SP_GAIN_VALUE: + if(!sd->state.lr_flag) + sd->bonus.long_sp_gain_value += val; + case SP_LONG_HP_GAIN_VALUE: + if(!sd->state.lr_flag) + sd->bonus.long_hp_gain_value += val; + break; case SP_MAGIC_SP_GAIN_VALUE: if(!sd->state.lr_flag) sd->bonus.magic_sp_gain_value += val; @@ -4568,6 +4577,9 @@ char pc_checkadditem(struct map_session_data *sd, unsigned short nameid, int amo if( data->stack.inventory && amount > data->stack.amount ) return CHKADDITEM_OVERAMOUNT; + if (data->flag.guid) + return CHKADDITEM_NEW; + for(i=0;iinventory.u.items_inventory[i].nameid == nameid){ @@ -4897,6 +4909,7 @@ enum e_additem_result pc_additem(struct map_session_data *sd,struct item *item,i } achievement_update_objective(sd, AG_GET_ITEM, 1, id->value_sell); + pc_show_questinfo(sd); return ADDITEM_SUCCESS; } @@ -4933,6 +4946,8 @@ char pc_delitem(struct map_session_data *sd,int n,int amount,int type, short rea if(!(type&2)) clif_updatestatus(sd,SP_WEIGHT); + pc_show_questinfo(sd); + return 0; } @@ -5354,6 +5369,10 @@ enum e_additem_result pc_cart_additem(struct map_session_data *sd,struct item *i if(item->nameid == 0 || amount <= 0) return ADDITEM_INVALID; + + if (itemdb_ishatched_egg(item)) + return ADDITEM_INVALID; + data = itemdb_search(item->nameid); if( data->stack.cart && amount > data->stack.amount ) @@ -6882,6 +6901,8 @@ int pc_checkjoblevelup(struct map_session_data *sd) npc_script_event(sd, NPCE_JOBLVUP); achievement_update_objective(sd, AG_GOAL_LEVEL, 1, sd->status.job_level); + + pc_show_questinfo(sd); return 1; } @@ -7882,6 +7903,7 @@ static TIMER_FUNC(pc_respawn_timer){ if( sd != NULL ) { sd->pvp_point=0; + sd->respawn_tid = INVALID_TIMER; pc_respawn(sd,CLR_OUTSIGHT); } @@ -8267,19 +8289,19 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) ssd->pvp_won++; } if( sd->pvp_point < 0 ) { - add_timer(tick+1000, pc_respawn_timer,sd->bl.id,0); + sd->respawn_tid = add_timer(tick+1000, pc_respawn_timer,sd->bl.id,0); return 1|8; } } //GvG if( mapdata_flag_gvg2(mapdata) ) { - add_timer(tick+1000, pc_respawn_timer, sd->bl.id, 0); + sd->respawn_tid = add_timer(tick+1000, pc_respawn_timer, sd->bl.id, 0); return 1|8; } else if( sd->bg_id ) { struct battleground_data *bg = bg_team_search(sd->bg_id); if( bg && bg->mapindex > 0 ) { // Respawn by BG - add_timer(tick+1000, pc_respawn_timer, sd->bl.id, 0); + sd->respawn_tid = add_timer(tick+1000, pc_respawn_timer, sd->bl.id, 0); return 1|8; } } @@ -8305,6 +8327,41 @@ void pc_revive(struct map_session_data *sd,unsigned int hp, unsigned int sp) { guild_guildaura_refresh(sd,GD_HAWKEYES,guild_checkskill(sd->guild,GD_HAWKEYES)); } } + +bool pc_revive_item(struct map_session_data *sd) { + nullpo_retr(false, sd); + + if (!pc_isdead(sd) || sd->respawn_tid != INVALID_TIMER) + return false; + + if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. + return false; + + int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); + uint8 hp = 100, sp = 100; + + if (item_position < 0) { + if (sd->sc.data[SC_LIGHT_OF_REGENE]) { + hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; + sp = 0; + } + else + return false; + } + + if (!status_revive(&sd->bl, hp, sp)) + return false; + + if (item_position < 0) + status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); + else + pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); + + clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); + + return true; +} + // script // /*========================================== @@ -8361,6 +8418,7 @@ int pc_readparam(struct map_session_data* sd,int type) case SP_ROULETTE_GOLD: val = sd->roulette_point.gold; break; case SP_PCDIECOUNTER: val = sd->die_counter; break; case SP_COOKMASTERY: val = sd->cook_mastery; break; + case SP_ACHIEVEMENT_LEVEL: val = sd->achievement_data.level; break; case SP_CRITICAL: val = sd->battle_status.cri/10; break; case SP_ASPD: val = (2000-sd->battle_status.amotion)/10; break; case SP_BASE_ATK: @@ -8452,6 +8510,8 @@ int pc_readparam(struct map_session_data* sd,int type) case SP_UNSTRIPABLE_SHIELD: val = (sd->bonus.unstripable_equip&EQP_SHIELD)?1:0; break; case SP_SP_GAIN_VALUE: val = sd->bonus.sp_gain_value; break; case SP_HP_GAIN_VALUE: val = sd->bonus.hp_gain_value; break; + case SP_LONG_SP_GAIN_VALUE: val = sd->bonus.long_sp_gain_value; break; + case SP_LONG_HP_GAIN_VALUE: val = sd->bonus.long_hp_gain_value; break; case SP_MAGIC_SP_GAIN_VALUE: val = sd->bonus.magic_sp_gain_value; break; case SP_MAGIC_HP_GAIN_VALUE: val = sd->bonus.magic_hp_gain_value; break; case SP_ADD_HEAL_RATE: val = sd->bonus.add_heal_rate; break; @@ -9372,7 +9432,7 @@ void pc_setmadogear(struct map_session_data* sd, int flag) *------------------------------------------*/ bool pc_candrop(struct map_session_data *sd, struct item *item) { - if( item && (item->expire_time || (item->bound && !pc_can_give_bounded_items(sd))) ) + if( item && ((item->expire_time || (item->bound && !pc_can_give_bounded_items(sd))) || (itemdb_ishatched_egg(item))) ) return false; if( !pc_can_give_items(sd) || sd->sc.cant.drop) //check if this GM level can drop items return false; @@ -10072,7 +10132,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit if( n < 0 || n >= MAX_INVENTORY ) { if( equipswitch ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL ); }else{ clif_equipitemack(sd,0,0,ITEM_EQUIP_ACK_FAIL); } @@ -10080,7 +10140,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit } if( DIFF_TICK(sd->canequip_tick,gettick()) > 0 ) { if( equipswitch ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL ); }else{ clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); } @@ -10096,7 +10156,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit if((res = pc_isequip(sd,n))) { if( equipswitch ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, res ); }else{ clif_equipitemack(sd,n,0,res); // fail } @@ -10104,13 +10164,13 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit } if( equipswitch && id->type == IT_AMMO ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL ); return false; } if (!(pos&req_pos) || sd->inventory.u.items_inventory[n].equip != 0 || sd->inventory.u.items_inventory[n].attribute==1 ) { // [Valaris] if( equipswitch ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL ); }else{ clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); // fail } @@ -10119,7 +10179,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit if( sd->sc.count && (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_SATURDAYNIGHTFEVER] || sd->sc.data[SC_KYOUGAKU] || (sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON)) ) { if( equipswitch ){ - clif_equipswitch_add( sd, n, req_pos, true ); + clif_equipswitch_add( sd, n, req_pos, ITEM_EQUIP_ACK_FAIL ); }else{ clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); //Fail } @@ -10190,7 +10250,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit } sd->inventory.u.items_inventory[n].equipSwitch = pos; - clif_equipswitch_add( sd, n, pos, false ); + clif_equipswitch_add( sd, n, pos, ITEM_EQUIP_ACK_OK ); return true; }else{ for(i=0;iinventory.u.items_inventory[unequipped_index].equipSwitch = unequipped_position; // Notify the client - clif_equipswitch_add( sd, unequipped_index, unequipped_position, false ); + clif_equipswitch_add( sd, unequipped_index, unequipped_position, ITEM_EQUIP_ACK_OK ); } return all_position; @@ -11942,10 +12002,10 @@ void pc_readdb(void) { s = pc_read_statsdb(dbsubpath2,s,i > 0); if (i == 0) -#ifdef RENEWAL_ASPD - sv_readdb(dbsubpath1, DBPATH "job_db1.txt",',',6+MAX_WEAPON_TYPE,6+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, false); +#ifdef RENEWAL_ASPD // Paths are hardcoded here to specifically pick the correct database + sv_readdb(dbsubpath1, "re/job_db1.txt",',',6+MAX_WEAPON_TYPE,6+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, false); #else - sv_readdb(dbsubpath1, DBPATH "job_db1.txt",',',5+MAX_WEAPON_TYPE,5+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, false); + sv_readdb(dbsubpath1, "pre-re/job_db1.txt",',',5+MAX_WEAPON_TYPE,5+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, false); #endif else sv_readdb(dbsubpath1, "job_db1.txt",',',5+MAX_WEAPON_TYPE,6+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, true); @@ -12815,7 +12875,7 @@ void pc_validate_skill(struct map_session_data *sd) { * @param show If show is true and qi_display is 0, set qi_display to 1 and show the event bubble. * If show is false and qi_display is 1, set qi_display to 0 and hide the event bubble. **/ -static void pc_show_questinfo_sub(struct map_session_data *sd, bool *qi_display, struct questinfo *qi, bool show) { +static void pc_show_questinfo_sub(struct map_session_data *sd, bool *qi_display, struct s_questinfo *qi, bool show) { if (show) { // Check if need to be displayed if ((*qi_display) != 1) { @@ -12828,9 +12888,9 @@ static void pc_show_questinfo_sub(struct map_session_data *sd, bool *qi_display, if ((*qi_display) != 0) { (*qi_display) = 0; #if PACKETVER >= 20120410 - clif_quest_show_event(sd, &qi->nd->bl, 9999, 0); + clif_quest_show_event(sd, &qi->nd->bl, QTYPE_NONE, QMARK_NONE); #else - clif_quest_show_event(sd, &qi->nd->bl, 0, 0); + clif_quest_show_event(sd, &qi->nd->bl, QTYPE_QUEST, QMARK_NONE); #endif } } @@ -12842,75 +12902,36 @@ static void pc_show_questinfo_sub(struct map_session_data *sd, bool *qi_display, **/ void pc_show_questinfo(struct map_session_data *sd) { #if PACKETVER >= 20090218 - struct questinfo *qi = NULL; - unsigned short i; - uint8 j; - int8 mystate = 0; - bool failed = false; - nullpo_retv(sd); if (sd->bl.m < 0 || sd->bl.m >= MAX_MAPINDEX) return; struct map_data *mapdata = map_getmapdata(sd->bl.m); + nullpo_retv(mapdata); - if (!mapdata->qi_count || !mapdata->qi_data) + if (mapdata->qi_data.empty()) return; - if (mapdata->qi_count != sd->qi_count) + if (mapdata->qi_data.size() != sd->qi_count) return; // init was not called yet - for(i = 0; i < mapdata->qi_count; i++) { - qi = &mapdata->qi_data[i]; - - if (!qi) - continue; - - if (quest_check(sd, qi->quest_id, HAVEQUEST) != -1) { // Check if quest is not started - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, false); - continue; - } + struct s_questinfo *qi = nullptr; + bool show; - // Level range checks - if (sd->status.base_level < qi->min_level || sd->status.base_level > qi->max_level) { - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, false); - continue; - } - - // Quest requirements - if (qi->req_count) { - failed = false; - for (j = 0; j < qi->req_count; j++) { - mystate = quest_check(sd, qi->req[j].quest_id, HAVEQUEST); - mystate = mystate + (mystate < 1); - if (mystate != qi->req[j].state) { - failed = true; - break; - } - } - if (failed) { - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, false); - continue; - } - } + for (int i = 0; i < mapdata->qi_data.size(); i++) { + qi = &mapdata->qi_data[i]; + if (!qi) + continue; - // Job requirements - if (qi->jobid_count) { - failed = true; - for (j = 0; j < qi->jobid_count; j++) { - if (pc_mapid2jobid(sd->class_,sd->status.sex) == qi->jobid[j]) { - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, true); - failed = false; - break; - } - } - if (!failed) - continue; - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, false); - } + if (!qi->condition) + show = true; else { - pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, true); + if (achievement_check_condition(qi->condition, sd)) + show = true; + else + show = false; } + pc_show_questinfo_sub(sd, &sd->qi_display[i], qi, show); } #endif } @@ -12925,7 +12946,7 @@ void pc_show_questinfo_reinit(struct map_session_data *sd) { if (sd->qi_display) { aFree(sd->qi_display); - sd->qi_display = NULL; + sd->qi_display = nullptr; } sd->qi_count = 0; @@ -12933,10 +12954,12 @@ void pc_show_questinfo_reinit(struct map_session_data *sd) { return; struct map_data *mapdata = map_getmapdata(sd->bl.m); + nullpo_retv(mapdata); - if (!mapdata->qi_count || !mapdata->qi_data) + if (mapdata->qi_data.empty()) return; - CREATE(sd->qi_display, bool, (sd->qi_count = mapdata->qi_count)); + + CREATE(sd->qi_display, bool, (sd->qi_count = mapdata->qi_data.size())); #endif } diff --git a/src/map/pc.hpp b/src/map/pc.hpp index 71111a98cd7..20db1b12e1f 100644 --- a/src/map/pc.hpp +++ b/src/map/pc.hpp @@ -49,6 +49,7 @@ enum sc_type : int16; #define TKMISSIONCOUNT_VAR "TK_MISSION_COUNT" #define ATTENDANCE_DATE_VAR "#AttendanceDate" #define ATTENDANCE_COUNT_VAR "#AttendanceCounter" +#define ACHIEVEMENTLEVEL "AchievementLevel" //Update this max as necessary. 55 is the value needed for Super Baby currently //Raised to 85 since Expanded Super Baby needs it. @@ -505,7 +506,7 @@ struct map_session_data { short splash_range, splash_add_range; short add_steal_rate; int add_heal_rate, add_heal2_rate; - int sp_gain_value, hp_gain_value, magic_sp_gain_value, magic_hp_gain_value; + int sp_gain_value, hp_gain_value, magic_sp_gain_value, magic_hp_gain_value, long_sp_gain_value, long_hp_gain_value; unsigned short unbreakable; // chance to prevent ANY equipment breaking [celest] unsigned short unbreakable_equip; //100% break resistance on certain equipment unsigned short unstripable_equip; @@ -646,7 +647,7 @@ struct map_session_data { /* ShowEvent Data Cache flags from map */ bool *qi_display; - unsigned short qi_count; + int qi_count; // temporary debug [flaviojs] const char* debug_file; @@ -730,7 +731,7 @@ struct map_session_data { short last_addeditem_index; /// Index of latest item added int autotrade_tid; - + int respawn_tid; int bank_vault; ///< Bank Vault #ifdef PACKET_OBFUSCATION @@ -1169,6 +1170,7 @@ int pc_skillheal2_bonus(struct map_session_data *sd, uint16 skill_id); void pc_damage(struct map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp); int pc_dead(struct map_session_data *sd,struct block_list *src); void pc_revive(struct map_session_data *sd,unsigned int hp, unsigned int sp); +bool pc_revive_item(struct map_session_data *sd); void pc_heal(struct map_session_data *sd,unsigned int hp,unsigned int sp, int type); int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp); int pc_percentheal(struct map_session_data *sd,int,int); diff --git a/src/map/pet.cpp b/src/map/pet.cpp index 4173650da5e..541091ef9b5 100644 --- a/src/map/pet.cpp +++ b/src/map/pet.cpp @@ -600,17 +600,13 @@ int pet_hungry_val(struct pet_data *pd) */ void pet_set_intimate(struct pet_data *pd, int value) { - int intimate; - struct map_session_data *sd; - nullpo_retv(pd); - intimate = pd->pet.intimate; - sd = pd->master; - pd->pet.intimate = min(value, PET_INTIMATE_MAX); - if( sd && ((intimate >= battle_config.pet_equip_min_friendly && pd->pet.intimate < battle_config.pet_equip_min_friendly) || (intimate < battle_config.pet_equip_min_friendly && pd->pet.intimate >= battle_config.pet_equip_min_friendly)) ) + struct map_session_data *sd = pd->master; + + if (sd) status_calc_pc(sd,SCO_NONE); } @@ -927,6 +923,10 @@ bool pet_return_egg( struct map_session_data *sd, struct pet_data *pd ){ sd->inventory.u.items_inventory[i].attribute = 0; sd->inventory.dirty = true; pd->pet.incubate = 1; +#if PACKETVER >= 20180704 + clif_inventorylist(sd); + clif_send_petdata(sd, pd, 6, 0); +#endif unit_free(&pd->bl,CLR_OUTSIGHT); status_calc_pc(sd,SCO_NONE); @@ -1067,6 +1067,9 @@ int pet_birth_process(struct map_session_data *sd, struct s_pet *pet) clif_spawn(&sd->pd->bl); clif_send_petdata(sd,sd->pd, 0,0); clif_send_petdata(sd,sd->pd, 5,battle_config.pet_hair_style); +#if PACKETVER >= 20180704 + clif_send_petdata(sd, sd->pd, 6, 1); +#endif clif_pet_equip_area(sd->pd); clif_send_petstatus(sd); } diff --git a/src/map/quest.cpp b/src/map/quest.cpp index d1f486aa598..901798bb364 100644 --- a/src/map/quest.cpp +++ b/src/map/quest.cpp @@ -322,6 +322,7 @@ void quest_update_objective(TBL_PC *sd, int mob_id) // intif_broadcast_obtain_special_item(sd, dropitem->nameid, dropitem->mob_id, ITEMOBTAIN_TYPE_MONSTER_ITEM); } } + pc_show_questinfo(sd); } /** diff --git a/src/map/script.cpp b/src/map/script.cpp index e988d256136..b9ad0f7c7d5 100644 --- a/src/map/script.cpp +++ b/src/map/script.cpp @@ -4410,6 +4410,15 @@ void run_script_main(struct script_state *st) st->bk_st = NULL; } } else { + if (st->stack && st->stack->defsp >= 1 && st->stack->stack_data[st->stack->defsp - 1].type == C_RETINFO) { + for (int i = 0; i < st->stack->sp; i++) { + if (st->stack->stack_data[i].type == C_RETINFO) { // Grab the first, aka the original + st->script = st->stack->stack_data[i].u.ri->script; + break; + } + } + } + //Dispose of script. if ((sd = map_id2sd(st->rid))!=NULL) { //Restore previous stack and save char. @@ -6728,7 +6737,7 @@ static int script_getitem_randomoption(struct script_state *st, struct map_sessi // If no player is attached if( !script_rid2sd(sd) ){ ShowError( "buildin_%s: variable \"%s\" was not a server variable, but no player was attached.\n", funcname, opt_id_var ); - return false; + return SCRIPT_CMD_FAILURE; } } @@ -6747,7 +6756,7 @@ static int script_getitem_randomoption(struct script_state *st, struct map_sessi // If no player is attached if( !script_rid2sd(sd) ){ ShowError( "buildin_%s: variable \"%s\" was not a server variable, but no player was attached.\n", funcname, opt_val_var ); - return false; + return SCRIPT_CMD_FAILURE; } } @@ -6766,7 +6775,7 @@ static int script_getitem_randomoption(struct script_state *st, struct map_sessi // If no player is attached if( !script_rid2sd(sd) ){ ShowError( "buildin_%s: variable \"%s\" was not a server variable, but no player was attached.\n", funcname, opt_param_var ); - return false; + return SCRIPT_CMD_FAILURE; } } @@ -6783,11 +6792,6 @@ static int script_getitem_randomoption(struct script_state *st, struct map_sessi opt_id_ref = reference_getref(opt_id); opt_id_n = script_array_highest_key(st, sd, opt_id_var, opt_id_ref); - if (opt_id_n < 1) { - ShowError("buildin_%s: No option id listed.\n", funcname); - return SCRIPT_CMD_FAILURE; - } - opt_val_ref = reference_getref(opt_val); opt_param_ref = reference_getref(opt_param); @@ -6891,8 +6895,8 @@ int script_countitem_sub(struct item *items, struct item_data *id, int size, boo * Returns number of items in inventory * countitem({,}) * countitem2(,,,,,,,{,}) [Lupus] - * countitem3(,,,,,,,,,,) - * countitem3("",,,,,,,,,,) + * countitem3(,,,,,,,,,,{,}) + * countitem3("",,,,,,,,,,{,}) */ BUILDIN_FUNC(countitem) { @@ -6908,16 +6912,8 @@ BUILDIN_FUNC(countitem) random_option = true; } - if (script_hasdata(st, aid)) { - if (!(sd = map_id2sd(script_getnum(st, aid)))) { - ShowError("buildin_%s: player not found (AID=%d).\n", command, script_getnum(st, aid)); - st->state = END; - return SCRIPT_CMD_FAILURE; - } - } else { - if (!script_rid2sd(sd)) - return SCRIPT_CMD_FAILURE; - } + if (!script_accid2sd(aid, sd)) + return SCRIPT_CMD_FAILURE; struct item_data *id; @@ -6955,16 +6951,8 @@ BUILDIN_FUNC(cartcountitem) if (command[strlen(command) - 1] == '2') aid = 10; - if (script_hasdata(st, aid)) { - if (!(sd = map_id2sd(script_getnum(st, aid)))) { - ShowError("buildin_%s: player not found (AID=%d).\n", command, script_getnum(st, aid)); - st->state = END; - return SCRIPT_CMD_FAILURE; - } - } else { - if (!script_rid2sd(sd)) - return SCRIPT_CMD_FAILURE; - } + if (!script_accid2sd(aid, sd)) + return SCRIPT_CMD_FAILURE; if (!pc_iscarton(sd)) { ShowError("buildin_%s: Player doesn't have cart (CID:%d).\n", command, sd->status.char_id); @@ -7008,16 +6996,8 @@ BUILDIN_FUNC(storagecountitem) if (command[strlen(command) - 1] == '2') aid = 10; - if (script_hasdata(st, aid)) { - if (!(sd = map_id2sd(script_getnum(st, aid)))) { - ShowError("buildin_%s: player not found (AID=%d).\n", command, script_getnum(st, aid)); - st->state = END; - return SCRIPT_CMD_FAILURE; - } - } else { - if (!script_rid2sd(sd)) - return SCRIPT_CMD_FAILURE; - } + if (!script_accid2sd(aid, sd)) + return SCRIPT_CMD_FAILURE; struct item_data *id; @@ -7060,16 +7040,8 @@ BUILDIN_FUNC(guildstoragecountitem) if (command[strlen(command) - 1] == '2') aid = 10; - if (script_hasdata(st, aid)) { - if (!(sd = map_id2sd(script_getnum(st, aid)))) { - ShowError("buildin_%s: player not found (AID=%d).\n", command, script_getnum(st, aid)); - st->state = END; - return SCRIPT_CMD_FAILURE; - } - } else { - if (!script_rid2sd(sd)) - return SCRIPT_CMD_FAILURE; - } + if (!script_accid2sd(aid, sd)) + return SCRIPT_CMD_FAILURE; struct item_data *id; @@ -9699,18 +9671,6 @@ BUILDIN_FUNC(end) st->state = END; - if (st->stack->defsp >= 1 && st->stack->stack_data[st->stack->defsp-1].type == C_RETINFO) { - int i; - - for(i = 0; i < st->stack->sp; i++) { - if (st->stack->stack_data[i].type == C_RETINFO) { // Grab the first, aka the original - struct script_retinfo *ri = st->stack->stack_data[i].u.ri; - st->script = ri->script; - break; - } - } - } - if( st->mes_active ) st->mes_active = 0; @@ -15410,38 +15370,41 @@ BUILDIN_FUNC(isday) BUILDIN_FUNC(isequippedcnt) { TBL_PC *sd; - int i, id = 1; - int ret = 0; - if (!script_rid2sd(sd)) { //If the player is not attached it is a script error anyway... but better prevent the map server from crashing... + if (!script_rid2sd(sd)) { script_pushint(st,0); return SCRIPT_CMD_SUCCESS; } - for (i=0; id!=0; i++) { - short j; - FETCH (i+2, id) else id = 0; + int ret = 0; + int total = script_lastdata(st); + std::vector list(total); + + for (int i = 2; i <= total; ++i) { + int id = script_getnum(st,i); if (id <= 0) continue; + if (std::find(list.begin(), list.end(), id) != list.end()) + continue; + list.push_back(id); - for (j=0; jequip_index[j]; - if(index < 0) + if (index < 0) continue; if (pc_is_same_equip_index((enum equip_index)j, sd->equip_index, index)) continue; - if(!sd->inventory_data[index]) + if (!sd->inventory_data[index]) continue; if (itemdb_type(id) != IT_CARD) { //No card. Count amount in inventory. if (sd->inventory_data[index]->nameid == id) - ret+= sd->inventory.u.items_inventory[index].amount; + ret += sd->inventory.u.items_inventory[index].amount; } else { //Count cards. - short k; if (itemdb_isspecial(sd->inventory.u.items_inventory[index].card[0])) continue; //No cards - for(k=0; kinventory_data[index]->slot; k++) { + for (short k = 0; k < sd->inventory_data[index]->slot; k++) { if (sd->inventory.u.items_inventory[index].card[k] == id) ret++; //[Lupus] } @@ -19324,32 +19287,21 @@ BUILDIN_FUNC(readbook) /****************** Questlog script commands *******************/ - /** - * Add job criteria to questinfo - * @param qi Quest Info - * @param job - * @author [Cydh] - **/ -static void buildin_questinfo_setjob(struct questinfo *qi, int job) { - RECREATE(qi->jobid, unsigned short, qi->jobid_count+1); - qi->jobid[qi->jobid_count++] = job; -} -/** - * questinfo ,{,{,}}; - **/ + +/// questinfo {,{,}}; BUILDIN_FUNC(questinfo) { TBL_NPC* nd = map_id2nd(st->oid); - int quest_id, icon, color = 0; - struct questinfo qi, *q2; - if( nd == NULL || nd->bl.m == -1 ) { + if (!nd || nd->bl.m == -1) { ShowError("buildin_questinfo: No NPC attached.\n"); return SCRIPT_CMD_FAILURE; } - quest_id = script_getnum(st, 2); - icon = script_getnum(st, 3); + struct s_questinfo qi; + struct script_code *script = nullptr; + int color = QMARK_NONE; + int icon = script_getnum(st, 2); #if PACKETVER >= 20120410 switch(icon){ @@ -19379,45 +19331,60 @@ BUILDIN_FUNC(questinfo) break; } #else - if(icon < QTYPE_QUEST || icon > 7) // TODO: check why 7 and not QTYPE_WARG, might be related to icon + 1 below + if (icon < QTYPE_QUEST || icon > 7) // TODO: check why 7 and not QTYPE_WARG, might be related to icon + 1 below icon = QTYPE_QUEST; else icon = icon + 1; #endif - qi.quest_id = quest_id; - qi.icon = (unsigned char)icon; - qi.nd = nd; - - if( script_hasdata(st, 4) ) { - color = script_getnum(st, 4); - if( color < 0 || color > 3 ) { - ShowWarning("buildin_questinfo: invalid color '%d', changing to 0\n",color); + if (script_hasdata(st, 3)) { + color = script_getnum(st, 3); + if (color < QMARK_NONE || color >= QMARK_MAX) { + ShowWarning("buildin_questinfo: invalid color '%d', defaulting to QMARK_NONE.\n",color); script_reportfunc(st); - color = 0; + color = QMARK_NONE; } } - qi.color = (unsigned char)color; - qi.min_level = 1; - qi.max_level = MAX_LEVEL; + if (script_hasdata(st, 4)) { + const char *str = script_getstr(st, 4); - q2 = map_add_questinfo(nd->bl.m, &qi); - q2->req = NULL; - q2->req_count = 0; - q2->jobid = NULL; - q2->jobid_count = 0; + if (str) { + std::string condition(str); - if(script_hasdata(st, 5)) { - int job = script_getnum(st, 5); + if (condition.find( "achievement_condition" ) == std::string::npos) + condition = "achievement_condition( " + condition + " );"; - if (!pcdb_checkid(job)) - ShowError("buildin_questinfo: Nonexistant Job Class.\n"); - else { - buildin_questinfo_setjob(q2, job); + script = parse_script(condition.c_str(), "questinfoparsing", 0, SCRIPT_IGNORE_EXTERNAL_BRACKETS); + if (!script) { + st->state = END; + return SCRIPT_CMD_FAILURE; + } } } + qi.nd = nd; + qi.icon = static_cast(icon); + qi.color = static_cast(color); + qi.condition = script; + + struct map_data *mapdata = map_getmapdata(nd->bl.m); + mapdata->qi_data.push_back(qi); + + return SCRIPT_CMD_SUCCESS; +} + +/** + * questinfo_refresh {}; + **/ +BUILDIN_FUNC(questinfo_refresh) +{ + struct map_session_data *sd; + + if (!script_charid2sd(2, sd)) + return SCRIPT_CMD_FAILURE; + + pc_show_questinfo(sd); return SCRIPT_CMD_SUCCESS; } @@ -19540,36 +19507,38 @@ BUILDIN_FUNC(isbegin_quest) BUILDIN_FUNC(showevent) { TBL_PC *sd; - struct npc_data *nd = map_id2nd(st->oid); - int icon, color = 0; if (!script_charid2sd(4,sd)) return SCRIPT_CMD_FAILURE; - if( sd == NULL || nd == NULL ) + struct npc_data *nd = map_id2nd(st->oid); + + if (!nd) return SCRIPT_CMD_SUCCESS; - icon = script_getnum(st, 2); - if( script_hasdata(st, 3) ) { + int color = QMARK_NONE; + int icon = script_getnum(st, 2); + + if (script_hasdata(st, 3)) { color = script_getnum(st, 3); - if( color < 0 || color > 3 ) { - ShowWarning("buildin_showevent: invalid color '%d', changing to 0\n",color); + if (color < QMARK_NONE || color >= QMARK_MAX) { + ShowWarning("buildin_showevent: Invalid color '%d', defaulting to QMARK_NONE.\n",color); script_reportfunc(st); - color = 0; + color = QMARK_NONE; } } #if PACKETVER >= 20120410 - if(icon < 0 || (icon > 8 && icon != 9999) || icon == 7) - icon = 9999; // Default to nothing if icon id is invalid. + if (icon < 0 || (icon > 8 && icon != QTYPE_NONE) || icon == 7) + icon = QTYPE_NONE; // Default to nothing if icon id is invalid. #else - if(icon < 0 || icon > 7) + if (icon < 0 || icon > 7) icon = 0; else icon = icon + 1; #endif - clif_quest_show_event(sd, &nd->bl, icon, color); + clif_quest_show_event(sd, &nd->bl, static_cast(icon), static_cast(color)); return SCRIPT_CMD_SUCCESS; } @@ -20520,6 +20489,60 @@ BUILDIN_FUNC(instance_info) return SCRIPT_CMD_SUCCESS; } +/*------------------------------------------ +*instance_live_info( {, } ); +- ILI_NAME : Instance Name +- ILI_MODE : Instance Mode +- ILI_OWNER : owner id +*------------------------------------------*/ +BUILDIN_FUNC(instance_live_info) +{ + int type = script_getnum(st, 2); + int id = 0; + + if (type < ILI_NAME || type > ILI_OWNER) { + ShowError("buildin_instance_live_info: Unknown instance information type \"%d\".\n", type); + script_pushint(st, -1); + return SCRIPT_CMD_FAILURE; + } + + if (!script_hasdata(st, 3)) + id = script_instancegetid(st); + else + id = script_getnum(st, 3); + + struct instance_db *db = nullptr; + struct instance_data *im = nullptr; + + if (id > 0 && id < MAX_INSTANCE_DATA) { + im = &instance_data[id]; + + if (im) + db = instance_searchtype_db(im->type); + } + + if (!im || !db) { + if (type == ILI_NAME) + script_pushconststr(st, ""); + else + script_pushint(st, -1); + return SCRIPT_CMD_SUCCESS; + } + + switch( type ) { + case ILI_NAME: + script_pushstrcopy(st, StringBuf_Value(db->name)); + break; + case ILI_MODE: + script_pushint(st, im->mode); + break; + case ILI_OWNER: + script_pushint(st, im->owner_id); + break; + } + return SCRIPT_CMD_SUCCESS; +} + /*========================================== * Custom Fonts *------------------------------------------*/ @@ -22449,97 +22472,6 @@ BUILDIN_FUNC(geteleminfo) { return SCRIPT_CMD_SUCCESS; } - -/** - * Set the quest info of quest_id only showed on player in level range. - * setquestinfo_level ,, - * @author [Cydh] - **/ -BUILDIN_FUNC(setquestinfo_level) { - TBL_NPC* nd = map_id2nd(st->oid); - int quest_id = script_getnum(st, 2); - struct questinfo *qi = map_has_questinfo(nd->bl.m, nd, quest_id); - - if (!qi) { - ShowError("buildin_setquestinfo_level: Quest with ID '%d' is not defined yet.\n", quest_id); - return SCRIPT_CMD_FAILURE; - } - - qi->min_level = script_getnum(st, 3); - qi->max_level = script_getnum(st, 4); - if (!qi->max_level) - qi->max_level = MAX_LEVEL; - - return SCRIPT_CMD_SUCCESS; -} - -/** - * Set the quest info of quest_id only showed for player that has quest criteria - * setquestinfo_req ,,{,,,...}; - * @author [Cydh] - **/ -BUILDIN_FUNC(setquestinfo_req) { - TBL_NPC* nd = map_id2nd(st->oid); - int quest_id = script_getnum(st, 2); - struct questinfo *qi = map_has_questinfo(nd->bl.m, nd, quest_id); - uint8 i = 0; - uint8 num = script_lastdata(st); - - if (!qi) { - ShowError("buildin_setquestinfo_req: Quest with ID '%d' is not defined yet.\n", quest_id); - return SCRIPT_CMD_FAILURE; - } - - if (quest_search(quest_id) == &quest_dummy) { - ShowError("buildin_setquestinfo_req: Quest with ID '%d' is not found in Quest DB.\n", quest_id); - return SCRIPT_CMD_FAILURE; - } - - if (num%2) { - ShowError("buildin_setquestinfo_req: Odd number of parameters(%d) - pairs of requirements are expected.\n", num-2); - return SCRIPT_CMD_FAILURE; - } - - for (i = 3; i <= num; i += 2) { - RECREATE(qi->req, struct questinfo_req, qi->req_count+1); - qi->req[qi->req_count].quest_id = script_getnum(st, i); - qi->req[qi->req_count].state = (script_getnum(st, i+1) >= 2) ? 2 : (script_getnum(st, i+1) <= 0) ? 0 : 1; - qi->req_count++; - } - - return SCRIPT_CMD_SUCCESS; -} - -/** - * Set the quest info of quest_id only showed for player that has specified Job - * setquestinfo_job ,{,...}; - * @author [Cydh] - **/ -BUILDIN_FUNC(setquestinfo_job) { - TBL_NPC* nd = map_id2nd(st->oid); - int quest_id = script_getnum(st, 2); - struct questinfo *qi = map_has_questinfo(nd->bl.m, nd, quest_id); - int job_id = 0; - uint8 i = 0; - uint8 num = script_lastdata(st)+1; - - if (!qi) { - ShowError("buildin_setquestinfo_job: Quest with ID '%d' is not defined yet.\n", quest_id); - return SCRIPT_CMD_FAILURE; - } - - for (i = 3; i < num; i++) { - job_id = script_getnum(st, i); - if (!pcdb_checkid(job_id)) { - ShowError("buildin_setquestinfo_job: Invalid job id '%d' in Quest with ID %d.\n", job_id, quest_id); - continue; - } - buildin_questinfo_setjob(qi, job_id); - } - - return SCRIPT_CMD_SUCCESS; -} - /** * opendressroom({,}); */ @@ -23791,7 +23723,7 @@ BUILDIN_FUNC(achievementexists) { } } - ARR_FIND(0, sd->achievement_data.count, i, sd->achievement_data.achievements[i].achievement_id == achievement_id); + ARR_FIND(0, sd->achievement_data.count, i, sd->achievement_data.achievements[i].achievement_id == achievement_id && sd->achievement_data.achievements[i].completed > 0 ); script_pushint(st, i < sd->achievement_data.count ? true : false); return SCRIPT_CMD_SUCCESS; } @@ -24393,6 +24325,59 @@ BUILDIN_FUNC(getvariableofinstance) return SCRIPT_CMD_SUCCESS; } +/* + convertpcinfo(,) + convertpcinfo(,) + convertpcinfo(,) +*/ +BUILDIN_FUNC(convertpcinfo) { + TBL_PC *sd; + + if (script_isstring(st, 2)) + sd = map_nick2sd(script_getstr(st, 2),false); + else { + int id = script_getnum(st, 2); + sd = map_id2sd(id); + if (!sd) + sd = map_charid2sd(id); + } + + int type = script_getnum(st, 3); + + switch (type) { + case CPC_NAME: + case CPC_CHAR: + case CPC_ACCOUNT: + break; + default: + ShowError("buildin_convertpcinfo: Unknown type %d.\n", type); + script_pushnil(st); + st->state = END; + return SCRIPT_CMD_FAILURE; + } + + if (!sd) { + if (type == CPC_NAME) + script_pushstrcopy(st, ""); + else + script_pushint(st, 0); + return SCRIPT_CMD_SUCCESS; + } + + switch (type) { + case CPC_NAME: + script_pushstrcopy(st, sd->status.name); + break; + case CPC_CHAR: + script_pushint(st, sd->status.char_id); + break; + case CPC_ACCOUNT: + script_pushint(st, sd->status.account_id); + break; + } + return SCRIPT_CMD_SUCCESS; +} + #include "../custom/script.inc" // declarations that were supposed to be exported from npc_chat.cpp @@ -24912,6 +24897,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF(instance_check_guild,"i???"), BUILDIN_DEF(instance_check_clan,"i???"), BUILDIN_DEF(instance_info,"si?"), + BUILDIN_DEF(instance_live_info,"i?"), /** * 3rd-related **/ @@ -24945,7 +24931,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF(useatcmd, "s"), //Quest Log System [Inkfish] - BUILDIN_DEF(questinfo, "ii??"), + BUILDIN_DEF(questinfo, "i??"), BUILDIN_DEF(setquest, "i?"), BUILDIN_DEF(erasequest, "i?"), BUILDIN_DEF(completequest, "i?"), @@ -24953,6 +24939,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF(isbegin_quest,"i?"), BUILDIN_DEF(changequest, "ii?"), BUILDIN_DEF(showevent, "i??"), + BUILDIN_DEF(questinfo_refresh, "?"), //Bound items [Xantara] & [Akinari] BUILDIN_DEF2(getitem,"getitembound","vii?"), @@ -24992,9 +24979,6 @@ struct script_function buildin_func[] = { BUILDIN_DEF(showscript,"s??"), BUILDIN_DEF(ignoretimeout,"i?"), BUILDIN_DEF(geteleminfo,"i?"), - BUILDIN_DEF(setquestinfo_level,"iii"), - BUILDIN_DEF(setquestinfo_req,"iii*"), - BUILDIN_DEF(setquestinfo_job,"ii*"), BUILDIN_DEF(opendressroom,"i?"), BUILDIN_DEF(navigateto,"s???????"), BUILDIN_DEF(getguildalliance,"ii"), @@ -25061,6 +25045,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF(achievement_condition,"i"), BUILDIN_DEF(getvariableofinstance,"ri"), + BUILDIN_DEF(convertpcinfo,"vi"), #include "../custom/script_def.inc" {NULL,NULL,NULL}, diff --git a/src/map/script.hpp b/src/map/script.hpp index 9ed4e494ac5..0ed8c8caca0 100644 --- a/src/map/script.hpp +++ b/src/map/script.hpp @@ -384,7 +384,7 @@ enum petinfo_types { PETINFO_FOODID }; -enum questinfo_types { +enum e_questinfo_types { QTYPE_QUEST = 0, QTYPE_QUEST2, QTYPE_JOB, @@ -402,6 +402,14 @@ enum questinfo_types { QTYPE_NONE = 9999 }; +enum e_questinfo_markcolor : uint8 { + QMARK_NONE = 0, + QMARK_YELLOW, + QMARK_GREEN, + QMARK_PURPLE, + QMARK_MAX +}; + #ifndef WIN32 // These are declared in wingdi.h /* Font Weights */ @@ -699,6 +707,12 @@ enum instance_info_type { IIT_MAP }; +enum e_instance_live_info_type : uint8 { + ILI_NAME, + ILI_MODE, + ILI_OWNER +}; + enum vip_status_type { VIP_STATUS_ACTIVE = 1, VIP_STATUS_EXPIRE, @@ -1933,9 +1947,20 @@ enum e_hat_effects { HAT_EF_WATER_BELOW3, HAT_EF_WATER_BELOW4, HAT_EF_C_VALKYRIE_WING, + HAT_EF_2019RTC_CELEAURA_TW, + HAT_EF_2019RTC1ST_TW, + HAT_EF_2019RTC2ST_TW, + HAT_EF_2019RTC3ST_TW, + HAT_EF_CONS_OF_WIND, HAT_EF_MAX }; +enum e_convertpcinfo_type : uint8 { + CPC_NAME = 0, + CPC_CHAR = 1, + CPC_ACCOUNT = 2 +}; + /** * Player blocking actions related flags. */ diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 4d63ef7ce26..c5fa3dd62da 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -526,6 +526,7 @@ export_parameter(KAFRAPOINT_VAR, SP_KAFRAPOINTS); export_parameter(PCDIECOUNTER_VAR, SP_PCDIECOUNTER); export_parameter(COOKMASTERY_VAR, SP_COOKMASTERY); + export_parameter(ACHIEVEMENTLEVEL, SP_ACHIEVEMENT_LEVEL); export_constant2("bMaxHP",SP_MAXHP); export_constant2("bMaxSP",SP_MAXSP); @@ -734,6 +735,8 @@ export_constant2("bRegenPercentSP", SP_REGEN_PERCENT_SP); export_constant2("bSkillDelay",SP_SKILL_DELAY); export_constant2("bNoWalkDelay",SP_NO_WALK_DELAY); + export_constant2("bLongSPGainValue",SP_LONG_SP_GAIN_VALUE); + export_constant2("bLongHPGainValue",SP_LONG_HP_GAIN_VALUE); /* equip indices */ export_constant(EQI_COMPOUND_ON); @@ -3232,8 +3235,10 @@ export_constant(EFST_MERMAID_LONGING); export_constant(EFST_MAGICAL_FEATHER); export_constant(EFST_DRACULA_CARD); + export_constant(EFST_ALL_PRONTERA_RECALL); export_constant(EFST_LIMIT_POWER_BOOSTER); export_constant(EFST_GIFT_OF_SNOW); + export_constant(EFST_NPC_HALLUCINATIONWALK); export_constant(EFST_TIME_ACCESSORY); export_constant(EFST_EP16_DEF); export_constant(EFST_NORMAL_ATKED_SP); @@ -3304,6 +3309,8 @@ export_constant(EFST_AID_PERIOD_PLUSJOBEXP); export_constant(EFST_AID_PERIOD_DEADPENALTY); export_constant(EFST_AID_PERIOD_ADDSTOREITEMCOUNT); + export_constant(EFST_ALL_GLASTHEIM_RECALL); + export_constant(EFST_ALL_THANATOS_RECALL); export_constant(EFST_MAGICSTONE_OF_GRACE_SET); export_constant(EFST_HISS); export_constant(EFST_NYANGGRASS); @@ -3318,6 +3325,7 @@ export_constant(EFST_BLAZE_BEAD); export_constant(EFST_FROZEN_BEAD); export_constant(EFST_BREEZE_BEAD); + export_constant(EFST_SOULATTACK); export_constant(EFST_AID_PERIOD_RECEIVEITEM_2ND); export_constant(EFST_AID_PERIOD_PLUSEXP_2ND); export_constant(EFST_AID_PERIOD_PLUSJOBEXP_2ND); @@ -3326,6 +3334,8 @@ export_constant(EFST_PHARAOH_CARD); export_constant(EFST_KIEL_CARD); export_constant(EFST_CHEERUP); + export_constant(EFST_GET_CNT_UNREAD_RODEX_CHARDB); + export_constant(EFST_GET_CNT_UNREAD_RODEX_GLOBALDB); export_constant(EFST_S_MANAPOTION); export_constant(EFST_M_DEFSCROLL); export_constant(EFST_AS_RAGGED_GOLEM_CARD); @@ -3348,6 +3358,8 @@ export_constant(EFST_IMMUNE_PROPERTY_UNDEAD); export_constant(EFST_REUSE_LIMIT_NP); export_constant(EFST_SPECIALCOOKIE); + export_constant(EFST_DAMAGE_HEAL2); + export_constant(EFST_DAMAGE_HEAL3); export_constant(EFST_GLORY_OF_RETURN); export_constant(EFST_ATK_POPCORN); export_constant(EFST_MATK_POPCORN); @@ -3415,6 +3427,8 @@ export_constant(EFST_OVERLAPEXPUP2); export_constant(EFST_SOULCURSE); export_constant(EFST_SOUND_OF_DESTRUCTION); + export_constant(EFST_DF_MANAPLUS); + export_constant(EFST_DF_FULLSWINGK); export_constant(EFST_NV_BREAKTHROUGH); export_constant(EFST_HELPANGEL); export_constant(EFST_NV_TRANSCENDENCE); @@ -3423,6 +3437,18 @@ export_constant(EFST_FLOWER_LEAF2); export_constant(EFST_FLOWER_LEAF3); export_constant(EFST_FLOWER_LEAF4); + export_constant(EFST_MISTY_FROST); + export_constant(EFST_MAGIC_POISON); + export_constant(EFST_KAUTE); + export_constant(EFST_JPNONLY_TACTICS); + export_constant(EFST_LUXANIMA); + export_constant(EFST_BATH_FOAM_A); + export_constant(EFST_BATH_FOAM_B); + export_constant(EFST_BATH_FOAM_C); + export_constant(EFST_AROMA_OIL); + export_constant(EFST_REUSE_LIMIT_LUXANIMA); + export_constant(EFST_RELIEVE_DAMAGE); + export_constant(EFST_LOCKON_LASER); /// @APIHOOK_END /// Do not modify code above this, since it will be automatically generated by the API again export_constant(EFST_MAX); @@ -3474,6 +3500,12 @@ export_constant(RC2_BIO5_ACOLYTE_MERCHANT); export_constant(RC2_BIO5_MAGE_ARCHER); export_constant(RC2_BIO5_MVP); + export_constant(RC2_CLOCKTOWER); + export_constant(RC2_THANATOS); + export_constant(RC2_FACEWORM); + export_constant(RC2_HEARTHUNTER); + export_constant(RC2_ROCKRIDGE); + export_constant(RC2_WERNER_LAB); export_constant(RC2_MAX); /* classes */ @@ -3858,6 +3890,12 @@ export_constant(QTYPE_JUMPING_PORING); export_constant(QTYPE_NONE); + /* questinfo Map Mark Color */ + export_constant(QMARK_NONE); + export_constant(QMARK_YELLOW); + export_constant(QMARK_GREEN); + export_constant(QMARK_PURPLE); + /* font weight types */ export_constant(FW_DONTCARE); export_constant(FW_THIN); @@ -4326,6 +4364,11 @@ export_constant(IIT_MAPCOUNT); export_constant(IIT_MAP); + /* instance live info */ + export_constant(ILI_NAME); + export_constant(ILI_MODE); + export_constant(ILI_OWNER); + /* VIP status */ export_constant(VIP_STATUS_ACTIVE); export_constant(VIP_STATUS_EXPIRE); @@ -5915,7 +5958,25 @@ export_constant_npc(JT_4_F_EINRESERCHER); export_constant_npc(JT_4_F_REINDEER); export_constant_npc(JT_4_PIGOCTO); + export_constant_npc(JT_4_ORK_HERO); export_constant_npc(JT_4_JP_16TH); + export_constant_npc(JT_4_EP17_MASTER_A); + export_constant_npc(JT_4_EP17_BASIC_B); + export_constant_npc(JT_4_EP17_GUARD_B); + export_constant_npc(JT_4_EP17_BASIC_B_NG); + export_constant_npc(JT_4_EP17_GUARD_B_NG); + export_constant_npc(JT_4_EP17_SWEETY); + export_constant_npc(JT_4_EP17_BOY_A); + export_constant_npc(JT_4_EP17_BOY_B); + export_constant_npc(JT_4_EP17_TAMARIN); + export_constant_npc(JT_4_EP17_SCISSORE); + export_constant_npc(JT_4_EP17_TABLET); + export_constant_npc(JT_4_EP17_BUCKETS); + export_constant_npc(JT_4_EP17_CLEANER); + export_constant_npc(JT_4_EP17_BASKET); + export_constant_npc(JT_4_EP17_BROKENBETA); + export_constant_npc(JT_4_EP17_CLEANER_W); + export_constant_npc(JT_4_EP17_MERMAID); export_constant_npc(JT_NEW_NPC_3RD_END); #undef export_constant_npc @@ -7144,6 +7205,11 @@ export_constant(HAT_EF_WATER_BELOW3); export_constant(HAT_EF_WATER_BELOW4); export_constant(HAT_EF_C_VALKYRIE_WING); + export_constant(HAT_EF_2019RTC_CELEAURA_TW); + export_constant(HAT_EF_2019RTC1ST_TW); + export_constant(HAT_EF_2019RTC2ST_TW); + export_constant(HAT_EF_2019RTC3ST_TW); + export_constant(HAT_EF_CONS_OF_WIND); /* pet catch */ export_constant(PET_CATCH_UNIVERSAL); @@ -7268,6 +7334,11 @@ export_constant(PCBLOCK_EMOTION); export_constant(PCBLOCK_ALL); + /* convertpcinfo command */ + export_constant(CPC_NAME); + export_constant(CPC_CHAR); + export_constant(CPC_ACCOUNT); + #undef export_constant #undef export_constant2 #undef export_parameter diff --git a/src/map/skill.cpp b/src/map/skill.cpp index a217787cc5f..04cdb81920b 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -490,8 +490,11 @@ bool skill_pos_maxcount_check(struct block_list *src, int16 x, int16 y, uint16 s * @return modified heal value */ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, bool heal) { - int skill, hp = 0, hp_bonus = 0; + int skill, hp = 0; +#ifdef RENEWAL + int hp_bonus = 0; double global_bonus = 1; +#endif struct map_session_data *sd = BL_CAST(BL_PC, src); struct map_session_data *tsd = BL_CAST(BL_PC, target); struct status_change *sc, *tsc; @@ -516,10 +519,15 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk hp = (skill_lv > 6) ? 666 : skill_lv * 100; break; case AB_HIGHNESSHEAL: +#ifdef RENEWAL hp = ((status_get_int(src) + status_get_lv(src)) / 5) * 30; if (sd && ((skill = pc_checkskill(sd, HP_MEDITATIO)) > 0)) hp_bonus += skill * 2; +#else + hp = ((status_get_lv(src) + status_get_int(src)) / 8) * (4 + ((sd ? pc_checkskill(sd, AL_HEAL) : 1) * 8)); + hp = (hp * (17 + 3 * skill_lv)) / 10; +#endif break; case SU_FRESHSHRIMP: hp = (status_get_lv(src) + status_get_int(src)) / 5 * 6; @@ -539,11 +547,20 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk #else hp = (status_get_lv(src) + status_get_int(src)) / 8 * (4 + (skill_lv * 8)); #endif - if( sd && ((skill = pc_checkskill(sd, HP_MEDITATIO)) > 0) ) + + if (sd && ((skill = pc_checkskill(sd, HP_MEDITATIO)) > 0)) +#ifdef RENEWAL hp_bonus += skill * 2; +#else + hp += hp * skill * 2 / 100; +#endif else if (src->type == BL_HOM && (skill = hom_checkskill(((TBL_HOM*)src), HLIF_BRAIN)) > 0) +#ifdef RENEWAL hp_bonus += skill * 2; - if( sd && tsd && sd->status.partner_id == tsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0 ) +#else + hp += hp * skill * 2 / 100; +#endif + if (sd && tsd && sd->status.partner_id == tsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0) hp *= 2; break; } @@ -552,40 +569,78 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk hp >>= 1; if (sd && ((skill = pc_checkskill(sd, SU_POWEROFSEA)) > 0)) { +#ifdef RENEWAL hp_bonus += 10; +#else + hp += hp * 10 / 100; +#endif if (pc_checkskill(sd, SU_TUNABELLY) == 5 && pc_checkskill(sd, SU_TUNAPARTY) == 5 && pc_checkskill(sd, SU_BUNCHOFSHRIMP) == 5 && pc_checkskill(sd, SU_FRESHSHRIMP) == 5) +#ifdef RENEWAL hp_bonus += 20; +#else + hp += hp * 20 / 100; +#endif } - if( sd && (skill = pc_skillheal_bonus(sd, skill_id)) ) + if (sd && (skill = pc_skillheal_bonus(sd, skill_id))) +#ifdef RENEWAL hp_bonus += skill; +#else + hp += hp * skill / 100; +#endif - if( tsd && (skill = pc_skillheal2_bonus(tsd, skill_id)) ) + if (tsd && (skill = pc_skillheal2_bonus(tsd, skill_id))) +#ifdef RENEWAL hp_bonus += skill; +#else + hp += hp * skill / 100; +#endif if (sc && sc->count) { if (sc->data[SC_OFFERTORIUM] && (skill_id == AB_HIGHNESSHEAL || skill_id == AB_CHEAL || skill_id == PR_SANCTUARY || skill_id == AL_HEAL)) +#ifdef RENEWAL hp_bonus += sc->data[SC_OFFERTORIUM]->val2; +#else + hp += hp * sc->data[SC_OFFERTORIUM]->val2 / 100; +#endif if (sc->data[SC_GLASTHEIM_HEAL] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) +#ifdef RENEWAL hp_bonus += sc->data[SC_GLASTHEIM_HEAL]->val1; +#else + hp += hp * sc->data[SC_GLASTHEIM_HEAL]->val1 / 100; +#endif } if (tsc && tsc->count) { if (skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) { if (tsc->data[SC_INCHEALRATE]) +#ifdef RENEWAL hp_bonus += tsc->data[SC_INCHEALRATE]->val1; //Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish] +#else + hp += hp * tsc->data[SC_INCHEALRATE]->val1 / 100; +#endif if (tsc->data[SC_GLASTHEIM_HEAL]) +#ifdef RENEWAL hp_bonus += tsc->data[SC_GLASTHEIM_HEAL]->val2; +#else + hp += hp * tsc->data[SC_GLASTHEIM_HEAL]->val2 / 100; +#endif if (tsc->data[SC_ANCILLA]) +#ifdef RENEWAL hp_bonus += tsc->data[SC_ANCILLA]->val1; +#else + hp += hp * tsc->data[SC_ANCILLA]->val1 / 100; + if (tsc->data[SC_WATER_INSIGNIA] && tsc->data[SC_WATER_INSIGNIA]->val1 == 2) + hp += hp / 10; +#endif } } +#ifdef RENEWAL if (hp_bonus) hp += hp * hp_bonus / 100; -#ifdef RENEWAL // MATK part of the RE heal formula [malufett] // Note: in this part matk bonuses from items or skills are not applied switch( skill_id ) { @@ -622,7 +677,6 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk hp += min; } } -#endif // Global multipliers are applied after the MATK is applied if (tsc && tsc->count) { @@ -634,6 +688,7 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk if (skill_id == AB_HIGHNESSHEAL) global_bonus *= 2 + 0.3f * (skill_lv - 1); +#endif if (heal && tsc && tsc->count) { uint8 penalty = 0; @@ -645,14 +700,22 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk if (tsc->data[SC_NORECOVER_STATE]) penalty = 100; if (penalty > 0) { +#ifdef RENEWAL penalty = cap_value(penalty, 1, 100); global_bonus *= (100 - penalty) / 100.f; +#else + hp -= hp * penalty / 100; +#endif } } +#ifdef RENEWAL hp = (int)(hp * global_bonus); return (heal) ? max(1, hp) : hp; +#else + return hp; +#endif } /** @@ -1094,7 +1157,6 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 struct mob_data *md, *dstmd; struct status_data *sstatus, *tstatus; struct status_change *sc, *tsc; - enum sc_type status; int skill; int rate; @@ -1511,13 +1573,6 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 sc_start2(src,bl, SC_BLEEDING,50, skill_lv, src->id, skill_get_time2(skill_id,skill_lv)); break; - case LK_JOINTBEAT: - status = status_skill2sc(skill_id); - if (tsc->jb_flag) { - sc_start4(src,bl,status,(5*skill_lv+5),skill_lv,tsc->jb_flag&BREAK_FLAGS,src->id,0,skill_get_time2(skill_id,skill_lv)); - tsc->jb_flag = 0; - } - break; case ASC_METEORASSAULT: //Any enemies hit by this skill will receive Stun, Darkness, or external bleeding status ailment with a 5%+5*skill_lv% chance. switch(rnd()%3) { @@ -2392,6 +2447,10 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * sp += sd->sp_gain_race[status_get_race(bl)] + sd->sp_gain_race[RC_ALL]; hp += sd->bonus.hp_gain_value; } + if( (attack_type&(BF_WEAPON|BF_LONG)) == (BF_WEAPON|BF_LONG) ) { + sp += sd->bonus.long_sp_gain_value; + hp += sd->bonus.long_hp_gain_value; + } if( attack_type&BF_MAGIC ) { sp += sd->bonus.magic_sp_gain_value; hp += sd->bonus.magic_hp_gain_value; @@ -2680,10 +2739,10 @@ bool skill_strip_equip(struct block_list *src, struct block_list *target, uint16 time = skill_get_time(skill_id, skill_lv); if (target->type == BL_PC) - time += skill_lv + 500 * (sstatus->dex - tstatus->dex); + time += max(1, skill_lv + 500 * (sstatus->dex - tstatus->dex)); else { time += 15000; - time += skill_lv + 500 * (sstatus->dex - tstatus->dex); + time += max(1, skill_lv + 500 * (sstatus->dex - tstatus->dex)); } break; } @@ -4774,19 +4833,12 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION); break; - case LK_JOINTBEAT: // decide the ailment first (affects attack damage and effect) - switch( rnd()%6 ){ - case 0: flag |= BREAK_ANKLE; break; - case 1: flag |= BREAK_WRIST; break; - case 2: flag |= BREAK_KNEE; break; - case 3: flag |= BREAK_SHOULDER; break; - case 4: flag |= BREAK_WAIST; break; - case 5: flag |= BREAK_NECK; break; - } - //TODO: is there really no cleaner way to do this? - sc = status_get_sc(bl); - if (sc) sc->jb_flag = flag; - skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); + case LK_JOINTBEAT: + flag = 1 << rnd() % 6; + if (flag != BREAK_NECK && tsc && tsc->data[SC_JOINTBEAT] && tsc->data[SC_JOINTBEAT]->val2 & BREAK_NECK) + flag = BREAK_NECK; // Target should always receive double damage if neck is already broken + if (skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag)) + sc_start4(src, bl, SC_JOINTBEAT, 50 + (skill_lv + 1), skill_lv, flag&BREAK_FLAGS, src->id, 0, skill_get_time2(skill_id, skill_lv)); break; case MO_COMBOFINISH: @@ -6633,10 +6685,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif_skill_nodamage (src,src,skill_id,skill_lv,1); // Initiate 20% of your damage becomes fire element. sc_start4(src,src,SC_WATK_ELEMENT,100,3,20,0,0,skill_get_time2(skill_id, skill_lv)); - if( sd ) - skill_blockpc_start(sd, skill_id, skill_get_time(skill_id, skill_lv)); - else if( bl->type == BL_MER ) - skill_blockmerc_start((TBL_MER*)bl, skill_id, skill_get_time(skill_id, skill_lv)); break; case TK_JUMPKICK: @@ -12291,7 +12339,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui case SC_ESCAPE: skill_unitsetting(src, skill_id, skill_lv, x, y, 0); - skill_blown(src, src, skill_get_blewcount(skill_id, skill_lv), unit_getdir(src), BLOWN_NONE); + skill_blown(src, src, skill_get_blewcount(skill_id, skill_lv), unit_getdir(src), BLOWN_IGNORE_NO_KNOCKBACK); // Don't stop the caster from backsliding if special_state.no_knockback is active clif_skill_nodamage(src,src,skill_id,skill_lv,1); flag |= 1; break; @@ -16601,12 +16649,13 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 if (bl->type == BL_MOB || bl->type == BL_NPC) return (int)time; - if (fixed < 0 || !battle_config.default_fixed_castrate) // no fixed cast time + if (fixed < 0) // no fixed cast time fixed = 0; else if (fixed == 0) { fixed = (int)time * battle_config.default_fixed_castrate / 100; // fixed time time = time * (100 - battle_config.default_fixed_castrate) / 100; // variable time } + // Else, use fixed cast time from database (when default_fixed_castrate is set to 0) // Additive Variable Cast bonus adjustments by items if (sd && !(flag&4)) { @@ -21012,7 +21061,7 @@ static bool skill_parse_row_skilldb(char* split[], int columns, int current) skill_db[idx]->hit = atoi(split[2]); skill_db[idx]->inf = atoi(split[3]); skill_split_atoi(split[4],skill_db[idx]->element); - skill_db[idx]->nk = (uint8)strtol(split[5], NULL, 0); + skill_db[idx]->nk = static_cast(strtol(split[5], NULL, 0)); skill_split_atoi(split[6],skill_db[idx]->splash); skill_db[idx]->max = atoi(split[7]); skill_split_atoi(split[8],skill_db[idx]->num); diff --git a/src/map/skill.hpp b/src/map/skill.hpp index 4a5ac6f8d65..8fe8fabcdc8 100644 --- a/src/map/skill.hpp +++ b/src/map/skill.hpp @@ -38,7 +38,7 @@ extern DBMap* skilldb_name2id; /// Constants to identify a skill's nk value (damage properties) /// The NK value applies only to non INF_GROUND_SKILL skills /// when determining skill castend function to invoke. -enum e_skill_nk { +enum e_skill_nk : uint16 { NK_NO_DAMAGE = 0x01, NK_SPLASH = 0x02|0x04, // 0x4 = splash & split NK_SPLASHSPLIT = 0x04, @@ -47,6 +47,7 @@ enum e_skill_nk { NK_IGNORE_DEF = 0x20, NK_IGNORE_FLEE = 0x40, NK_NO_CARDFIX_DEF = 0x80, + NK_CRITICAL = 0x100, }; /// Constants to identify the skill's inf value: @@ -181,7 +182,7 @@ struct s_skill_db { int8 hit; ///< Hit type uint8 inf; ///< Inf: 0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap int element[MAX_SKILL_LEVEL]; ///< Element - uint8 nk; ///< Damage properties + uint16 nk; ///< Damage properties int splash[MAX_SKILL_LEVEL]; ///< Splash effect uint8 max; ///< Max level int num[MAX_SKILL_LEVEL]; ///< Number of hit diff --git a/src/map/status.cpp b/src/map/status.cpp index cb5d3a1f043..3059451b78a 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -2435,8 +2435,13 @@ unsigned short status_base_atk(const struct block_list *bl, const struct status_ { int flag = 0, str, dex, dstr; - if(!(bl->type&battle_config.enable_baseatk)) +#ifdef RENEWAL + if (!(bl->type&battle_config.enable_baseatk_renewal)) + return 0; +#else + if (!(bl->type&battle_config.enable_baseatk)) return 0; +#endif if (bl->type == BL_PC) switch(((TBL_PC*)bl)->status.weapon) { @@ -3828,9 +3833,10 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt) if( sd->pd ) { // Pet Bonus struct pet_data *pd = sd->pd; std::shared_ptr pet_db_ptr = pd->get_pet_db(); - if( pet_db_ptr != nullptr && pet_db_ptr->pet_bonus_script && pd->pet.intimate >= battle_config.pet_equip_min_friendly ) + + if (pet_db_ptr != nullptr && pet_db_ptr->pet_bonus_script) run_script(pet_db_ptr->pet_bonus_script,0,sd->bl.id,0); - if( pet_db_ptr != nullptr && pd->pet.intimate > 0 && (!battle_config.pet_equip_required || pd->pet.equip > 0) && pd->state.skillbonus == 1 && pd->bonus ) + if (pet_db_ptr != nullptr && pd->pet.intimate > 0 && (!battle_config.pet_equip_required || pd->pet.equip > 0) && pd->state.skillbonus == 1 && pd->bonus) pc_bonus(sd,pd->bonus->type, pd->bonus->val); } @@ -8188,6 +8194,10 @@ t_tick status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_ tick /= 5; sc_def = status->agi*50; break; + case SC_JOINTBEAT: + sc_def2 = 270 * status->str / 100; // 270 * STR / 100 + tick_def2 = (status->luk * 50 + status->agi * 200) / 2; // (50 * LUK / 100 + 20 * AGI / 100) / 2 + break; case SC_DEEPSLEEP: tick_def2 = status_get_base_status(bl)->int_ * 25 + status_get_lv(bl) * 50; break; @@ -9524,6 +9534,8 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty return 0; break; case SC_JOINTBEAT: + if (sc && sc->data[type]->val2 & BREAK_NECK) + return 0; // BREAK_NECK cannot be stacked with new breaks until the status is over. val2 |= sce->val2; // Stackable ailments default: if(sce->val1 > val1) diff --git a/src/map/status.hpp b/src/map/status.hpp index 4d89e1817eb..fb4e8a80d43 100644 --- a/src/map/status.hpp +++ b/src/map/status.hpp @@ -1729,9 +1729,10 @@ enum efst_types : short{ EFST_MERMAID_LONGING, EFST_MAGICAL_FEATHER, EFST_DRACULA_CARD, - - EFST_LIMIT_POWER_BOOSTER = 867, + EFST_ALL_PRONTERA_RECALL, + EFST_LIMIT_POWER_BOOSTER, EFST_GIFT_OF_SNOW, + EFST_NPC_HALLUCINATIONWALK, EFST_TIME_ACCESSORY = 872, EFST_EP16_DEF, @@ -1804,6 +1805,9 @@ enum efst_types : short{ EFST_AID_PERIOD_PLUSJOBEXP, EFST_AID_PERIOD_DEADPENALTY, EFST_AID_PERIOD_ADDSTOREITEMCOUNT, + EFST_ALL_GLASTHEIM_RECALL, + + EFST_ALL_THANATOS_RECALL = 945, EFST_MAGICSTONE_OF_GRACE_SET = 948, @@ -1824,8 +1828,8 @@ enum efst_types : short{ EFST_BLAZE_BEAD = 979, EFST_FROZEN_BEAD, EFST_BREEZE_BEAD, - - EFST_AID_PERIOD_RECEIVEITEM_2ND = 983, + EFST_SOULATTACK, + EFST_AID_PERIOD_RECEIVEITEM_2ND, EFST_AID_PERIOD_PLUSEXP_2ND, EFST_AID_PERIOD_PLUSJOBEXP_2ND, EFST_PRONTERA_JP, @@ -1835,8 +1839,9 @@ enum efst_types : short{ EFST_KIEL_CARD, EFST_CHEERUP = 992, - - EFST_S_MANAPOTION = 995, + EFST_GET_CNT_UNREAD_RODEX_CHARDB, + EFST_GET_CNT_UNREAD_RODEX_GLOBALDB, + EFST_S_MANAPOTION, EFST_M_DEFSCROLL, EFST_AS_RAGGED_GOLEM_CARD = 1000, @@ -1860,8 +1865,9 @@ enum efst_types : short{ EFST_IMMUNE_PROPERTY_UNDEAD, EFST_REUSE_LIMIT_NP, EFST_SPECIALCOOKIE, - - EFST_GLORY_OF_RETURN = 1030, + EFST_DAMAGE_HEAL2, + EFST_DAMAGE_HEAL3, + EFST_GLORY_OF_RETURN, EFST_ATK_POPCORN, EFST_MATK_POPCORN, EFST_ASPD_POPCORN, @@ -1937,8 +1943,9 @@ enum efst_types : short{ EFST_SOULCURSE = 1125, EFST_SOUND_OF_DESTRUCTION, - - EFST_NV_BREAKTHROUGH = 1129, + EFST_DF_MANAPLUS, + EFST_DF_FULLSWINGK, + EFST_NV_BREAKTHROUGH, EFST_HELPANGEL, EFST_NV_TRANSCENDENCE, EFST_SWEETSFAIR_ATK, @@ -1947,21 +1954,36 @@ enum efst_types : short{ EFST_FLOWER_LEAF2 = 1135, EFST_FLOWER_LEAF3, EFST_FLOWER_LEAF4, + + EFST_MISTY_FROST = 1141, + EFST_MAGIC_POISON, + EFST_KAUTE, + + EFST_JPNONLY_TACTICS = 1147, + + EFST_LUXANIMA = 1154, + EFST_BATH_FOAM_A, + EFST_BATH_FOAM_B, + EFST_BATH_FOAM_C, + EFST_AROMA_OIL, + EFST_REUSE_LIMIT_LUXANIMA, + + EFST_RELIEVE_DAMAGE = 1166, + EFST_LOCKON_LASER, /// @APIHOOK_END /// Do not modify code above this, since it will be automatically generated by the API again EFST_MAX, }; /// JOINTBEAT stackable ailments -enum e_joint_break -{ - BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50% - BREAK_WRIST = 0x02, ///< ASPD reduced by 25% - BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10% - BREAK_SHOULDER = 0x08, ///< DEF reduced by 50% - BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25% - BREAK_NECK = 0x20, ///< current attack does 2x damage, inflicts 'bleeding' for 30 seconds - BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK, +enum e_joint_break : uint8 { + BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50% + BREAK_WRIST = 0x02, ///< ASPD reduced by 25% + BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10% + BREAK_SHOULDER = 0x08, ///< DEF reduced by 50% + BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25% + BREAK_NECK = 0x20, ///< Current attack does 2x damage, inflicts 'bleeding' for 30 seconds + BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK, }; extern short current_equip_item_index; @@ -2327,7 +2349,6 @@ struct status_change { unsigned short opt2;// health state (bitfield) unsigned char count; //! TODO: See if it is possible to implement the following SC's without requiring extra parameters while the SC is inactive. - unsigned char jb_flag; //Joint Beat type flag struct { unsigned char move; unsigned char pickup; diff --git a/src/map/storage.cpp b/src/map/storage.cpp index 8e376e3db57..328ddd99df7 100644 --- a/src/map/storage.cpp +++ b/src/map/storage.cpp @@ -212,6 +212,9 @@ static enum e_storage_add storage_canAddItem(struct s_storage *stor, int idx, st if (amount < 1 || amount > items[idx].amount) return STORAGE_ADD_INVALID; + if (itemdb_ishatched_egg(&items[idx])) + return STORAGE_ADD_INVALID; + if (!stor->state.put) return STORAGE_ADD_NOACCESS; diff --git a/src/map/trade.cpp b/src/map/trade.cpp index a047129344a..3316b9393c0 100644 --- a/src/map/trade.cpp +++ b/src/map/trade.cpp @@ -385,6 +385,9 @@ void trade_tradeadditem(struct map_session_data *sd, short index, short amount) return; } + if (itemdb_ishatched_egg(item)) + return; + if( item->expire_time ) { // Rental System clif_displaymessage (sd->fd, msg_txt(sd,260)); clif_tradeitemok(sd, index+2, 1); diff --git a/src/map/unit.cpp b/src/map/unit.cpp index 58a1bfeca59..b4c744dd589 100644 --- a/src/map/unit.cpp +++ b/src/map/unit.cpp @@ -3283,6 +3283,9 @@ int unit_free(struct block_list *bl, clr_type clrtype) // Clearing... if (sd->bonus_script.head) pc_bonus_script_clear(sd, BSF_REM_ALL); + + skill_clear_unitgroup(bl); + status_change_clear(bl,1); break; } case BL_PET: { @@ -3304,6 +3307,9 @@ int unit_free(struct block_list *bl, clr_type clrtype) if( sd ) sd->pd = NULL; pd->master = NULL; + + skill_clear_unitgroup(bl); + status_change_clear(bl,1); break; } case BL_MOB: { @@ -3359,6 +3365,9 @@ int unit_free(struct block_list *bl, clr_type clrtype) md->base_status = NULL; } + skill_clear_unitgroup(bl); + status_change_clear(bl,1); + if( mob_is_clone(md->mob_id) ) mob_clone_delete(md); @@ -3385,6 +3394,9 @@ int unit_free(struct block_list *bl, clr_type clrtype) if( sd ) sd->hd = NULL; hd->master = NULL; + + skill_clear_unitgroup(bl); + status_change_clear(bl,1); break; } case BL_MER: { @@ -3405,6 +3417,9 @@ int unit_free(struct block_list *bl, clr_type clrtype) mercenary_contract_stop(md); md->master = NULL; + + skill_clear_unitgroup(bl); + status_change_clear(bl,1); break; } case BL_ELEM: { @@ -3425,12 +3440,13 @@ int unit_free(struct block_list *bl, clr_type clrtype) elemental_summon_stop(ed); ed->master = NULL; + + skill_clear_unitgroup(bl); + status_change_clear(bl,1); break; } } - skill_clear_unitgroup(bl); - status_change_clear(bl,1); map_deliddb(bl); if( bl->type != BL_PC ) // Players are handled by map_quit diff --git a/tools/ci/sql.bat b/tools/ci/sql.bat index 2da0898cefe..41ed133799d 100644 --- a/tools/ci/sql.bat +++ b/tools/ci/sql.bat @@ -2,40 +2,25 @@ rem MySQL database setup -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "CREATE DATABASE %DB_NAME%;" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\main.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\logs.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db2.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2_re.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\roulette_default_data.sql" - -%MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "GRANT SELECT,INSERT,UPDATE,DELETE ON %DB_NAME%.* TO '%DB_USER%'@'%DB_HOST%' IDENTIFIED BY '%DB_USERPW%';" +rem Use the `MYSQL_PWD` environment variable to avoid insecure warning. +set MYSQL_PWD=%DB_ROOTPW% + +%MYSQL% -u %DB_ROOT% -e "CREATE DATABASE %DB_NAME%;" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\main.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\logs.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_cash_db.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_cash_db2.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_db.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_db2.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_db_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\item_db2_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_db.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_db2.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_db_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_db2_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_skill_db.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_skill_db2.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_skill_db_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\mob_skill_db2_re.sql" +%MYSQL% -u %DB_ROOT% %DB_NAME% -e "source sql-files\roulette_default_data.sql" +%MYSQL% -u %DB_ROOT% -e "GRANT SELECT,INSERT,UPDATE,DELETE ON %DB_NAME%.* TO '%DB_USER%'@'%DB_HOST%' IDENTIFIED BY '%DB_USERPW%';"