Merge branch 'master' into hotfix/issue3589

This commit is contained in:
aleos89 2019-04-02 13:56:16 -04:00
commit 5b92ccf2a0
238 changed files with 12920 additions and 5031 deletions

3
.gitattributes vendored
View File

@ -1,5 +1,6 @@
* text=auto
*.c diff=cpp
*.cpp diff=cpp
*.yml diff
*.sln merge=union
*.vcproj merge=union
*.vcxproj merge=union

6
.gitignore vendored
View File

@ -29,6 +29,7 @@ Thumbs.db
*.a
*.vcxproj.user
/char-server
/csv2yaml
/config.log
/config.status
/core
@ -71,7 +72,7 @@ Thumbs.db
/src/common/Makefile
/src/common/obj_all
/src/common/obj_sql
/src/common/svnversion.h
/src/common/version.hpp
# /src/custom/
/src/custom
@ -83,7 +84,7 @@ Thumbs.db
# /src/map/
/src/map/Makefile
/src/map/obj_sql
/src/map/pcre.h
/src/map/pcre.hpp
# /src/tool/
/src/tool/Makefile
@ -112,6 +113,7 @@ Thumbs.db
# bat tools
/charserv.bat
/csv2yaml.bat
/logserv.bat
/mapcache.bat
/mapserv.bat

View File

@ -25,6 +25,7 @@ brianluau <brianluau@users.noreply.github.com> <brianluau@54d463be-8e91-2dee-ded
cydh <cydh@users.noreply.github.com> <cydh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
Daegaladh <Daegaladh@users.noreply.github.com> <daegaladh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
Deadly Silence <mail@deadly-silence.de> <deadlysilence@54d463be-8e91-2dee-dedb-b68131a5f0ec>
Epoque1 <22254628+Epoque1@users.noreply.github.com> <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
euphyy <euphy.raliel@rathena.org> <euphyy@54d463be-8e91-2dee-dedb-b68131a5f0ec>
flaviojs <flaviojs2005@gmail.com> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>
flaviojs <flaviojs2005@gmail.com> <flaviojs2005@54d463be-8e91-2dee-dedb-b68131a5f0ec>
@ -133,7 +134,6 @@ skotlex <skotlex@mailforce.net> <Skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# evera <evera@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# SinSloth <SinSloth@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# epoque11 <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# DracoRPG <DracoRPG@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# littlewolf <littlewolf@54d463be-8e91-2dee-dedb-b68131a5f0ec>
# eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec>

View File

@ -137,7 +137,7 @@ matrix:
## MacOS default MySQL configuration does not like our card seller(only full group by)
# - ./tools/ci/npc.sh
# - make clean
# - make server
# - make all
# - ./login-server --run-once
# - ./char-server --run-once
# - ./map-server --run-once
@ -181,7 +181,7 @@ script:
- ./configure $CONFIGURE_FLAGS || travis_terminate 1
- ./tools/ci/npc.sh
- make clean || travis_terminate 1
- make server || travis_terminate 1
- make all || travis_terminate 1
- ./login-server --run-once
- ./char-server --run-once
- ./map-server --run-once

View File

@ -227,6 +227,7 @@ Sirius_White
sk
SketchyPhoenix
Skotlex
SnakeDrak
spamrat
SPDFMember
spira

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Who should have a baseatk value (makes str affect damage)? (Note 3)

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Melee damage adjustments (non skills) for Battleground maps (Note 2)

View File

@ -4,7 +4,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Buying store (Note 1)
@ -71,6 +71,18 @@ feature.achievement: on
// Requires: 2017-02-08bRagexeRE or later
feature.equipswitch: on
// Pet evolution (Note 1)
// Requires: 2014-10-08aRagexe or later
feature.petevolution: on
// Automatic Pet Feeding (Note 1)
// Requires: 2014-10-08aRagexe or later
feature.petautofeed: on
// At which hunger rate should pet autofeeding trigger? (Note 2)
// Default: 89
feature.pet_autofeed_rate: 89
// Homunculues Autofeeding (Note 1)
// Requires: 2017-09-20bRagexeRE or later
feature.homunculus_autofeed: on

View File

@ -24,7 +24,7 @@ partial_name_scan: yes
// Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
ban_hack_trade: 5
// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.h)
// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.hpp)
// modifies @mobinfo to display the users' real drop rate as per renewal_drop formula
// modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level)
// modifies @whodrops to display the users' real drop rate as per renewal_drop formula
@ -34,3 +34,9 @@ atcommand_mobinfo_type: 1
// This option is for @baselevelup and @joblevelup
// Default: no
atcommand_levelup_events: no
// Disable atcommands while a player is attached to a npc? (Note 1)
// This can be changed by script commands 'enable_command' and 'disable_command'.
// Anyone with the 'command_enable' permission in the 'conf/group.conf' can bypass this.
// Default: yes
atcommand_disable_npc: yes

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Homunculus setting (Note 3)

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// The highest value at which an item can be sold via the merchant vend skill. (in zeny)

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// PK Server Mode. Turns entire server pvp(excluding towns). Experience loss is doubled if killed by another player.
@ -99,7 +99,7 @@ duel_only_on_same_map: no
// Set to 0 for no cell stacking checks and free movement.
// Custom - This variation will make every full cell to be considered a wall.
// NOTE: For the custom setting to take effect you have to use a server compiled
// with Cell Stack Limit support (see src/map/map.h)
// with Cell Stack Limit support (see src/map/map.hpp)
official_cell_stack_limit: 1
custom_cell_stack_limit: 1

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// The HP rate of MVPs. (Note 2)

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Rate for catching pets (Note 2)
@ -21,10 +21,6 @@ pet_friendly_rate: 100
// The rate at which a pet will become hungry. (Note 2)
pet_hungry_delay_rate: 100
// If your pet is hungry by how much will the friendlyness decrease by. (Default is 5)
// Note: The friendlyness is 0-1000 total, at 0 the pet runs away.
pet_hungry_friendly_decrease: 5
// Does the pet need its equipment before it does its skill? (Note 1)
pet_equip_required: yes
@ -39,9 +35,6 @@ pet_damage_support: no
// At max (1000) support rate is 150%.
pet_support_min_friendly: 900
// Same as above, but this is to use the pet_script field with official pet abilities.
pet_equip_min_friendly: 900
// Whether or not the pet's will use skills. (Note 1)
// Note: Offensive pet skills need at least pet_attack_support or
// pet_damage_support to work (they trigger while the pet is attacking).
@ -81,3 +74,7 @@ pet_ignore_infinite_def: yes
// Whether or not the pet will continue to attack when the master is dead. (Note 1)
pet_master_dead: no
// Send auto-feed notice even if the client setting is OFF (Note 1)
// Official: yes
pet_autofeed_always: yes

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Players' maximum HP rate? (Default is 100)

View File

@ -6,7 +6,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Should skill casting be cancelled when inflicted by curse/stun/sleep/etc (includes silence) (Note 3)?

View File

@ -109,7 +109,7 @@ save_log: yes
// Starting point for new characters
// Format: <map_name>,<x>,<y>{:<map_name>,<x>,<y>...}
// Max number of start points is MAX_STARTPOINT in char.h (default 5)
// Max number of start points is MAX_STARTPOINT in char.hpp (default 5)
// Location is randomly picked on character creation.
// NOTE: For Doram, this requires client 20151001 or newer.
start_point: iz_int,18,26:iz_int01,18,26:iz_int02,18,26:iz_int03,18,26:iz_int04,18,26
@ -117,7 +117,7 @@ start_point_pre: new_1-1,53,111:new_2-1,53,111:new_3-1,53,111:new_4-1,53,111:new
start_point_doram: lasa_fild01,48,297
// Starting items for new characters
// Max number of items is MAX_STARTITEM in char.c (default 32)
// Max number of items is MAX_STARTITEM in char.cpp (default 32)
// Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
// To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
// NOTE: For Doram, this requires client 20151001 or newer.

View File

@ -93,7 +93,6 @@ groups: (
trade or party */
can_trade: true
can_party: true
command_enable: true
attendance: true
}
},
@ -284,6 +283,7 @@ groups: (
permissions: {
can_trade: true
can_party: true
command_enable: true
all_skill: false
all_equipment: false
skill_unconditional: false

View File

@ -10,7 +10,11 @@
# Table: "<storage_table>" // (string) Name of table where storage is saved. The table stucture is the same as the default storage table.
# Max: <max_amount> // (int) *optional* Maximum number of items in storage. MAX_STORAGE will be used if no value is defined.
###############################################################################################################################################
#Storages:
Header:
Type: INTER_SERVER_DB
Version: 1
#Body:
# - ID: 1
# Name: "VIP Storage"
# Table: "vip_storage"

View File

@ -28,7 +28,15 @@
# Table: "<storage_table>" // (string) Name of table where storage is saved. The table stucture is the same as the default storage table.
# Max: <max_amount> // (int) *optional* Maximum number of items in storage. MAX_STORAGE will be used if no value is defined.
Storages:
- ID: 0
Name: "Storage"
Table: "storage"
Header:
Type: INTER_SERVER_DB
Version: 1
Body:
- ID: 0
Name: "Storage"
Table: "storage"
Footer:
Imports:
- Path: conf/import/inter_server.yml

View File

@ -4,7 +4,7 @@
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
//--------------------------------------------------------------
// Enable Logs? (Note 3)

View File

@ -89,7 +89,7 @@ min_group_id_to_connect: -1
vip_group: 5
// How many characters are allowed per account?
// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.h, or chars_per_account
// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.hpp, or chars_per_account
// will default to MAX_CHARS.
// 0 will default to the value of MIN_CHARS. (default)
chars_per_account: 0

View File

@ -1,2 +1,2 @@
// Internal default is limited to 128 lines. If you need more, you will need to modify the MOTD_LINE_SIZE definition in pc.c
// Internal default is limited to 128 lines. If you need more, you will need to modify the MOTD_LINE_SIZE definition in pc.cpp
Welcome to rAthena! Enjoy! Please report any bugs you find.

View File

@ -458,8 +458,7 @@
// Homunculus messages
450: You already have a homunculus
// Return pet to egg message
451: You can't return your pet because your inventory is full.
//451 free
// Message System
460: Please enter a valid language (usage: @langtype <language>).
@ -857,7 +856,10 @@
793: Usage @camerainfo range rotation latitude
//794-899 free
// pcblock command
794: This action is currently blocked.
//795-899 free
//------------------------------------
// More atcommands message
@ -1556,7 +1558,7 @@
1391: You do not possess a cart to be removed
1392: Cart Added.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: You can't use commands while dead.
// @clearstorage

View File

@ -441,8 +441,7 @@
// Homunculus messages
450: 你已經擁有一個人工生命體了
// Return pet to egg message
451: 你無法收回寵物,因為你身上沒有空間了
//451 free
// Message System
460: 請輸入合法的語言 (usage: @langtype <language>).
@ -1373,7 +1372,7 @@
1391: You do not possess a cart to be removed
1392: Cart Added.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: 角色死亡時不能使用指令。
// @clearstorage

View File

@ -449,8 +449,7 @@
// Homunculus messages
450: Vous possédez déjà un homunculus
// Return pet to egg message
451: Vous ne pouvez pas remettre votre pet dans son oeuf car votre inventaire est plein.
//451 free
// Message System
460: Entrez une langue (usage: @langtype <langue>).
@ -1386,7 +1385,7 @@
1391: Vous ne possédez pas de chariot.
1392: Chariot ajouté.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: Les morts ne pouvent pas utiliser de commande.
// @clearstorage

View File

@ -459,8 +459,7 @@
// Pesan-pesan untuk Homunculus
450: Kamu sudah memiliki homunculus
// Pesan tentang mengembalikan peliharaan ke telur
451: Kamu tidak dapat mengembalikan peliharaan kamu karena inventory penuh.
//451 free
// Sistem Pesan
460: Harap masukkan tipe bahasa yang valid. (Penggunaan: @langtype <bahasa>).
@ -1477,7 +1476,7 @@
1391: Kamu tidak memiliki keranjang yang akan dihapus.
1392: Gerobak ditambahkan.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: Kamu tidak bisa menggunakan perintah ini ketika mati.
// @clearstorage

View File

@ -468,8 +468,7 @@
// Mensagens de homunculus
450: Você já possui um homunculus
// Mensagem de retorno do pet ao ovo
451: Você não pode retornar o seu bichinho de estimação para o ovo pois o seu inventário está lotado.
//451 free
// Sistema de Mensagens
460: Digite um idioma válido (uso: @langtype <idioma>).
@ -1556,7 +1555,7 @@
1391: Você não possui um carrinho para remover
1392: Carrinho Adicionado.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: Você não pode utilizar comandos caso esteja morto.
// @clearstorage

View File

@ -449,8 +449,7 @@
// Сообщения команды @makehomun
450: У вас уже есть гомункулус
// Возвращение питомца в яйцо
451: Вы не можете вернуть питомца в яйцо, потому что ваш инвентарь забит.
//451 free
// @langtype
460: Введите существующий язык (Используйте: @langtype <язык>).
@ -1386,7 +1385,7 @@
1391: У вас нет телеги.
1392: Телега добавлена.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: Вы не можете использовать команды когда мертвы.
// @clearstorage

View File

@ -458,8 +458,7 @@
// Mensajes de homúnculos
450: Ya tienes un homúnculo.
// Mensaje al devolver la mascota al huevo
451: No puedes devolver tu mascota al huevo porque tu inventario está lleno.
//451 free
// Sistema de mensajería
460: Introduce un idioma válido (instrucciones: @langtype <idioma>)
@ -1527,7 +1526,7 @@
1391: No tienes ningún carro.
1392: Ahora tienes un carro.
// atccomand.c::is_atcommand
// atccomand.cpp::is_atcommand
1393: No puedes utilizar ningún comando porque estás muerto.
// @clearstorage

View File

@ -447,8 +447,7 @@
// Homunculus messages
450: へ沉<E381B8> Homunculus 吐勹崤榍.
// Return pet to egg message
451: ㅨ념쥡杆죠철胥瀛揀되茵텄熔㏛닻宣촤窺琓㏅←벚系尸둘픕圭축든<ECB695>.
//451 free
// Message System
460: 饣么嗯淄±疑曳砧甸艇∫<E88987> (窃刚悛<E5889A>: @langtype <酪梢>).
@ -1379,7 +1378,7 @@
1391: へ充凌琳枚啖绻氛瑷信和汀.
1392: 翟吹验<E590B9>多㈢灌谜潞瞄吐.
// atcommand.c::is_atcommand
// atcommand.cpp::is_atcommand
1393: へ充凌室烈枚悛椁邮谚т撮愎⒊械衣吐罔.
// @clearstorage

2
configure vendored
View File

@ -1339,7 +1339,7 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-manager=ARG memory managers: no, builtin, memwatch, dmalloc,
gcollect, bcheck (defaults to builtin)
--enable-packetver=ARG Sets the PACKETVER define. (see src/common/mmo.h)
--enable-packetver=ARG Sets the PACKETVER define. (see src/common/mmo.hpp)
--enable-epoll use epoll(4) on Linux
--enable-debug[=ARG] Compiles extra debug code. (disabled by default)
(available options: yes, no, gdb)

90
db/achievement_db.yml Normal file
View File

@ -0,0 +1,90 @@
# This file is a part of rAthena.
# Copyright(C) 2017 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Renewal Achievement Database
###########################################################################
#
# Achievement Settings
#
###########################################################################
# ID - Unique achievement ID.
###########################################################################
# Group - Achievement group type. Each achievement type calls a specific
# objective check.
# Valid groups:
# AG_ADD_FRIEND
# AG_ADVENTURE
# AG_BABY
# AG_BATTLE
# AG_CHATTING
# AG_CHATTING_COUNT
# AG_CHATTING_CREATE
# AG_CHATTING_DYING
# AG_EAT
# AG_GET_ITEM
# AG_GET_ZENY
# AG_GOAL_ACHIEVE
# AG_GOAL_LEVEL
# AG_GOAL_STATUS
# AG_HEAR
# AG_JOB_CHANGE
# AG_MARRY
# AG_PARTY
# AG_ENCHANT_FAIL
# AG_ENCHANT_SUCCESS
# AG_SEE
# AG_SPEND_ZENY
# AG_TAMING
###########################################################################
# Name - Achievement name. Used when sending rewards through RODEX.
###########################################################################
# Target - A list of monster ID and count values that the achievement
# requires. The target count can also be used for achievements that keep
# a counter while not being related to monster kills.
# Capped at MAX_ACHIEVEMENT_OBJECTIVES.
###########################################################################
# Condition - A conditional statement that must be met for the achievement
# to be considered complete.
###########################################################################
# Map - A map name that is used for the AG_CHATTING type which increments
# the counter based on the player's map.
###########################################################################
# Dependent: - A list of achievement IDs that need to be completed before
# this achievement is considered complete.
###########################################################################
# Reward - A list of rewards that are given on completion. All fields are
# optional.
# ItemID: Item ID
# Amount: Amount of Item ID (default 1)
# Script: Bonus Script
# TitleID: Title ID
###########################################################################
# Score - Achievement points that are given on completion.
###########################################################################
Header:
Type: ACHIEVEMENT_DB
Version: 1
Footer:
Imports:
- Path: db/pre-re/achievement_db.yml
Mode: Prerenewal
- Path: db/re/achievement_db.yml
Mode: Renewal
- Path: db/import/achievement_db.yml

11
db/attendance.yml Normal file
View File

@ -0,0 +1,11 @@
Header:
Type: ATTENDANCE_DB
Version: 1
Footer:
Imports:
- Path: db/pre-re/attendance.yml
Mode: Prerenewal
- Path: db/re/attendance.yml
Mode: Renewal
- Path: db/import/attendance.yml

View File

@ -1,30 +0,0 @@
// Guild Skill Tree Database
//
// Structure of Database:
// SkillID,MaxLv,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5 //GUILD SKILLNAME#Skill Name#
//
// 01. SkillID Skill ID of the guild skill.
// 02. MaxLv Maximum level of the guild skill.
// 03. Prerequisite SkillID Guild skill required for the skill to become available.
// 04. Prerequisite SkillLv Level of the required guild skill.
// ...
//
// NOTE: MAX_GUILD_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.
10000,1,0,0,0,0,0,0,0,0,0,0 //GD_APPROVAL#Official Guild Approval#
10001,1,10000,1,0,0,0,0,0,0,0,0 //GD_KAFRACONTRACT#Contract with Kafra#
10002,1,10000,1,0,0,0,0,0,0,0,0 //GD_GUARDRESEARCH#Guardian Research#
10003,3,0,0,0,0,0,0,0,0,0,0 //GD_GUARDUP#Strengthen Guardians#
10004,10,0,0,0,0,0,0,0,0,0,0 //GD_EXTENSION#Guild Extension#
10005,0,0,0,0,0,0,0,0,0,0,0 //GD_GLORYGUILD#Guilds Glory#
10006,5,0,0,0,0,0,0,0,0,0,0 //GD_LEADERSHIP#Great Leadership#
10007,5,0,0,0,0,0,0,0,0,0,0 //GD_GLORYWOUNDS#Glorious Wounds#
10008,5,10007,1,0,0,0,0,0,0,0,0 //GD_SOULCOLD#Cold Heart#
10009,5,10006,1,0,0,0,0,0,0,0,0 //GD_HAWKEYES#Sharp Gaze#
10010,1,10000,1,10004,2,0,0,0,0,0,0 //GD_BATTLEORDER#Battle Command#
10011,3,10000,1,10004,5,10010,1,0,0,0,0 //GD_REGENERATION#Regeneration#
10012,1,10011,1,0,0,0,0,0,0,0,0 //GD_RESTORE#Restoration#
10013,1,10000,1,10002,1,10004,5,10010,1,10011,1 //GD_EMERGENCYCALL#Urgent Call#
10014,1,0,0,0,0,0,0,0,0,0,0 //GD_DEVELOPMENT#Permanent Development#
10016,5,0,0,0,0,0,0,0,0,0,0 //GD_GUILD_STORAGE#Guild Storage Expansion#

44
db/guild_skill_tree.yml Normal file
View File

@ -0,0 +1,44 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Guild Skill Database
###########################################################################
#
# Guild Skill Settings
#
###########################################################################
# Id - Skill ID of the guild skill.
###########################################################################
# MaxLevel - Maximum level of the guild skill.
###########################################################################
# Required - A list of required skills for the skill to become available.
# Id: Skill ID of the required guild skill.
# Level: Level of the required guild skill.
###########################################################################
Header:
Type: GUILD_SKILL_TREE_DB
Version: 1
Footer:
Imports:
- Path: db/pre-re/guild_skill_tree.yml
Mode: Prerenewal
- Path: db/re/guild_skill_tree.yml
Mode: Renewal
- Path: db/import/guild_skill_tree.yml

View File

@ -77,4 +77,6 @@
# Score - Achievement points that are given on completion.
###########################################################################
Achievements:
Header:
Type: ACHIEVEMENT_DB
Version: 1

View File

@ -1,3 +1,3 @@
Header:
Type: ATTENDANCE_CONF
Type: ATTENDANCE_DB
Version: 1

View File

@ -1,13 +0,0 @@
// Guild Skill Tree Database
//
// Structure of Database:
// SkillID,MaxLv,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5 //GUILD SKILLNAME#Skill Name#
//
// 01. SkillID Skill ID of the guild skill.
// 02. MaxLv Maximum level of the guild skill.
// 03. Prerequisite SkillID Guild skill required for the skill to become available.
// 04. Prerequisite SkillLv Level of the required guild skill.
// ...
//
// NOTE: MAX_GUILD_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.

View File

@ -0,0 +1,36 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Custom Guild Skill Database
###########################################################################
#
# Guild Skill Settings
#
###########################################################################
# Id - Skill ID of the guild skill.
###########################################################################
# MaxLevel - Maximum level of the guild skill.
###########################################################################
# Required - A list of required skills for the skill to become available.
# Id: Skill ID of the required guild skill.
# Level: Level of the required guild skill.
###########################################################################
Header:
Type: GUILD_SKILL_TREE_DB
Version: 1

View File

@ -1,60 +0,0 @@
// Pet Additional Database
//
// Structure of Database:
// MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script
//
// 01. MobID Monster ID of the pet.
// 02. Name Name of the monster as defined in the database.
// 03. JName The display name of the monster when hatched.
// 04. LureID Pet Tame Item ID.
// 05. EggID Pet Egg ID.
// 06. EquipID Pet Accessory ID.
// 07. FoodID Pet Food ID.
// 08. Fullness The amount Hunger is decreased every [HungryDelay] seconds.
// 09. HungryDelay The amount of time it takes for hunger to decrease after feeding. (Default: 60 seconds)
// 10. R_Hungry Amount of Intimacy that is increased when fed.
// 11. R_Full Amount of Intimacy that is decreased when over-fed.
// 12. Intimate Amount of Intimacy the pet starts with.
// 13. Die Amount of Intimacy that is decreased when the pet owner dies.
// 14. Capture Capture succes rate (10000 = 100%)
// 15. Speed Pet's walk speed. (Defaul: 150)
// 16. S_Performance Special Performance. (Yes = 1, No = 0)
// 17. talk_convert_class Disables pet talk (instead of talking they emote with /!.)
// 18. attack_rate Rate of which the pet will attack (requires at least pet_support_min_friendly intimacy).
// 19. defence_attack_rate Rate of which the pet will retaliate when master is being attacked (requires at least pet_support_min_friendly intimacy).
// 20. change_target_rate Rate of which the pet will change its attack target.
// 21. pet_script Script to execute when the pet is hatched.
// 22. loyal_script Script to execute when the pet is hatched (requires at least pet_equip_min_friendly intimacy, independent of pet_script).
//NOTE: The max value (100%) of attack_rate, defense_rate & change_target_rate is 10000.
//In theory you can use any valid script, but it is run only once upon pet
//loading, so it is recommended you use the specific pet scripts:
//petskillattack skillid, skilllv, rate, bonusrate
//Skill attack that triggers while the pet is attacking. Rate is the base
//chance of execution per attack. Bonusrate is an additional success rate when
//intimacy reaches max.
//petskillattack2 skillid, damage, hits, rate, bonusrate
//Same as petskillattack, but the damage and number of hits is fixed
//the damage specified is total, not per hit.
//petskillsupport skillid, skilllv, delay, hp%, sp%
//Casts a support skill when the health levels are below the specified hp% and
//sp%. Delay is the minimum time in seconds before the skill can be cast again
//petheal amount, delay, hp%, sp%
//Similar to petskillsupport, but the skill is fixed to heal (28) and the
//heal-amount is fixed to the value given.
//petrecovery type, delay: Cures the "type" status effect after "delay" seconds
//petskillbonus type, value, duration, delay
//Gives bonus stats. Type is the stat to increase (bStr, bLuk), value is the
//amount by which it is increased, duration signals how long the bonus lasts
//delay is the time elapsed after the bonus ends and before it starts again.
//A single pet can have petloot, petskillbonus, petskillattack (or
//petskillattack2) and petskillsupport (or petheal) at the same time,
//but only one of each.

486
db/import-tmpl/pet_db.yml Normal file
View File

@ -0,0 +1,486 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Custom Pet Database
###########################################################################
#
# Pet Settings
#
###########################################################################
# - Mob Monster that can be used as pet
# TameItem Pet Tame Item.
# EggItem Pet Egg Item.
# EquipItem Pet Accessory Item. (Default: 0)
# FoodItem Pet Food Item. (Default: 0)
# Fullness The amount of hunger is decreased every [HungryDelay] seconds.
# HungryDelay The amount of time in seconds it takes for hunger to decrease after feeding. (Default: 60)
# HungerIncrease The amount of hunger that is increased every time the pet is fed (Default: 20)
# IntimacyStart Amount of Intimacy the pet starts with. (Default: 250)
# IntimacyFed Amount of Intimacy that is increased when fed. (Default: 50)
# IntimacyOverfed Amount of Intimacy that is increased when over-fed. (Default: -100)
# IntimacyHungry Amount of Intimacy that is increased when the pet is hungry. (Default: -5)
# IntimacyOwnerDie Amount of Intimacy that is increased when the pet owner dies. (Default: -20)
# CaptureRate Capture success rate. (10000 = 100%)
# SpecialPerformance If a pet has a Special Performance. (Default: true)
# AttackRate Rate of which the pet will attack [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# RetaliateRate Rate of which the pet will retaliate when master is being attacked [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# ChangeTargetRate Rate of which the pet will change its attack target. (10000 = 100%)
# AllowAutoFeed Allows turning automatic pet feeding on. (Default: false)
# Script Bonus script to execute when the pet is alive. (Default: null)
# SupportScript Bonus script to execute when pet_status_support is enabled. (Default: null)
# Evolution: Pet evolution settings. (Optional) (Default: null)
# - Target Mob this pet can evolve to.
# ItemRequirements: Item requirements for evolving this pet.
# - Item Self-explanatory
# Amount
###########################################################################
Header:
Type: PET_DB
Version: 1
#Body:
# - Mob: PORING
# AttackRate: 350
# RetaliateRate: 400
# ChangeTargetRate: 800
# SupportScript: >
# petloot 10;
# - Mob: DROPS
# AttackRate: 300
# RetaliateRate: 400
# ChangeTargetRate: 500
# SupportScript: >
# petloot 10;
# - Mob: POPORING
# AttackRate: 300
# RetaliateRate: 500
# ChangeTargetRate: 400
# SupportScript: >
# petloot 15;
# - Mob: LUNATIC
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 1000
# SupportScript: >
# petskillbonus bLuk,3,10,50;
# - Mob: PICKY
# AttackRate: 500
# RetaliateRate: 600
# ChangeTargetRate: 50
# SupportScript: >
# petskillbonus bStr,3,10,50;
# - Mob: CHONCHON
# AttackRate: 500
# RetaliateRate: 500
# ChangeTargetRate: 250
# SupportScript: >
# petskillbonus bAgi,4,10,50;
# - Mob: STEEL_CHONCHON
# AttackRate: 500
# RetaliateRate: 500
# ChangeTargetRate: 200
# SupportScript: >
# petskillbonus bAgiVit,4,20,40;
# - Mob: HUNTER_FLY
# AttackRate: 500
# RetaliateRate: 500
# ChangeTargetRate: 200
# SupportScript: >
# petskillattack2 "NPC_WINDATTACK",888,2,0,10;
# - Mob: SAVAGE_BABE
# AttackRate: 500
# RetaliateRate: 500
# ChangeTargetRate: 200
# SupportScript: >
# petskillbonus bVit,4,10,50;
# - Mob: DESERT_WOLF_B
# AttackRate: 400
# RetaliateRate: 400
# ChangeTargetRate: 400
# SupportScript: >
# petskillattack "SM_PROVOKE",1,0,5;
# - Mob: ROCKER
# AttackRate: 350
# RetaliateRate: 350
# ChangeTargetRate: 600
# SupportScript: >
# petskillbonus bAllStats,1,10,50;
# - Mob: SPORE
# AttackRate: 350
# RetaliateRate: 500
# ChangeTargetRate: 500
# SupportScript: >
# petrecovery SC_POISON,60;
# - Mob: POISON_SPORE
# AttackRate: 600
# RetaliateRate: 200
# ChangeTargetRate: 400
# SupportScript: >
# petskillattack "NPC_POISON",20,0,10;
# - Mob: PECOPECO
# AttackRate: 400
# RetaliateRate: 500
# ChangeTargetRate: 800
# SupportScript: >
# petskillbonus bSpeedRate,25,20,20;
# - Mob: SMOKIE
# AttackRate: 600
# RetaliateRate: 600
# ChangeTargetRate: 100
# SupportScript: >
# petskillbonus bPerfectHide,1,3600,0;
# - Mob: YOYO
# AttackRate: 300
# RetaliateRate: 800
# ChangeTargetRate: 400
# SupportScript: >
# petloot 20;
# - Mob: ORK_WARRIOR
# AttackRate: 600
# RetaliateRate: 200
# ChangeTargetRate: 300
# SupportScript: >
# petskillattack2 "NPC_PIERCINGATT",100,1,0,10;
# - Mob: MUNAK
# AttackRate: 300
# RetaliateRate: 750
# ChangeTargetRate: 300
# SupportScript: >
# petskillattack2 "NPC_DARKNESSATTACK",444,1,0,10;
# - Mob: DOKEBI
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "BS_HAMMERFALL",1,0,10;
# - Mob: SOHEE
# AttackRate: 100
# RetaliateRate: 1000
# ChangeTargetRate: 200
# SupportScript: >
# petskillsupport "AL_HEAL",5,60,33,100;
# - Mob: ISIS
# AttackRate: 650
# RetaliateRate: 450
# ChangeTargetRate: 150
# SupportScript: >
# petskillsupport "PR_MAGNIFICAT",2,60,50,50;
# - Mob: PETIT
# AttackRate: 800
# RetaliateRate: 400
# ChangeTargetRate: 100
# SupportScript: >
# petskillattack2 "WZ_HEAVENDRIVE",500,1,0,10;
# - Mob: DEVIRUCHI
# AttackRate: 800
# RetaliateRate: 200
# ChangeTargetRate: 100
# SupportScript: >
# petskillbonus bAgiDexStr,6,20,40;
# - Mob: BAPHOMET_
# AttackRate: 1000
# RetaliateRate: 100
# ChangeTargetRate: 200
# SupportScript: >
# petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5;
# - Mob: BON_GUN
# AttackRate: 600
# RetaliateRate: 200
# ChangeTargetRate: 400
# SupportScript: >
# petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1;
# - Mob: ZHERLTHSH
# AttackRate: 1000
# RetaliateRate: 100
# ChangeTargetRate: 500
# SupportScript: >
# petskillattack "AS_SONICBLOW",1,0,3;
# - Mob: ALICE
# AttackRate: 100
# RetaliateRate: 1000
# ChangeTargetRate: 200
# SupportScript: >
# petskillsupport "AL_HEAL",5,60,25,100;
# - Mob: EVENT_RICECAKE
# AttackRate: 500
# RetaliateRate: 500
# ChangeTargetRate: 200
# SupportScript: >
# petskillsupport "CR_DEFENDER",3,240,50,100;
# - Mob: GOBLINE_XMAS
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "MG_SIGHT",5,5,5;
# - Mob: CHUNG_E
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "CR_SHIELDCHARGE",5,5,5;
# - Mob: ECLIPSE_P
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "TF_THROWSTONE",1,5,5;
# - Mob: GOBLIN_1
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "NPC_WINDATTACK",5,5,5;
# - Mob: GOBLIN_2
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "NPC_FIREATTACK",5,5,5;
# - Mob: GOBLIN_4
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "NPC_GROUNDATTACK",5,5,5;
# - Mob: DELETER_
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "SM_MAGNUM",5,5,5;
# - Mob: DIABOLIC
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "WZ_METEOR",2,5,5;
# - Mob: WANDER_MAN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "NPC_UNDEADATTACK",5,5,5;
# - Mob: P_CHUNG_E
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# petskillattack "CR_SHIELDCHARGE",5,5,5;
# - Mob: GOLEM
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MARIONETTE
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MEDUSA
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: WHISPER
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: GOBLIN_LEADER
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: SUCCUBUS
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# bonus2 bHPDrainRate,10,5;
# - Mob: INCUBUS
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# SupportScript: >
# bonus bMaxSPRate,3;
# bonus2 bSPDrainRate,10,1;
# - Mob: NIGHTMARE_TERROR
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: SHINOBI
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MIYABI_NINGYO
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: WICKED_NYMPH
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: STONE_SHOOTER
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: DULLAHAN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: LOLI_RURI
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: CIVIL_SERVANT
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: LEAF_CAT
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: BACSOJIN_
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: IMP
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: E_CRAMP
# AttackRate: 350
# RetaliateRate: 400
# ChangeTargetRate: 800
# - Mob: E_HYDRA
# AttackRate: 350
# RetaliateRate: 400
# ChangeTargetRate: 800
# - Mob: J_TAINI
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: XMAS_LUNATIC
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: TIKBALANG
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MARIN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: LITTLE_PORING
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: NINE_TAIL
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: GREMLIN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MUMMY
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: TEDDY_BEAR
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MASTERING
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: METALLER
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: ANGELING
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: MOONLIGHT
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: SAVAGE
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: HIGH_ORC
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: CHOCO
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: ANCIENT_MUMMY
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: AM_MUT
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: CAT_O_NINE_TAIL
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: GRAND_PECO
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: HYEGUN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: HODREMLIN
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: XM_TEDDY_BEAR
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: DR_EGGRING
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: DR_LUNATIC
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: LITTLE_ISIS
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: DIABOLIC2
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: DELETER_2
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800
# - Mob: SWEETS_DROPS
# AttackRate: 300
# RetaliateRate: 300
# ChangeTargetRate: 800

View File

@ -18,7 +18,7 @@
//
// Notes:
// - By default you can list up to 10 MonsterIDs per ItemID.
// It can be changed in src/map/mob.c by adjusting MAX_ITEMRATIO_MOBS.
// It can be changed in src/map/mob.cpp by adjusting MAX_ITEMRATIO_MOBS.
// - Only ItemIDs up to MAX_ITEMDB are supported (default: 32768).
// - Does not override item_drop_*_min/max settings.
// - Does not affect card/item-granted drops. To adjust card/item-granted

63
db/pet_db.yml Normal file
View File

@ -0,0 +1,63 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Pet Database
###########################################################################
#
# Pet Settings
#
###########################################################################
# - Mob Monster that can be used as pet
# TameItem Pet Tame Item.
# EggItem Pet Egg Item.
# EquipItem Pet Accessory Item. (Default: 0)
# FoodItem Pet Food Item. (Default: 0)
# Fullness The amount of hunger is decreased every [HungryDelay] seconds.
# HungryDelay The amount of time in seconds it takes for hunger to decrease after feeding. (Default: 60)
# HungerIncrease The amount of hunger that is increased every time the pet is fed (Default: 20)
# IntimacyStart Amount of Intimacy the pet starts with. (Default: 250)
# IntimacyFed Amount of Intimacy that is increased when fed. (Default: 50)
# IntimacyOverfed Amount of Intimacy that is increased when over-fed. (Default: -100)
# IntimacyHungry Amount of Intimacy that is increased when the pet is hungry. (Default: -5)
# IntimacyOwnerDie Amount of Intimacy that is increased when the pet owner dies. (Default: -20)
# CaptureRate Capture success rate. (10000 = 100%)
# SpecialPerformance If a pet has a Special Performance. (Default: true)
# AttackRate Rate of which the pet will attack [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# RetaliateRate Rate of which the pet will retaliate when master is being attacked [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# ChangeTargetRate Rate of which the pet will change its attack target. (10000 = 100%)
# AllowAutoFeed Allows turning automatic pet feeding on. (Default: false)
# Script Bonus script to execute when the pet is alive. (Default: null)
# SupportScript Bonus script to execute when pet_status_support is enabled. (Default: null)
# Evolution: Pet evolution settings. (Optional) (Default: null)
# - Target Mob this pet can evolve to.
# ItemRequirements: Item requirements for evolving this pet.
# - Item Self-explanatory
# Amount
###########################################################################
Header:
Type: PET_DB
Version: 1
Footer:
Imports:
- Path: db/pre-re/pet_db.yml
Mode: Prerenewal
- Path: db/re/pet_db.yml
Mode: Renewal
- Path: db/import/pet_db.yml

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
Header:
Type: ATTENDANCE_CONF
Type: ATTENDANCE_DB
Version: 1

View File

@ -0,0 +1,123 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Pre-Renewal Guild Skill Database
###########################################################################
#
# Guild Skill Settings
#
###########################################################################
# Id - Skill ID of the guild skill.
###########################################################################
# MaxLevel - Maximum level of the guild skill.
###########################################################################
# Required - A list of required skills for the skill to become available.
# Id: Skill ID of the required guild skill.
# Level: Level of the required guild skill.
###########################################################################
Header:
Type: GUILD_SKILL_TREE_DB
Version: 1
Body:
- Id: GD_APPROVAL
MaxLevel: 1
- Id: GD_KAFRACONTRACT
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDRESEARCH
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDUP
MaxLevel: 3
- Id: GD_EXTENSION
MaxLevel: 10
- Id: GD_GLORYGUILD
MaxLevel: 0
- Id: GD_LEADERSHIP
MaxLevel: 5
- Id: GD_GLORYWOUNDS
MaxLevel: 5
- Id: GD_SOULCOLD
MaxLevel: 5
Required:
- Id: GD_GLORYWOUNDS
Level: 1
- Id: GD_HAWKEYES
MaxLevel: 5
Required:
- Id: GD_LEADERSHIP
Level: 1
- Id: GD_BATTLEORDER
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_EXTENSION
Level: 2
- Id: GD_REGENERATION
MaxLevel: 3
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_EXTENSION
Level: 5
- Id: GD_BATTLEORDER
Level: 1
- Id: GD_RESTORE
MaxLevel: 1
Required:
- Id: GD_REGENERATION
Level: 1
- Id: GD_EMERGENCYCALL
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDRESEARCH
Level: 1
- Id: GD_EXTENSION
Level: 5
- Id: GD_BATTLEORDER
Level: 1
- Id: GD_REGENERATION
Level: 1
- Id: GD_DEVELOPMENT
MaxLevel: 1
# - Id: GD_GUILD_STORAGE
# MaxLevel: 5

View File

@ -87,7 +87,7 @@
582,Orange,Orange,0,300,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(10,20),rand(10,20); },{},{}
583,KETUPAT_,Ketupat Sayur,0,7000,,150,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),rand(40,60); sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; sc_end SC_Hallucination; },{},{}
584,Fish_Ball_Soup,Fish Cake Soup,0,100,,60,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(40,70),0; },{},{}
585,Wurst,Brusti,0,2,,40,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(15,20),0; },{},{}
585,Wurst,Brusti,11,2,,40,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(15,20),0; itemskill "PR_MAGNIFICAT",3; },{},{}
586,Mother's_Cake,Mother's Cake,0,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),0; },{},{}
587,Prickly_Fruit_,Red Prickly Fruit,0,880,,60,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(270,330),rand(20,30); },{},{}
588,Spaghetti,Spaghetti,0,100,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(40,70),0; },{},{}
@ -1109,7 +1109,7 @@
2138,Bradium_Shield,Bradium Shield,4,20,,1800,,5,,1,0x00CFFF80,2,2,32,,65,1,3,{ bonus2 bSkillAtk,"CR_SHIELDBOOMERANG",60; bonus bAgi,-1; bonus bMaxHP,500; },{},{}
2139,Flame_Thrower,Flame Thrower,4,20000,,2000,,60,,0,0x00000400,63,2,32,,99,0,1,{},{},{}
// GM Shield
2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,100,,0,0xFFFFFFFF,7,2,32,,1,1,0,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; Skill "WZ_ESTIMATION",1; Skill "ST_FULLSTRIP",5; Skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoGemStone; bonus bSpeedRate,25; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,100,,0,0xFFFFFFFF,7,2,32,,1,1,0,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; Skill "WZ_ESTIMATION",1; Skill "ST_FULLSTRIP",5; Skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoGemStone; bonus bSpeedRate,25; bonus bNoWalkDelay; },{},{}
// Headgears
//===================================================================
2201,Sunglasses,Sunglasses,4,5000,,100,,0,,0,0xFFFFFFFF,7,2,512,,0,0,12,{ bonus2 bResEff,Eff_Blind,500; },{},{}
@ -1761,7 +1761,7 @@
4120,Petit__Card,Sky Petite Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Dragon,30; },{},{}
4121,Phreeoni_Card,Phreeoni Card,6,20,,10,,,,,,,,2,,,,,{ bonus bHit,100; },{},{}
4122,Deviruchi_Card,Deviruchi Card,6,20,,10,,,,,,,,769,,,,,{ bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; },{},{}
4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; bonus bNoWalkDelay; },{},{}
4124,Medusa_Card,Medusa Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Demon,15; bonus2 bResEff,Eff_Stone,10000; },{},{}
4125,Deviace_Card,Deviace Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddRace,RC_DemiHuman,7; bonus2 bAddRace,RC_Player,7; bonus2 bAddRace,RC_Brute,7; bonus2 bAddRace,RC_Plant,7; bonus2 bAddRace,RC_Insect,7; },{},{}
4126,Minorous_Card,Minorous Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddSize,Size_Large,15; bonus bBaseAtk,5; },{},{}
@ -4964,7 +4964,7 @@
12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 EF_MAPPILLAR2; else if(.@rnd==9) specialeffect2 EF_ANGEL2; else specialeffect2 EF_COIN; },{},{}
12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 EF_BEGINASURA; else if(.@rnd==9) specialeffect2 EF_MVP; else specialeffect2 EF_CURSEATTACK; },{},{}
12398,PCBang_Gift_Box,PCBang Gift Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,7,2,,,,,,{ Zeny += 1000000; },{},{}
12400,Water_Of_Blessing_,Water Of Blessing,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
12401,Rune_Kn_Test_Int,Rune Kn Test Int,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCINT,300000,40; },{},{}
12402,29Fruit,29Fruit,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 5,5; },{},{}
@ -5462,12 +5462,12 @@
13272,Cure_Free_To_Throw,Throwing Cure Free,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_end SC_BLEEDING; sc_end SC_CURSE; sc_end SC_SILENCE; sc_end SC_POISON; sc_end SC_ORCISH; sc_end SC_CHANGEUNDEAD; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_DPOISON; itemheal 500,0; },{},{}
13273,Stamina_Up_M_To_Throw,Throwing Muramura M,10,100,,10,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_MUSTLE_M,500000,5; },{},{}
13274,Digestive_F_To_Throw,Throwing Falmons F,10,100,,10,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_LIFE_FORCE_F,500000,5; },{},{}
13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(500+(BaseLevel*10/3)); percentheal 1,0; },{},{}
13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(1500+(BaseLevel*10/3)); percentheal 2,0; },{},{}
13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(2500+(BaseLevel*10/3)); percentheal 5,0; },{},{}
13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)-5); percentheal 0,2; },{},{}
13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)); percentheal 0,4; },{},{}
13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)+5); percentheal 0,8; },{},{}
13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13281,En_White_PotZ_To_Throw,Throwing Concentrated White Potion Z,10,100,,70,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20; itemheal 1000,0; },{},{}
13282,Vitata500_To_Throw,Throwing Vitata 500,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start2 SC_VITATA_500,500000,20,5; itemheal 0,200; },{},{}
13283,En_Cel_Juice_To_Throw,Throwing Ceromain Soup,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_EXTRACT_SALAMINE_JUICE,500000,10; },{},{}

View File

@ -16,7 +16,7 @@
// 12659 cannot be used when this delay is active.
// Since this is optional, default is -1 will ignores the
// delay group and the delay will be stored in character's
// data that has limit set in src/map/itemdb.h as MAX_ITEMDELAYS.
// data that has limit set in src/map/itemdb.hpp as MAX_ITEMDELAYS.
// SC_REUSE_LIMIT_A
14538,300000,SC_REUSE_LIMIT_A //Glass_Of_Illusion

View File

@ -282,9 +282,9 @@
// Rebellion
4215, 28000,90 ,650 ,469 ,540 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,480 ,610 ,540 ,940 ,1040 ,2000 ,2000
// Summoner - Placeholder
4218, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 650
4218, 20000,0 ,500 ,100 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
// Baby Summoner - Placeholder
4220, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 650
4220, 20000,0 ,500 ,100 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
// Baby Ninja - Placeholder
4222, 26000,80 , 0 ,540 ,400 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
// Baby Kagerou - Placeholder

View File

@ -1,104 +0,0 @@
// Pet Database
//
// Structure of Database:
// MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script
//
// 01. MobID Monster ID of the pet.
// 02. Name Name of the monster as defined in the database.
// 03. JName The display name of the monster when hatched.
// 04. LureID Pet Tame Item ID.
// 05. EggID Pet Egg ID.
// 06. EquipID Pet Accessory ID.
// 07. FoodID Pet Food ID.
// 08. Fullness The amount Hunger is decreased every [HungryDelay] seconds.
// 09. HungryDelay The amount of time it takes for hunger to decrease after feeding. (Default: 60 seconds)
// 10. R_Hungry Amount of Intimacy that is increased when fed.
// 11. R_Full Amount of Intimacy that is decreased when over-fed.
// 12. Intimate Amount of Intimacy the pet starts with.
// 13. Die Amount of Intimacy that is decreased when the pet owner dies.
// 14. Capture Capture succes rate (10000 = 100%)
// 15. Speed Pet's walk speed. (Defaul: 150)
// 16. S_Performance Special Performance. (Yes = 1, No = 0)
// 17. talk_convert_class Disables pet talk (instead of talking they emote with /!.)
// 18. attack_rate Rate of which the pet will attack (requires at least pet_support_min_friendly intimacy).
// 19. defence_attack_rate Rate of which the pet will retaliate when master is being attacked (requires at least pet_support_min_friendly intimacy).
// 20. change_target_rate Rate of which the pet will change its attack target.
// 21. pet_script Script to execute when the pet is hatched.
// 22. loyal_script Script to execute when the pet is hatched (requires at least pet_equip_min_friendly intimacy, independent of pet_script).
//NOTE: The max value (100%) of attack_rate, defense_rate & change_target_rate is 10000.
//In theory you can use any valid script, but it is run only once upon pet
//loading, so it is recommended you use the specific pet scripts.
//Please see "The Pet AI commands" in 'doc/script_commands.txt'.
1002,PORING,Poring,619,9001,10013,531,80,60,50,100,250,20,2000,150,1,0,350,400,800,{ petloot 10; },{ bonus bLuk,2; bonus bCritical,1; }
1113,DROPS,Drops,620,9002,10013,508,80,60,40,100,250,20,1500,150,1,0,300,400,500,{ petloot 10; },{ bonus bHit,3; bonus bAtk,3; }
1031,POPORING,Poporing,621,9003,10013,511,80,60,30,100,250,20,1000,150,1,0,300,500,400,{ petloot 15; },{ bonus bLuk,2; bonus2 bSubEle,Ele_Poison,10; }
1063,LUNATIC,Lunatic,622,9004,10007,534,80,60,40,100,250,20,1500,150,0,0,300,300,1000,{ petskillbonus bLuk,3,10,50; },{ bonus bCritical,2; bonus bAtk,2; }
1049,PICKY,Picky,623,9005,10012,507,80,60,40,100,250,20,2000,150,1,0,500,600,50,{ petskillbonus bStr,3,10,50;},{ bonus bStr,1; bonus bAtk,5; }
1011,CHONCHON,ChonChon,624,9006,10002,537,80,60,30,100,250,20,1500,150,1,0,500,500,250,{ petskillbonus bAgi,4,10,50; },{ bonus bAgi,1; bonus bFlee,2; }
1042,STEEL_CHONCHON,Steel ChonChon,625,9007,10002,1002,80,60,20,100,250,20,1000,150,1,0,500,500,200,{ petskillbonus bAgiVit,4,20,40; },{ bonus bFlee,6; bonus bAgi,-1; }
1035,HUNTER_FLY,Hunter Fly,626,9008,10002,716,80,60,10,100,250,20,500,150,1,0,500,500,200,{ petskillattack2 "NPC_WINDATTACK",888,2,0,10; },{ bonus bFlee,-5; bonus bFlee2,2; }
1167,SAVAGE_BABE,Savage Babe,627,9009,10015,537,80,60,40,100,250,20,1500,150,0,0,500,500,200,{ petskillbonus bVit,4,10,50; },{ bonus bVit,1; bonus bMaxHP,50; }
1107,DESERT_WOLF_B,Baby Desert Wolf,628,9010,10003,537,80,60,40,100,250,20,1000,150,0,0,400,400,400,{ petskillattack "SM_PROVOKE",1,0,5;},{ bonus bInt,1; bonus bMaxSP,50; }
1052,ROCKER,Rocker,629,9011,10014,537,80,60,30,100,250,20,1500,150,0,0,350,350,600,{ petskillbonus bAllStats,1,10,50; },{ bonus bHPrecovRate,5; bonus bMaxHP,25; }
1014,SPORE,Spore,630,9012,10017,537,80,60,30,100,250,20,1500,150,0,0,350,500,500,{ petrecovery SC_POISON,60; },{ bonus bHit,5; bonus bAtk,-2; }
1077,POISON_SPORE,Poison Spore,631,9013,10017,537,80,60,20,100,250,20,1000,150,0,0,600,200,400,{ petskillattack "NPC_POISON",20,0,10; },{ bonus bStr,1; bonus bInt,1; }
1019,PECOPECO,PecoPeco,632,9014,10010,537,80,60,30,100,250,20,1000,150,1,0,400,500,800,{ petskillbonus bSpeedRate,25,20,20; },{ bonus bMaxHP,150; bonus bMaxSP,-10; }
1056,SMOKIE,Smokie,633,9015,10019,537,80,60,30,100,250,20,1000,150,1,0,600,600,100,{ petskillbonus bPerfectHide,1,3600,0; },{ bonus bAgi,1; bonus bFlee2,1; }
1057,YOYO,Yoyo,634,9016,10018,532,80,60,20,100,250,20,1000,150,1,0,300,800,400,{ petloot 20; },{ bonus bCritical,3; bonus bLuk,-1; }
1023,ORK_WARRIOR,Orc Warrior,635,9017,10009,537,80,60,20,100,250,20,500,150,1,0,600,200,300,{ petskillattack2 "NPC_PIERCINGATT",100,1,0,10; },{ bonus bAtk,10; bonus bDef,-3; }
1026,MUNAK,Munak,636,9018,10008,537,80,60,20,100,250,20,500,150,0,0,300,750,300,{ petskillattack2 "NPC_DARKNESSATTACK",444,1,0,10; },{ bonus bInt,1; bonus bDef,1; }
1110,DOKEBI,Dokebi,637,9019,10005,537,80,60,20,100,250,20,500,150,0,0,300,300,800,{ petskillattack "BS_HAMMERFALL",1,0,10; },{ bonus bMatkRate,1; bonus bAtkRate,-1; }
1170,SOHEE,Sohee,638,9020,10016,537,80,60,10,100,250,20,500,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,33,100; },{ bonus bStr,1; bonus bDex,1; }
1029,ISIS,Isis,639,9021,10006,537,80,60,10,100,250,20,500,150,0,0,650,450,150,{ petskillsupport "PR_MAGNIFICAT",2,60,50,50; },{ bonus bMatkRate,-1; bonus bAtkRate,1; }
1155,PETIT,Petite,640,9022,10011,537,80,60,20,100,250,20,500,150,0,0,800,400,100,{ petskillattack2 "WZ_HEAVENDRIVE",500,1,0,10; },{ bonus bDef,-2; bonus bMdef,-2; bonus bAspdRate,1; }
1109,DEVIRUCHI,Deviruchi,641,9023,10004,711,80,60,10,100,250,20,500,150,0,0,800,200,100,{ petskillbonus bAgiDexStr,6,20,40; },{ bonus bMatkRate,1; bonus bAtkRate,1; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }
1101,BAPHOMET_,Baphomet Jr.,642,9024,10001,518,80,60,10,100,250,20,200,150,0,0,1000,100,200,{ petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5; },{ bonus bDef,1; bonus bMdef,1; bonus2 bResEff,Eff_Stun,-100; }
1188,BON_GUN,Bon Gun,659,9025,10020,537,80,60,30,100,250,20,500,150,1,0,600,200,400,{ petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1; },{ bonus bVit,1; bonus2 bResEff,Eff_Stun,100; }
1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bMagicAddRace,RC_DemiHuman,2; }
1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; }
1815,EVENT_RICECAKE,Rice Cake,0,9028,0,511,80,60,50,100,250,20,2000,150,1,0,500,500,200,{ petskillsupport "CR_DEFENDER",3,240,50,100; },{ bonus2 bSubEle,Ele_Neutral,1; bonus bMaxHPrate,-1; }
1245,GOBLINE_XMAS,Christmas Goblin,12225,9029,0,911,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "MG_SIGHT",5,5,5; },{ bonus bMaxHP,30; bonus2 bSubEle,Ele_Water,1; }
1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; }
1879,ECLIPSE_P,Spring Rabbit,0,9031,0,7766,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "TF_THROWSTONE",1,5,5; },{}
1122,GOBLIN_1,Goblin,14569,9032,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_WINDATTACK",5,5,5; },{}
1123,GOBLIN_2,Goblin,14570,9033,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_FIREATTACK",5,5,5; },{}
1125,GOBLIN_4,Goblin,14571,9034,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_GROUNDATTACK",5,5,5; },{}
1385,DELETER_,Deleter,14572,9035,0,7822,80,60,20,100,250,20,800,150,0,0,300,300,800,{ petskillattack "SM_MAGNUM",5,5,5; },{}
1382,DIABOLIC,Diabolic,14573,9036,0,7823,80,60,10,100,250,20,800,150,0,0,300,300,800,{ petskillattack "WZ_METEOR",2,5,5; },{}
1208,WANDER_MAN,Wanderer,14574,9037,0,7824,80,60,20,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_UNDEADATTACK",5,5,5; },{ bonus bAgi,3; bonus bDex,1; }
1963,P_CHUNG_E,New Year Doll,0,9038,0,554,80,60,30,100,250,20,800,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{}
// New pets JapanRO Mobile
1040,GOLEM,Golem,12371,9053,10035,6111,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxHP,100; bonus bFlee,-5; }
1143,MARIONETTE,Marionette,12361,9043,10025,6098,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bSPrecovRate,3; }
1148,MEDUSA,Medusa,12368,9050,10032,6108,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bVit,1; bonus2 bResEff,Eff_Stone,500; }
1179,WHISPER,Whisper,12363,9045,10027,6100,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bFlee,7; bonus bDef,-3; }
1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; }
1370,SUCCUBUS,Succubus,12373,9055,10037,6113,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bHpDrainRate,50,5; }
1374,INCUBUS,Incubus,12370,9052,10034,6110,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus bMaxSPRate,3; }
1379,NIGHTMARE_TERROR,Nightmare Terror,12372,9054,10036,6112,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bResEff,Eff_Sleep,10000; }
1401,SHINOBI,Shinobi,12362,9044,10026,6099,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bAgi,2; }
1404,MIYABI_NINGYO,Miyabi Doll,12366,9048,10030,6106,80,60,15,100,250,20,200,150,0,0,300,300,800,{},{ bonus bInt,1; bonus bCastrate,-3; }
1416,WICKED_NYMPH,Evil Nymph,12365,9047,10029,6105,80,60,15,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxSP,30; bonus bSPrecovRate,5; }
1495,STONE_SHOOTER,Stone Shooter,12369,9051,10033,6109,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus2 bSubEle,Ele_Fire,3; }
1504,DULLAHAN,Dullahan,12367,9049,10031,6107,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bCritAtkRate,5; }
1505,LOLI_RURI,Loli Ruri,12360,9042,10024,6097,80,60,15,100,250,20,200,150,0,0,300,300,800,{},{ bonus bMaxHPRate,3; bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10; }
1513,CIVIL_SERVANT,Mao Guai,12358,9040,10022,6095,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxSP,10; }
1586,LEAF_CAT,Leaf Cat,12359,9041,10023,6096,80,60,20,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bSubRace,RC_Brute,3; }
1630,BACSOJIN_,White Lady,12357,9039,10021,6094,80,60,10,100,250,20,2000,150,0,0,300,300,800,{},{}
1837,IMP,Fire Imp,12374,9056,10038,6114,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bSubEle,Ele_Fire,2; bonus2 bAddEle,Ele_Fire,2; }
// Brasilis Quest - Suspicious Beach [UNHATCHABLE]
2057,E_CRAMP,Strange Cramp,12408,6221,0,0,0,0,0,0,0,0,50,0,0,0,350,400,800,{},{} // kRO version
2081,E_HYDRA,Strange Hydra,12408,6221,0,0,0,0,0,0,0,0,50,0,0,0,350,400,800,{},{} // iRO/cRO version
// New pets (FIX ME: pet bonuses for 2210 and 2313 do not require loyalty)
//2200,J_TAINI,Tiny,0,9057,0,512,80,60,10,100,250,20,0,150,1,0,300,300,800,{},{}
//2210,XMAS_LUNATIC,Christmas Snow Rabbit,0,9058,0,529,80,60,10,100,250,20,0,150,1,0,300,300,800,{},{ bonus2 bExpAddRace,RC_All,5; }
//2313,TIKBALANG,Tikbalang,12699,9059,0,528,80,60,10,100,250,20,1000,150,1,0,300,300,800,{},{ bonus2 bAddDamageClass,2320,10; bonus2 bAddDamageClass,2321,10; bonus2 bAddDamageClass,2322,10; bonus2 bAddDamageClass,2317,10; bonus2 bAddDamageClass,2318,10; bonus2 bAddDamageClass,2327,10; bonus2 bAddDamageClass,2319,10; bonus2 bAddDamageClass,2333,10; bonus2 bAddDamageClass,2332,10; }
1242,MARIN,Marin,12789,9061,10039,6534,80,60,50,100,250,20,2000,150,1,0,300,300,800,{},{}
//2398,LITTLE_PORING,Novice Poring,12846,9062,0,531,80,60,1000,0,250,0,5000,150,0,0,300,300,800,{},{ bonus bHPrecovRate,50; }

867
db/pre-re/pet_db.yml Normal file
View File

@ -0,0 +1,867 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Pre-Renewal Pet Database
###########################################################################
#
# Pet Settings
#
###########################################################################
# - Mob Monster that can be used as pet
# TameItem Pet Tame Item.
# EggItem Pet Egg Item.
# EquipItem Pet Accessory Item. (Default: 0)
# FoodItem Pet Food Item. (Default: 0)
# Fullness The amount of hunger is decreased every [HungryDelay] seconds.
# HungryDelay The amount of time in seconds it takes for hunger to decrease after feeding. (Default: 60)
# HungerIncrease The amount of hunger that is increased every time the pet is fed (Default: 20)
# IntimacyStart Amount of Intimacy the pet starts with. (Default: 250)
# IntimacyFed Amount of Intimacy that is increased when fed. (Default: 50)
# IntimacyOverfed Amount of Intimacy that is increased when over-fed. (Default: -100)
# IntimacyHungry Amount of Intimacy that is increased when the pet is hungry. (Default: -5)
# IntimacyOwnerDie Amount of Intimacy that is increased when the pet owner dies. (Default: -20)
# CaptureRate Capture success rate. (10000 = 100%)
# SpecialPerformance If a pet has a Special Performance. (Default: true)
# AttackRate Rate of which the pet will attack [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# RetaliateRate Rate of which the pet will retaliate when master is being attacked [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
# ChangeTargetRate Rate of which the pet will change its attack target. (10000 = 100%)
# AllowAutoFeed Allows turning automatic pet feeding on. (Default: false)
# Script Bonus script to execute when the pet is alive. (Default: null)
# SupportScript Bonus script to execute when pet_status_support is enabled. (Default: null)
# Evolution: Pet evolution settings. (Optional) (Default: null)
# - Target Mob this pet can evolve to.
# ItemRequirements: Item requirements for evolving this pet.
# - Item Self-explanatory
# Amount
###########################################################################
Header:
Type: PET_DB
Version: 1
Body:
- Mob: PORING
TameItem: Unripe_Apple
EggItem: Poring_Egg
EquipItem: Backpack
FoodItem: Apple_Juice
Fullness: 80
IntimacyFed: 50
CaptureRate: 2000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bLuk,2;
bonus bCritical,1;
}
- Mob: DROPS
TameItem: Orange_Juice
EggItem: Drops_Egg
EquipItem: Backpack
FoodItem: Yellow_Herb
Fullness: 80
IntimacyFed: 40
CaptureRate: 1500
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bHit,3;
bonus bAtk,3;
}
- Mob: POPORING
TameItem: Bitter_Herb
EggItem: Poporing_Egg
EquipItem: Backpack
FoodItem: Green_Herb
Fullness: 80
IntimacyFed: 30
CaptureRate: 1000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bLuk,2;
bonus2 bSubEle,Ele_Poison,10;
}
- Mob: LUNATIC
TameItem: Rainbow_Carrot
EggItem: Lunatic_Egg
EquipItem: Silk_Ribbon
FoodItem: Carrot_Juice
Fullness: 80
IntimacyFed: 40
CaptureRate: 1500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bCritical,2;
bonus bAtk,2;
}
- Mob: PICKY
TameItem: Earthworm_The_Dude
EggItem: Picky_Egg
EquipItem: Tiny_Egg_Shell
FoodItem: Red_Herb
Fullness: 80
IntimacyFed: 40
CaptureRate: 2000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bStr,1;
bonus bAtk,5;
}
- Mob: CHONCHON
TameItem: Rotten_Fish
EggItem: Chonchon_Egg
EquipItem: Monster_Oxygen_Mask
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 1500
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bAgi,1;
bonus bFlee,2;
}
- Mob: STEEL_CHONCHON
TameItem: Lusty_Iron
EggItem: Steel_Chonchon_Egg
EquipItem: Monster_Oxygen_Mask
FoodItem: Iron_Ore
Fullness: 80
IntimacyFed: 20
CaptureRate: 1000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bFlee,6;
bonus bAgi,-1;
}
- Mob: HUNTER_FLY
TameItem: Monster_Juice
EggItem: Hunter_Fly_Egg
EquipItem: Monster_Oxygen_Mask
FoodItem: Red_Gemstone
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bFlee,-5;
bonus bFlee2,2;
}
- Mob: SAVAGE_BABE
TameItem: Sweet_Milk
EggItem: Savage_Bebe_Egg
EquipItem: Green_Lace
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 40
CaptureRate: 1500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bVit,1;
bonus bMaxHP,50;
}
- Mob: DESERT_WOLF_B
TameItem: Well_Dried_Bone
EggItem: Baby_Desert_Wolf_Egg
EquipItem: Transparent_Headgear
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 40
CaptureRate: 1000
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bInt,1;
bonus bMaxSP,50;
}
- Mob: ROCKER
TameItem: Singing_Flower
EggItem: Rocker_Egg
EquipItem: Rocker_Glasses
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 1500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bHPrecovRate,5;
bonus bMaxHP,25;
}
- Mob: SPORE
TameItem: Dew_Laden_Moss
EggItem: Spore_Egg
EquipItem: Bark_Shorts
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 1500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bHit,5;
bonus bAtk,-2;
}
- Mob: POISON_SPORE
TameItem: Deadly_Noxious_Herb
EggItem: Poison_Spore_Egg
EquipItem: Bark_Shorts
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 20
CaptureRate: 1000
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bStr,1;
bonus bInt,1;
}
- Mob: PECOPECO
TameItem: Fatty_Chubby_Earthworm
EggItem: PecoPeco_Egg
EquipItem: Battered_Pot
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 1000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxHP,150;
bonus bMaxSP,-10;
}
- Mob: SMOKIE
TameItem: Baked_Yam
EggItem: Smokie_Egg
EquipItem: Red_Muffler
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 1000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bAgi,1;
bonus bFlee2,1;
}
- Mob: YOYO
TameItem: Tropical_Banana
EggItem: Yoyo_Egg
EquipItem: Monkey_Circlet
FoodItem: Banana_Juice
Fullness: 80
IntimacyFed: 20
CaptureRate: 1000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bCritical,3;
bonus bLuk,-1;
}
- Mob: ORK_WARRIOR
TameItem: Horror_Of_Tribe
EggItem: Orc_Warrior_Egg
EquipItem: Wild_Flower
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bAtk,10;
bonus bDef,-3;
}
- Mob: MUNAK
TameItem: No_Recipient
EggItem: Munak_Egg
EquipItem: Punisher
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bInt,1;
bonus bDef,1;
}
- Mob: DOKEBI
TameItem: Old_Broom
EggItem: Dokkaebi_Egg
EquipItem: Wig
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMatkRate,1;
bonus bAtkRate,-1;
}
- Mob: SOHEE
TameItem: Silver_Knife_Of_Chaste
EggItem: Sohee_Egg
EquipItem: Golden_Bell
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bStr,1;
bonus bDex,1;
}
- Mob: ISIS
TameItem: Armlet_Of_Obedience
EggItem: Isis_Egg
EquipItem: Queen's_Hair_Ornament
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMatkRate,-1;
bonus bAtkRate,1;
}
- Mob: PETIT
TameItem: Shining_Stone
EggItem: Green_Petite_Egg
EquipItem: Stellar_Hairpin
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bDef,-2;
bonus bMdef,-2;
bonus bAspdRate,1;
}
- Mob: DEVIRUCHI
TameItem: Contracts_In_Shadow
EggItem: Deviruchi_Egg
EquipItem: Pacifier
FoodItem: Shoot
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMatkRate,1;
bonus bAtkRate,1;
bonus bMaxHPrate,-3;
bonus bMaxSPrate,-3;
}
- Mob: BAPHOMET_
TameItem: Book_Of_Devil
EggItem: Bapho_Jr._Egg
EquipItem: Skull_Helm
FoodItem: Honey
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bDef,1;
bonus bMdef,1;
bonus2 bResEff,Eff_Stun,-100;
}
- Mob: BON_GUN
TameItem: Heart_Of_Her
EggItem: Bongun_Egg
EquipItem: Sword_Of_Grave_Keeper
FoodItem: Pet_Food
Fullness: 80
IntimacyFed: 30
CaptureRate: 500
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bVit,1;
bonus2 bResEff,Eff_Stun,100;
}
- Mob: ZHERLTHSH
TameItem: Prohibition_Red_Candle
EggItem: Zherlthsh_Egg
FoodItem: Immortal_Heart
Fullness: 80
IntimacyFed: 10
CaptureRate: 300
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bAddRace,RC_Demihuman,2;
bonus2 bMagicAddRace,RC_DemiHuman,2;
bonus2 bAddRace,RC_Player,2;
bonus2 bMagicAddRace,RC_Player,2;
}
- Mob: ALICE
TameItem: Sway_Apron
EggItem: Alice_Egg
FoodItem: White_Potion
Fullness: 80
IntimacyFed: 20
CaptureRate: 800
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMdef,1;
bonus2 bSubRace,RC_DemiHuman,1;
bonus2 bSubRace,RC_Player,1;
}
- Mob: EVENT_RICECAKE
EggItem: Rice_Cake_Egg
FoodItem: Green_Herb
Fullness: 80
IntimacyFed: 50
CaptureRate: 2000
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bSubEle,Ele_Neutral,1;
bonus bMaxHPrate,-1;
}
- Mob: GOBLINE_XMAS
TameItem: Sweet_Candy_Striper
EggItem: Santa_Goblin_Egg
FoodItem: Scell
Fullness: 80
IntimacyFed: 50
CaptureRate: 2000
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxHP,30;
bonus2 bSubEle,Ele_Water,1;
}
- Mob: CHUNG_E
TameItem: Tantanmen
EggItem: Chung_E_Egg
FoodItem: Bun_
Fullness: 80
IntimacyFed: 50
CaptureRate: 2000
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bDef,1;
bonus2 bSubRace,RC_DemiHuman,1;
bonus2 bSubRace,RC_Player,1;
}
- Mob: ECLIPSE_P
EggItem: Spring_Rabbit_Egg
FoodItem: Bok_Choy
Fullness: 80
IntimacyFed: 50
CaptureRate: 2000
SpecialPerformance: false
- Mob: GOBLIN_1
TameItem: Knife_Goblin_Ring
EggItem: Knife_Goblin_Egg
FoodItem: Green_Apple
Fullness: 80
IntimacyFed: 50
CaptureRate: 800
SpecialPerformance: false
- Mob: GOBLIN_2
TameItem: Flail_Goblin_Ring
EggItem: Flail_Goblin_Egg
FoodItem: Green_Apple
Fullness: 80
IntimacyFed: 50
CaptureRate: 800
SpecialPerformance: false
- Mob: GOBLIN_4
TameItem: Hammer_Goblin_Ring
EggItem: Hammer_Goblin_Egg
FoodItem: Green_Apple
Fullness: 80
IntimacyFed: 50
CaptureRate: 800
SpecialPerformance: false
- Mob: DELETER_
TameItem: Holy_Marble
EggItem: Red_Deleter_Egg
FoodItem: Whole_Barbecue
Fullness: 80
IntimacyFed: 20
CaptureRate: 800
SpecialPerformance: false
- Mob: DIABOLIC
TameItem: Red_Burning_Stone
EggItem: Diabolic_Egg
FoodItem: Meat_Veg_Skewer
Fullness: 80
IntimacyFed: 10
CaptureRate: 800
SpecialPerformance: false
- Mob: WANDER_MAN
TameItem: Skull_Of_Vagabond
EggItem: Wanderer_Egg
FoodItem: Spirit_Liquor
Fullness: 80
IntimacyFed: 20
CaptureRate: 800
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bAgi,3;
bonus bDex,1;
}
- Mob: P_CHUNG_E
EggItem: New_Year_Doll_Egg
FoodItem: Mojji
Fullness: 80
IntimacyFed: 30
CaptureRate: 800
SpecialPerformance: false
- Mob: GOLEM
TameItem: Magical_Lithography
EggItem: Golem_Egg
EquipItem: Windup_Spring
FoodItem: Mystic_Stone
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxHP,100;
bonus bFlee,-5;
}
- Mob: MARIONETTE
TameItem: Delicious_Shaved_Ice
EggItem: Marionette_Egg
EquipItem: Star_Hairband
FoodItem: Small_Snow_Flower
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bSPrecovRate,3;
}
- Mob: MEDUSA
TameItem: Splendid_Mirror
EggItem: Medusa_Egg
EquipItem: Queen's_Coronet
FoodItem: Apple_Pudding
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bVit,1;
bonus2 bResEff,Eff_Stone,500;
}
- Mob: WHISPER
TameItem: Fit_Pipe
EggItem: Whisper_Egg
EquipItem: Spirit_Chain_
FoodItem: Damp_Darkness
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bFlee,7;
bonus bDef,-3;
}
- Mob: GOBLIN_LEADER
TameItem: Staff_Of_Leader
EggItem: Goblin_Leader_Egg
EquipItem: Nice_Badge
FoodItem: Big_Cell
Fullness: 80
IntimacyFed: 10
CaptureRate: 50
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bAddRace,RC_DemiHuman,3;
bonus2 bAddRace,RC_Player,3;
}
- Mob: SUCCUBUS
TameItem: Boy's_Naivety
EggItem: Succubus_Egg
EquipItem: Black_Butterfly_Mask
FoodItem: Vital_Flower_
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bHpDrainRate,50,5;
}
- Mob: INCUBUS
TameItem: Gril's_Naivety
EggItem: Incubus_Egg
EquipItem: Ball_Mask
FoodItem: Vital_Flower
Fullness: 80
IntimacyFed: 10
CaptureRate: 50
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxSPRate,3;
}
- Mob: NIGHTMARE_TERROR
TameItem: Hell_Contract
EggItem: Nightmare_Terror_Egg
EquipItem: Hell_Horn
FoodItem: Fresh_Plant
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bResEff,Eff_Sleep,10000;
}
- Mob: SHINOBI
TameItem: Kuloren
EggItem: Shinobi_Egg
EquipItem: Wine_On_Sleeve
FoodItem: Grilled_Rice_Cake
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bAgi,2;
}
- Mob: MIYABI_NINGYO
TameItem: Gril_Doll
EggItem: Miyabi_Ningyo_Egg
EquipItem: Summer_Fan
FoodItem: Well_Ripened_Berry
Fullness: 80
IntimacyFed: 15
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bInt,1;
bonus bCastrate,-3;
}
- Mob: WICKED_NYMPH
TameItem: Charming_Lotus
EggItem: Wicked_Nymph_Egg
EquipItem: Jade_Trinket
FoodItem: Morning_Dew
Fullness: 80
IntimacyFed: 15
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxSP,30;
bonus bSPrecovRate,5;
}
- Mob: STONE_SHOOTER
TameItem: Oilpalm_Coconut
EggItem: Stone_Shooter_Egg
EquipItem: Apro_Hair
FoodItem: Plant_Neutrient
Fullness: 80
IntimacyFed: 20
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bSubEle,Ele_Fire,3;
}
- Mob: DULLAHAN
TameItem: Luxury_Whisky_Bottle
EggItem: Dullahan_Egg
EquipItem: Death_Coil
FoodItem: Sunset_On_The_Rock
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bCritAtkRate,5;
}
- Mob: LOLI_RURI
TameItem: Very_Red_Juice
EggItem: Loli_Ruri_Egg
EquipItem: Fashionable_Glasses
FoodItem: Pumpkin_Pie_
Fullness: 80
IntimacyFed: 15
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxHPRate,3;
bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10;
}
- Mob: CIVIL_SERVANT
TameItem: Fan_Of_Wind
EggItem: Civil_Servant_Egg
EquipItem: Golden_Earing
FoodItem: Flavored_Alcohol
Fullness: 80
IntimacyFed: 10
CaptureRate: 500
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus bMaxSP,10;
}
- Mob: LEAF_CAT
TameItem: Very_Soft_Plant
EggItem: Leaf_Cat_Egg
EquipItem: Green_Lucky_Bag
FoodItem: Fish_With_Blue_Back
Fullness: 80
IntimacyFed: 20
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bSubRace,RC_Brute,3;
}
- Mob: BACSOJIN_
TameItem: Shiny_Wing_Gown
EggItem: Bacsojin_Egg
EquipItem: Round_Hair_Ornament
FoodItem: Traditional_Cookie
Fullness: 80
IntimacyFed: 10
CaptureRate: 2000
SpecialPerformance: false
- Mob: IMP
TameItem: Flaming_Ice
EggItem: Imp_Egg
EquipItem: Horn_Protector
FoodItem: Flame_Gemstone
Fullness: 80
IntimacyFed: 10
CaptureRate: 200
SpecialPerformance: false
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if( .@i >= PET_INTIMATE_LOYAL ){
bonus2 bSubEle,Ele_Fire,2;
bonus2 bAddEle,Ele_Fire,2;
}

View File

@ -166,8 +166,6 @@
85,15000:14500:14000:13500:13000:12500:12000:11500:11000:10500,5000,0,4000,30000,0
//-- WZ_WATERBALL
86,1000:2000:3000:4000:5000:6000:7000:8000:9000:10000,0,0,10000,0,0
//-- WZ_ICEWALL
87,0,0,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0,0
//-- WZ_FROSTNOVA
88,6000:6000:5500:5500:5000:5000:4500:4500:4000:4000,1000,0,0,1500:3000:4500:6000:7500:9000:10500:12000:13500:15000,0
//-- WZ_STORMGUST
@ -1320,8 +1318,9 @@
2282,0,0,0,20000:30000:40000:50000:60000,0,0
//-- NC_DISJOINT
2283,2000,0,0,0,0,0
//-- NC_MAGMA_ERUPTION
5006,1000,500,0,5000,42000,10000:9000:8000:7000:6000
5006,1000,500,0,5000,5000,10000:9000:8000:7000:6000
//-- NC_MAGMA_ERUPTION_DOTDAMAGE
5015,0,0,0,0,20000,0
//==========================================
//===== Shadow Chaser ======================
@ -1633,20 +1632,16 @@
//==========================================
//===== Rebellion Skills ===================
//-- RL_GLITTERING_GREED
//2551,0,0,0,0,0,0
//-- RL_RICHS_COIN
2552,0,1000,0,600000,0,3000
//-- RL_MASS_SPIRAL
2553,2000,1000,0,0,30000,2000
2553,1000,1000,0,120000,0,2000
//-- RL_BANISHING_BUSTER
2554,3000:2500:2000:1500:1000,2000,0,0,0,10000
2554,3000:2500:2000:1500:1000,0,0,0,0,2000
//-- RL_B_TRAP
2555,0,2500:2000:1500:1000:500,0,10000,9000:14000:19000:24000:29000,10000
//-- RL_FLICKER
2556,0,0,0,0,0,10000
2555,2000:1600:1200:800:400,2500:2000:1500:1000:500,0,10000,10000:11000:12000:13000:14000,10000
//-- RL_S_STORM
2557,3000:2500:2000:1500:1000,2000,0,0,0,2000
2557,3000:2500:2000:1500:1000,0,0,0,0,2000
//-- RL_E_CHAIN
2558,1000,1000,0,45000:60000:75000:90000:105000:120000:135000:150000:165000:180000,0,0
//-- RL_QD_SHOT
@ -1654,11 +1649,11 @@
//-- RL_C_MARKER
2560,0,0,0,30000,0,1000
//-- RL_FIREDANCE
2561,0,500,0,0,0,5000
2561,0,500,0,0,0,0
//-- RL_H_MINE
2562,1000,1000,0,50000,15000,5000:4500:4000:3500:3000
//-- RL_P_ALTER
2563,0,0,0,30000:45000:60000:75000:90000,0,0
2563,2000,0,0,42000:54000:66000:78000:90000,0,0
//-- RL_FALLEN_ANGEL
2564,0,0,0,2000,0,0
//-- RL_R_TRIP
@ -1675,12 +1670,6 @@
2570,5000:6000:7000:8000:9000,1000,0,0,2000,5000
//-- RL_HAMMER_OF_GOD
2571,0,2000,0,0,3000:3000:4000:4000:5000,30000
//-- RL_R_TRIP_PLUSATK
//2572,0,0,0,0,0,0
//-- RL_B_FLICKER_ATK
//2573,0,0,0,0,0,0
//-- RL_GLITTERING_GREED_ATK
//2574,0,0,0,0,0,0
//==========================================
//==== Kagerou & Oboro Skills ==============

View File

@ -1345,7 +1345,7 @@
5003,7,6,1,-1,0x2,4:5:6:7:-1,5,1,no,0,0,0,weapon,0,0x0, GN_ILLUSIONDOPING,Illusion Doping
5004,9,6,2,1,0x42,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0x40000,0,weapon,0,0x0, RK_DRAGONBREATH_WATER,Dragon Breath - Water
5005,0,6,4,0,0x3,3,1,1,no,0,0,0,none,0,0x0, RK_LUXANIMA,Lux Anima
5006,1,6,2,3,0,0,5,1,no,0,0,3,misc,0,0x4000, NC_MAGMA_ERUPTION,Magma Eruption
5006,1,6,2,-1,0x2,3,5,1,no,0,0,3,weapon,0,0x4000, NC_MAGMA_ERUPTION,Magma Eruption
5007,0,6,4,0,0x3,5:6:7:8:9,5,1,no,0,0,0,none,0,0x0, WM_FRIGG_SONG,Frigg's Song
5008,0,6,4,0,0x3,11,5,1,no,0,0,0,none,0,0x0, SO_ELEMENTAL_SHIELD,Elemental Shield
5009,1,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_FLASHCOMBO,Flash Combo
@ -1354,6 +1354,7 @@
5012,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, WL_TELEKINESIS_INTENSE,Intense Telekinesis
5013,0,6,4,0,0x3,0,5,1,no,0,0,0,none,0,0x0, LG_KINGS_GRACE,King's Grace
5014,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x4000, ALL_FULL_THROTTLE,Full Throttle
5015,1,6,1,0,0xC0,0,5,1,no,0,0,0,misc,0,0, NC_MAGMA_ERUPTION_DOTDAMAGE,Magma Eruption Dot Damage
// Summoner - Placeholder
5018,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_BASIC_SKILL,New Basic Skill

View File

@ -26,11 +26,11 @@
// 'RequiredStatuses'
// Fill the value only with SC_STATUS (see db/const.txt for more details)
// Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3
// Max. multiple value is 3 (skill.h: MAX_SKILL_STATUS_REQUIRE)
// Max. multiple value is 3 (skill.hpp: MAX_SKILL_STATUS_REQUIRE)
// Use any number or SC_ALL will disable status requirements
// 'RequiredEquipment'
// Specified equipment to be equipped. For multiple values, use : as delimiter.
// Max. multiple value is 10 (skill.h: MAX_SKILL_EQUIP_REQUIRE)
// Max. multiple value is 10 (skill.hpp: MAX_SKILL_EQUIP_REQUIRE)
//****
// SM Swordman

View File

@ -43,7 +43,7 @@
83,0x86, , 0, 3,1000,enemy, 0x010 //WZ_METEOR
85,0x86, , 5:5:5:5:5:5:5:5:5:5:7, 1,1250,enemy,0x018 //WZ_VERMILION
86,0x86, , 0:1:1:2:2:2:2:2:2:2, 0,-1,noone, 0x010 //WZ_WATERBALL
87,0x8d, , -1, 0, -1,all, 0x9010 //WZ_ICEWALL
87,0x8d, , -1, 0,1000,all, 0x9010 //WZ_ICEWALL
89,0x86, , 4, 1, 450,enemy, 0x018 //WZ_STORMGUST
91,0x86, , 2, 0,1000,enemy, 0x010 //WZ_HEAVENDRIVE
92,0x8e, , 2, 0, -1,enemy, 0x8010 //WZ_QUAGMIRE

File diff suppressed because it is too large Load Diff

View File

@ -1,61 +1,61 @@
Header:
Type: ATTENDANCE_CONF
Type: ATTENDANCE_DB
Version: 1
Attendance:
- Start: 20180502
End: 20180529
Rewards:
- Day: 1
ItemId: 22979
- Day: 2
ItemId: 6316
- Day: 3
ItemId: 12265
Amount: 5
- Day: 4
ItemId: 23047
Amount: 5
- Day: 5
ItemId: 23038
- Day: 6
ItemId: 23043
- Day: 7
ItemId: 23340
Amount: 3
- Day: 8
ItemId: 12516
Amount: 5
- Day: 9
ItemId: 23307
Amount: 5
- Day: 10
ItemId: 12610
- Day: 11
ItemId: 14533
Amount: 2
- Day: 12
ItemId: 23012
Amount: 3
- Day: 13
ItemId: 23048
Amount: 5
- Day: 14
ItemId: 12264
Amount: 5
- Day: 15
ItemId: 23046
Amount: 5
- Day: 16
ItemId: 12515
Amount: 5
- Day: 17
ItemId: 12522
Amount: 5
- Day: 18
ItemId: 12523
Amount: 5
- Day: 19
ItemId: 6234
- Day: 20
ItemId: 22845
Body:
# - Start: 20180502
# End: 20180529
# Rewards:
# - Day: 1
# ItemId: 22979
# - Day: 2
# ItemId: 6316
# - Day: 3
# ItemId: 12265
# Amount: 5
# - Day: 4
# ItemId: 23047
# Amount: 5
# - Day: 5
# ItemId: 23038
# - Day: 6
# ItemId: 23043
# - Day: 7
# ItemId: 23340
# Amount: 3
# - Day: 8
# ItemId: 12516
# Amount: 5
# - Day: 9
# ItemId: 23307
# Amount: 5
# - Day: 10
# ItemId: 12610
# - Day: 11
# ItemId: 14533
# Amount: 2
# - Day: 12
# ItemId: 23012
# Amount: 3
# - Day: 13
# ItemId: 23048
# Amount: 5
# - Day: 14
# ItemId: 12264
# Amount: 5
# - Day: 15
# ItemId: 23046
# Amount: 5
# - Day: 16
# ItemId: 12515
# Amount: 5
# - Day: 17
# ItemId: 12522
# Amount: 5
# - Day: 18
# ItemId: 12523
# Amount: 5
# - Day: 19
# ItemId: 6234
# - Day: 20
# ItemId: 22845

123
db/re/guild_skill_tree.yml Normal file
View File

@ -0,0 +1,123 @@
# 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 <http://www.gnu.org/licenses/>.
#
###########################################################################
# Renewal Guild Skill Database
###########################################################################
#
# Guild Skill Settings
#
###########################################################################
# Id - Skill ID of the guild skill.
###########################################################################
# MaxLevel - Maximum level of the guild skill.
###########################################################################
# Required - A list of required skills for the skill to become available.
# Id: Skill ID of the required guild skill.
# Level: Level of the required guild skill.
###########################################################################
Header:
Type: GUILD_SKILL_TREE_DB
Version: 1
Body:
- Id: GD_APPROVAL
MaxLevel: 1
- Id: GD_KAFRACONTRACT
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDRESEARCH
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDUP
MaxLevel: 3
- Id: GD_EXTENSION
MaxLevel: 10
- Id: GD_GLORYGUILD
MaxLevel: 0
- Id: GD_LEADERSHIP
MaxLevel: 5
- Id: GD_GLORYWOUNDS
MaxLevel: 5
- Id: GD_SOULCOLD
MaxLevel: 5
Required:
- Id: GD_GLORYWOUNDS
Level: 1
- Id: GD_HAWKEYES
MaxLevel: 5
Required:
- Id: GD_LEADERSHIP
Level: 1
- Id: GD_BATTLEORDER
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_EXTENSION
Level: 2
- Id: GD_REGENERATION
MaxLevel: 3
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_EXTENSION
Level: 5
- Id: GD_BATTLEORDER
Level: 1
- Id: GD_RESTORE
MaxLevel: 1
Required:
- Id: GD_REGENERATION
Level: 1
- Id: GD_EMERGENCYCALL
MaxLevel: 1
Required:
- Id: GD_APPROVAL
Level: 1
- Id: GD_GUARDRESEARCH
Level: 1
- Id: GD_EXTENSION
Level: 5
- Id: GD_BATTLEORDER
Level: 1
- Id: GD_REGENERATION
Level: 1
- Id: GD_DEVELOPMENT
MaxLevel: 1
- Id: GD_GUILD_STORAGE
MaxLevel: 5

View File

@ -13,7 +13,7 @@
1269:5467,{ bonus bAspd,1; bonus bFlee2,3; }
1284:2892,{ bonus2 bSkillAtk,"AS_SONICBLOW",50; bonus bBaseAtk,50; bonus bFlee,-30; }
1285:2892,{ bonus bCritical,4; bonus bCritAtkRate,40; bonus bMaxHPRate,-10; }
1287:15123,{ if (getequiprefinerycnt(EQI_HAND_R) >= 7) { autobonus "{ bonus bIgnoreDefClass,Class_Normal; }",1000,3000,BF_SHORT,BF_NORMAL; } /* Confirm: Success rate */ }
1287:15123,{ if (getequiprefinerycnt(EQI_HAND_R) >= 7) { autobonus "{ bonus bIgnoreDefClass,Class_Normal; }",1000,3000,BF_SHORT|BF_NORMAL; } /* Confirm: Success rate */ }
1326:22133,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"NC_AXEBOOMERANG",15; } if ((.@eq + .@weapon) >= 18) { bonus2 bAddClass,Class_All,10; if ((.@eq + .@weapon) >= 22) { bonus bLongAtkRate,10; } } }
1387:19021,{ bonus2 bSkillAtk,"WS_CARTTERMINATION",15+(getequiprefinerycnt(EQI_HAND_R))*5; }
1407:5782,{ bonus2 bAddClass,Class_All,3; }
@ -98,7 +98,7 @@
1775:18114,{ bonus bLongAtkRate,70; }
1776:18114,{ bonus bLongAtkRate,40; }
1846:20838,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus2 bSkillCooldown,"SR_FLASHCOMBO",-1000; if ((.@eq + .@weapon) >= 22) { .@val += 15; } } if (.@val) { bonus2 bSkillAtk,"SR_TIGERCANNON",.@val; } }
1935:2988,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; bonus2 bSkillUseSP,"CG_ARROWVULCAN",50; }
1935:2988,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; bonus2 bSkillUseSP,"CG_ARROWVULCAN",-50; }
1944:15180:28442,{ bonus bBaseAtk,30; bonus bAspd,1; bonus bCritAtkRate,20; }
1990:2989,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; }
2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
@ -430,7 +430,7 @@
4545:18730,{ bonus bMatk,5; bonus bBaseAtk,5; }
4605:4606,{ bonus2 bSubEle,Ele_Neutral,20; bonus bFlee,20; bonus2 bHPLossRate,100,6000; bonus2 bSPLossRate,6,6000; }
4608:4609,{ bonus2 bAddSize,Size_Medium,15; bonus2 bAddSize,Size_Large,15; bonus2 bSubSize,Size_Medium,5; bonus2 bSubSize,Size_Large,5; }
4610:27168,{ bonus bAtk,100; autobonus "{ active_transform 3190,6000; }",30,6000,BF_WEAPON; }
4610:27168,{ bonus bAtk,100; autobonus "{}",30,6000,BF_WEAPON,"{ active_transform 3190,6000; }"; }
4626:4628,{ bonus2 bIgnoreMdefRaceRate,RC_Demon,50; }
4627:4628,{ bonus2 bIgnoreDefRaceRate,RC_Formless,50; bonus2 bIgnoreDefRaceRate,RC_Demon,50;}
4629:4630,{ bonus3 bAutoSpell,"NPC_WIDECURSE",2,2; bonus2 bSubEle,Ele_Neutral,5; }
@ -443,19 +443,19 @@
4653:4654,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreMdefRaceRate,RC_Brute,50; bonus2 bIgnoreMdefRaceRate,RC_Undead,50; }
4653:4655,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreDefRaceRate,RC_Brute,50; bonus2 bIgnoreDefRaceRate,RC_Undead,50; }
4656:4657,{ /* Unofficial chance */ bonus3 bAutoSpellWhenHit,"NPC_WIDESLEEP",2,10; bonus2 bSubEle,Ele_Neutral,5; }
4671:4692,{ autobonus "{ active_transform 3242,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
4672:4693,{ autobonus "{ active_transform 3243,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4673:4696,{ autobonus "{ active_transform 3245,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4674:4684,{ autobonus "{ active_transform 3220,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4675:4685,{ autobonus "{ active_transform 3221,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
4676:4687,{ autobonus "{ active_transform 3222,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4677:4688,{ autobonus "{ active_transform 3223,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4678:4686,{ autobonus "{ active_transform 3224,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
4679:4689,{ autobonus "{ active_transform 3225,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4680:4690,{ autobonus "{ active_transform 3240,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4681:4691,{ autobonus "{ active_transform 3241,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4682:4694,{ autobonus "{ active_transform 3244,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4683:4695,{ autobonus "{ active_transform 3246,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
4671:4692,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3242,6000; }"; }
4672:4693,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3243,6000; }"; }
4673:4696,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3245,6000; }"; }
4674:4684,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3220,6000; }"; }
4675:4685,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3221,6000; }"; }
4676:4687,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3222,6000; }"; }
4677:4688,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3223,6000; }"; }
4678:4686,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3224,6000; }"; }
4679:4689,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3225,6000; }"; }
4680:4690,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3240,6000; }"; }
4681:4691,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3241,6000; }"; }
4682:4694,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3244,6000; }"; }
4683:4695,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3246,6000; }"; }
4697:27012,{ bonus bNoMadoFuel; }
4699:27012,{ bonus bNoMadoFuel; }
4958:19050,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if( .@r >= 7 ){ bonus bDelayrate,-1 - ( .@r > 9 ) ? 1 : 0; } }
@ -480,7 +480,7 @@
5070:18576,{ bonus2 bSkillAtk,"MO_TRIPLEATTACK",5; bonus2 bSkillAtk,"MO_COMBOFINISH",5; bonus2 bSkillAtk,"CH_TIGERFIST",3; bonus2 bSkillAtk,"CH_CHAINCRUSH",3; if( getequiprefinerycnt(EQI_HEAD_TOP) < 10 ) bonus bUseSPrate, getequiprefinerycnt(EQI_HEAD_TOP); }
5073:5574,{ bonus bDex,2; bonus bDef,2; }
5074:5653,{ bonus bStr,1; bonus bAspdRate,2; }
5074:18827,{ autobonus "{ transform 1765,5000; bonus2 bHPLossRate,30,1000; bonus bHit,-10; bonus bSplashRange,1; }",10+getequiprefinerycnt(EQI_HEAD_TOP),5000,BF_WEAPON,"{ specialeffect2 EF_NONE; }"; }
5074:18827,{ autobonus "{ bonus2 bHPLossRate,30,1000; bonus bHit,-10; bonus bSplashRange,1; }",10+getequiprefinerycnt(EQI_HEAD_TOP),5000,BF_WEAPON,"{ transform 1765,5000; }"; }
5086:18527,{ bonus2 bAddItemHealRate,12192,200; }
5086:18656,{ bonus2 bAddItemHealRate,538,100; bonus2 bAddItemHealRate,12192,100; bonus2 bAddMonsterDropItem,538,400; bonus2 bAddMonsterDropItem,12192,400; }
5170:19024,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r >= 7) bonus bAspdRate,5; if (.@r >= 9) bonus bMaxHPRate,5; }
@ -603,7 +603,7 @@
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; } }
19026:20756,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSPGainRace,RC_Fish,10; bonus3 bAddMonsterDropItem,551,RC_Fish,(5+.@r); bonus2 bAddItemHealRate,551,5; bonus bHPrecovRate,(5+.@r); }
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; } }
19117:22101,{ bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5; if(getequiprefinerycnt(EQI_SHOES) >= 12) { bonus bFixedCast,-400; } }
@ -613,6 +613,7 @@
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; }
20717:22000,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
20717:22001,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
20717:22002,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
@ -661,8 +662,11 @@
20718:22116,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
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; }
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; }
20819:5397,{ bonus bAspd,1; bonus bNoCastCancel; }
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; }
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; }
@ -698,8 +702,8 @@
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; } }
22171:13345,{ autobonus "{ bonus bStr,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
//22171:26154,{ autobonus "{ bonus bInt,20; bonus2 bMatkRate,15; }",20,7000,BF_MAGIC; /* unknown rate */ }
22171:26155,{ autobonus "{ bonus bLuk,20; bonus2 bMatkRate,15; bonus2 bAddClass,Class_All,15; }",20,7000,BF_MAGIC|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 */ }
22171:28255,{ autobonus "{ bonus bInt,20; bonus2 bMagicAtkEle,Ele_Ghost,10; }",20,7000,BF_MAGIC; /* unknown rate */ }
22171:28256,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
22171:28257,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
@ -771,7 +775,7 @@
24168:24169:24177,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Formless; }
24168:24169:24178,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Undead; }
24168:24169:24179,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Plant; }
24180:24181:24182:24183:24184:24185,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); bonus bAllStats,1; if(.@r>=45) { bonus bMaxHPrate,(.@r-60); sc_start4 SC_ENDURE,1,10,0,0,1;} }
24180:24181:24182:24183:24184:24185,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); bonus bAllStats,1; if(.@r>=45) { bonus bMaxHPrate,(.@r-60); bonus bNoWalkDelay; } }
24186:24198,{ bonus2 bSubEle,Ele_Neutral,2; }
24187:24199,{ bonus2 bSubEle,Ele_Dark,2; }
24188:24200,{ bonus2 bSubEle,Ele_Water,2; }

View File

@ -87,7 +87,7 @@
582,Orange,Orange,0,300,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(10,20),rand(10,20); },{},{}
583,KETUPAT_,Ketupat Sayur,0,7000,,150,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(325,405),rand(40,60); sc_end SC_POISON; sc_end SC_SILENCE; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_CURSE; sc_end SC_Hallucination; },{},{}
584,Fish_Ball_Soup,Fish Cake Soup,0,100,,60,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(40,70),0; },{},{}
585,Wurst,Brusti,0,2,,40,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(15,20),0; },{},{}
585,Wurst,Brusti,11,2,,40,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(15,20),0; itemskill "PR_MAGNIFICAT",3; },{},{}
586,Mother's_Cake,Mother's Cake,0,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(325,405),0; },{},{}
587,Prickly_Fruit_,Red Prickly Fruit,0,880,,60,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(270,330),rand(20,30); },{},{}
588,Spaghetti,Spaghetti,0,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(40,70),0; },{},{}
@ -494,7 +494,7 @@
1138,Mysteltainn_,Mysteltainn,5,20,,1000,170,,1,0,0x000654E2,63,2,2,4,40,1,2,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEle,Ele_Ghost,15; bonus3 bAutoSpell,"MG_STONECURSE",3,100; bonus2 bAddEff,Eff_Stone,10; bonus bDex,3; },{},{}
1139,Tale_Fing_,Tirfing,5,20,,1000,200,,1,0,0x000654E2,63,2,2,4,40,1,2,{ bonus bAtkEle,Ele_Dark; bonus2 bHPLossRate,35,10000; },{},{}
1140,Byeorrun_Gum,Byeollungum,5,20,,900,150,,1,0,0x000654E2,63,2,2,4,40,1,2,{ bonus2 bSubClass,Class_Normal,-10; bonus2 bAddClass,Class_Boss,50; bonus bAllStats,2; },{},{}
1141,Immaterial_Sword,Immaterial Sword,5,20,,900,140,,1,0,0x000654E2,63,2,2,4,40,1,2,{ bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,30,30; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon; },{},{}
1141,Immaterial_Sword,Immaterial Sword,5,20,,900,140,,1,0,0x000654E2,63,2,2,4,40,1,2,{ bonus bAtkEle,Ele_Ghost; bonus3 bSPVanishRate,30,30,BF_WEAPON|BF_MAGIC|BF_MISC; bonus bSPDrainValue,-1; bonus bUnbreakableWeapon; },{},{}
1142,Jewel_Sword,Jeweled Sword,5,20,,2200,104,,1,0,0x000654E2,63,2,2,3,68,1,2,{ bonus2 bAddMonsterDropItemGroup,IG_Jewel,100; },{},{}
1143,Gaia_Sword,Gaia Sword,5,20,,2500,140,,1,0,0x000654E2,63,2,2,3,74,1,2,{ bonus2 bAddMonsterDropItemGroup,IG_Ore,30; },{},{}
1144,Sasimi,Sashimi,5,20,,1400,75,,1,0,0x000654E2,63,2,2,3,48,1,2,{ bonus bAtkEle,Ele_Wind; bonus3 bAddMonsterDropItem,544,RC_Fish,4000; },{},{}
@ -654,7 +654,7 @@
1291,Guillotine_Katar,Guillotine Katar,5,56000,,1500,200,,1,1,0x00001000,63,2,34,4,140,1,16,{ bonus bDex,2; bonus bFlee,-30; bonus2 bAddRace,RC_DemiHuman,50; bonus2 bAddRace,RC_Player,50; bonus2 bSkillAtk,"GC_CROSSIMPACT",30; },{},{}
1292,Upg_Katar,Upg Katar,5,20,,1000,80,,1,1,0x00001000,63,2,34,3,1,1,16,{ .@r = getrefine(); bonus bBaseAtk,(.@r*10); bonus bCritAtkRate,(.@r*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10); },{},{}
1293,Velum_Jamadhar,Vellum Jamadhar,5,20,,1200,170,,1,0,0x00001000,63,2,34,4,95,1,16,{ bonus4 bSetDefRace,RC_Player,10000,5000,1; bonus4 bSetMDefRace,RC_Player,10000,5000,1; bonus bAspdRate,getrefine(); },{},{}
1294,Velum_Scare,Vellum Scale,5,20,,1200,50,,1,0,0x00001000,63,2,34,4,95,1,16,{ bonus3 bSPVanishRaceRate,RC_Player,10000,10; },{},{}
1294,Velum_Scare,Vellum Scale,5,20,,1200,50,,1,0,0x00001000,63,2,34,4,95,1,16,{ bonus3 bSPVanishRaceRate,RC_Player,1000,10; },{},{}
1295,Blood_Tears_,Blood Tears,5,20,,1700,120,,1,3,0x00001000,18,2,34,4,55,1,16,{ bonus3 bAutoSpell,"NPC_WIDEBLEEDING",(getrefine()>=9?2:1),30; },{},{}
1296,Metal_Katar,Metal Katar,5,20,,0,75,,1,1,0x00001000,63,2,34,3,1,1,16,{ .@r = getrefine(); bonus bBaseAtk,(.@r*5); bonus bCritAtkRate,.@r; .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5); },{},{}
1297,Inverse_Scale_,Inverse Scale,5,20,,1500,140,,1,2,0x00001000,18,2,34,4,55,1,16,{ bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30; },{},{}
@ -734,7 +734,7 @@
1392,Ygnus_Stale,Ignus Steel,5,56000,,1900,250,,1,1,0x000444A2,63,2,34,4,95,1,7,{ bonus bAtkEle,Ele_Fire; bonus bUnbreakableWeapon; bonus2 bAddEff,Eff_Burning,300; bonus2 bAddEff2,Eff_Burning,300; },{},{}
1393,End_Sektura,End Sectora,5,56000,,1900,250,,1,1,0x000444A2,63,2,34,4,95,1,7,{ bonus bAtkEle,Ele_Water; bonus bUnbreakableWeapon; bonus2 bAddEff,Eff_Crystalize,300; bonus2 bAddEff2,Eff_Crystalize,300; },{},{}
1394,Upg_Two_Handed_Axe,Upg Two Handed Axe,5,20,,2000,110,,1,1,0x000444A2,63,2,34,3,1,1,7,{ bonus bBaseAtk,(getrefine()*14); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10); },{},{}
1395,Velum_Buster,Vellum Buster,5,20,,2500,50,,1,0,0x000444A2,63,2,34,4,95,1,7,{ bonus bUnbreakableWeapon; bonus3 bSPVanishRaceRate,RC_Player,10000,10; },{},{}
1395,Velum_Buster,Vellum Buster,5,20,,2500,50,,1,0,0x000444A2,63,2,34,4,95,1,7,{ bonus bUnbreakableWeapon; bonus3 bSPVanishRaceRate,RC_Player,1000,10; },{},{}
1396,Velum_Guillotine,Vellum Guillotine,5,20,,5500,300,,1,0,0x000444A2,63,2,34,4,95,1,7,{ bonus bUnbreakableWeapon; bonus2 bAddRace,RC_Player,40; bonus2 bIgnoreDefRaceRate,RC_Player,30; .@r = getrefine(); if(.@r>=6) { bonus2 bSkillAtk,"NC_AXEBOOMERANG",80; bonus2 bSkillAtk,"NC_POWERSWING",80; } if(.@r>=9) { bonus2 bAddRace,RC_Player,60; } },{},{}
1397,Bradium_Stonehammer_,Bradium Stonehammer,5,20,,2700,210,,1,2,0x000444A2,63,2,34,4,75,1,7,{ bonus bUnbreakableWeapon; },{},{}
1398,Metal_Two_Handed_Axe,Metal Two Handed Axe,5,20,,0,105,,1,1,0x000444A2,63,2,34,3,1,1,7,{ bonus bUnbreakableWeapon; bonus bBaseAtk,(getrefine()*7); .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5); },{},{}
@ -877,7 +877,7 @@
1525,Long_Mace,Long Mace,5,20,,800,135,,3,0,0x00008110,63,2,2,4,40,1,8,{ bonus bLongAtkDef,10; },{},{}
1526,Slash,Slash,5,20,,1000,145,,1,0,0x00008110,63,2,2,4,40,1,8,{ bonus2 bAddRace,RC_Undead,15; bonus2 bComaRace,RC_Undead,10; bonus2 bExpAddRace,RC_Undead,5; },{},{}
1527,Quadrille,Quadrille,5,20,,900,165,,1,0,0x00008110,63,2,2,4,40,1,8,{ bonus2 bAddRace,RC_Undead,10; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Player,10; bonus2 bAddEle,Ele_Earth,10; },{},{}
1528,Grand_Cross,Grand Cross,5,20,,1500,140,,1,0,0x00008110,63,2,2,4,40,1,8,{ bonus bAtkEle,Ele_Holy; skill "PR_TURNUNDEAD",3; bonus3 bAutoSpell,"PR_TURNUNDEAD",3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; },{},{}
1528,Grand_Cross,Grand Cross,5,20,,1500,140,,1,0,0x00008110,63,2,2,4,40,1,8,{ bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"PR_TURNUNDEAD",3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; },{},{}
1529,Iron_Driver,Iron Driver,5,20,,3000,155,,2,0,0x00008100,63,2,2,3,78,1,8,{},{},{}
1530,Mjolnir,Mjolnir,5,20,,6000,350,,1,0,0x000444A2,63,2,2,4,95,0,8,{ bonus bAtkEle,Ele_Wind; bonus bDex,50; bonus bStr,20; bonus bAspdRate,10; bonus3 bAutoSpell,"MG_THUNDERSTORM",10,100; autobonus "{ bonus bSplashRange,1; }",50,10000; },{},{}
1531,Spanner,Wrench,5,20,,2500,115,,1,0,0x00008110,63,2,2,3,55,1,8,{ bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stun,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100; },{},{}
@ -889,7 +889,7 @@
1537,Quadrille_C,Refined Quadrille,5,1,,0,193,,1,0,0x00008110,63,2,2,4,0,0,8,{ bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bAddRace,RC_Demon,40; bonus2 bAddRace,RC_Undead,40; },{},{}
1538,Spike_,Spike,5,20,,700,85,,1,2,0x00008110,63,2,2,4,40,1,8,{ bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67; },{},{}
1539,Golden_Mace_,Golden Mace,5,20,,800,110,,1,2,0x00008110,63,2,2,4,40,1,8,{ bonus2 bAddRace,RC_Undead,10; bonus bUnbreakableWeapon; },{},{}
1540,Grand_Cross_,Grand Cross,5,20,,1500,140,,1,1,0x00008110,63,2,2,4,40,1,8,{ bonus bAtkEle,Ele_Holy; skill "PR_TURNUNDEAD",3; bonus3 bAutoSpell,"PR_TURNUNDEAD",3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; },{},{}
1540,Grand_Cross_,Grand Cross,5,20,,1500,140,,1,1,0x00008110,63,2,2,4,40,1,8,{ bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"PR_TURNUNDEAD",3,100; bonus2 bSPDrainValueRace,RC_Undead,1; bonus2 bSPGainRace,RC_Undead,3; },{},{}
1541,Nemesis,Nemesis,5,20,,900,120,,1,0,0x00008110,63,2,2,4,60,1,8,{ bonus bAtkEle,Ele_Holy; bonus2 bAddRace,RC_Undead,10; bonus2 bAddRace,RC_Demon,10; bonus3 bAutoSpell,"AL_CRUCIS",1+getrefine(),100; autobonus "{ bonus bBaseAtk,50; }",10,20000,BF_WEAPON,"{ specialeffect2 EF_BLOODDRAIN; }"; },{},{}
1542,BF_Morning_Star1,Valorous Battlefield Morning Star,5,20,,0,105,,1,0,0x0004C5B3,63,2,2,3,80,1,8,{ bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon; },{},{}
1543,BF_Morning_Star2,Brave Battlefield Morning Star,5,20,,0,105,,1,0,0x0004C5B3,63,2,2,3,80,1,8,{ bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus bUnbreakableWeapon; autobonus "{ bonus2 bAddEff,Eff_Stun,5000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; },{},{}
@ -1012,7 +1012,7 @@
1658,P_Staff3,Eden Staff III,5,0,,0,60:170,,1,0,0x00818314,63,2,2,3,60,0,10,{ bonus bInt,4; },{},{}
1659,Recovery_Light,Light of Recovery,5,56000,,400,30:160,,1,1,0x00000100,63,2,2,4,110,1,10,{ bonus bAtkEle,Ele_Holy; bonus bUnbreakableWeapon; .@r = getrefine(); bonus bHealPower,(.@r*6); bonus2 bSkillUseSP,"AL_HEAL",-(.@r*10); bonus2 bSkillUseSP,"AB_CHEAL",-(.@r*12); bonus2 bSkillUseSP,"AB_HIGHNESSHEAL",-(.@r*14); },{},{}
1660,Wand_Of_Affection2,Empowered Wand Of Affection,5,20,,500,30:180,,1,1,0x00000100,63,2,2,3,130,1,10,{ bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus bHealPower,20; },{},{}
1661,Mental_Destroyer,Mental Destroyer,5,20,,1400,100:50,,1,0,0x00000200,63,2,2,4,95,1,10,{ bonus bInt,10; bonus bUnbreakableWeapon; bonus bUseSPrate,100; bonus bMdef,20; bonus2 bSPVanishRate,10000,5; if(getrefine()>5) { bonus2 bSPVanishRate,10000,5; } },{},{}
1661,Mental_Destroyer,Mental Destroyer,5,20,,1400,100:50,,1,0,0x00000200,63,2,2,4,95,1,10,{ .@r = getrefine(); bonus bInt,10; bonus bUnbreakableWeapon; bonus bUseSPrate,100; bonus bMdef,20; bonus3 bSPVanishRate,1000,5+(.@r>5?3:0),BF_WEAPON|BF_MAGIC|BF_MISC; },{},{}
1662,Bone_Wand_,Evil Bone Wand,5,20,,700,40:110,,1,2,0x00818314,63,2,2,3,24,1,10,{ bonus bInt,4; bonus bAtkEle,Ele_Undead; },{},{}
1663,Staff_Of_Bordeaux_,Staff Of Bordeaux,5,20,,500,30:180,,1,2,0x00010200,18,2,2,4,50,1,10,{ bonus bInt,2; bonus bDex,1; if(getskilllv("SA_DRAGONOLOGY") == 5) { bonus bUseSPrate,-15; bonus bInt,3; } },{},{}
1664,Thorn_Staff_,Thorn Staff of Darkness,5,10,,700,60:160,,,1,0x14,50,2,2,4,75,1,8,{ bonus bInt,3; bonus bDex,3; bonus bVariableCastrate,-getrefine(); bonus bAtkEle,Ele_Dark; },{},{}
@ -1214,7 +1214,7 @@
1932,TE_Woe_Guitar,TE Woe Guitar,5,0,,0,100,,1,0,0x00080000,63,1,2,3,40,1,13,{ bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Poison,3000; },{},{}
1933,Thanos_Violin,Thanos Violin,5,10,,2000,200:130,,1,1,0x00080000,56,1,2,4,120,1,13,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bHPDrainRate,50,5; bonus2 bSPDrainRate,10,5; bonus bLongAtkRate,20; bonus2 bHPLossRate,100,10000; },{},{ heal -1000,0; }
1934,Contabass,Contrabass,5,20,,250,180:120,,1,2,0x00080000,63,1,2,3,130,1,13,{ bonus2 bSkillCooldown,"WM_RANDOMIZESPELL",-20; },{},{}
1935,Ukulele_Of_Newoz,Oz's New Ukulele,5,20,,2000,160,,1,2,0x00080000,63,1,2,4,130,1,13,{ bonus2 bSkillUseSP,"MI_RUSH_WINDMILL",-20; },{},{}
1935,Ukulele_Of_Newoz,Oz's New Ukulele,5,20,,2000,160,,1,2,0x00080000,63,1,2,4,130,1,13,{ bonus2 bSkillUseSP,"MI_RUSH_WINDMILL",20; },{},{}
1936,Ru_Blue_Violin,Blue Violin,5,10,,1500,180,,2,1,0x00080000,63,1,2,3,100,1,13,{ bonus bDex,5; bonus bVit,5; },{},{}
1937,Ru_Gold_Violin,Ru Gold Violin,5,0,,1500,180,,1,2,0x00080000,56,2,2,3,120,1,13,{ bonus bDex,8; bonus bVit,8; },{},{}
1938,Infinity_Violin,Infinity Violin,5,10,,500,150,,2,1,0x00080000,56,1,2,4,100,1,13,{},{},{}
@ -1266,7 +1266,7 @@
1987,TE_Woe_Rope,TE Woe Rope,5,0,,0,100,,2,0,0x00080000,63,0,2,3,40,1,14,{ bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Blind,3000; },{},{}
1988,Thanos_Whip,Thanos Whip,5,10,,2200,200:130,,2,1,0x00080000,56,0,2,4,120,1,14,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bHPDrainRate,50,5; bonus2 bSPDrainRate,10,5; bonus bLongAtkRate,20; bonus2 bHPLossRate,100,10000; },{},{ heal -1000,0; }
1989,Gymnastics_Ribbon,Rhythmic Gymnastics Ribbon,5,20,,300,150:120,,2,2,0x00080000,63,0,2,3,130,1,14,{ bonus bAspdRate,20; },{},{}
1990,Floral_Mic_Of_Igu,Bloody Floral Decoration Microphone,5,20,,1000,160,,2,2,0x00080000,63,0,2,4,130,1,14,{ bonus2 bSkillUseSP,"CG_MOONLIT",-20; },{},{}
1990,Floral_Mic_Of_Igu,Bloody Floral Decoration Microphone,5,20,,1000,160,,2,2,0x00080000,63,0,2,4,130,1,14,{ bonus2 bSkillUseSP,"CG_MOONLIT",20; },{},{}
1991,Ru_Blue_Whip,Blue Whip,5,10,,1500,180,,2,1,0x00080000,63,0,2,3,100,1,14,{ bonus bDex,5; bonus bVit,5; },{},{}
1992,Ru_Gold_Whip,Ru Gold Whip,5,0,,1500,180,,2,2,0x00080000,56,2,2,3,120,1,14,{ bonus bDex,8; bonus bVit,8; },{},{}
1994,Infinity_Whip,Infinity Whip,5,10,,500,150,,2,1,0x00080000,56,0,2,4,100,1,14,{},{},{}
@ -1404,7 +1404,7 @@
2196,White_Gold_Shield,White Gold Shield,4,0,,1800,,140,,1,0xFFFFFFFF,63,2,32,,,1,4,{ autobonus2 "{ bonus bMagicDamageReturn,20; }",100,2000,BF_MAGIC; /* Confirm: Success rate? */ },{},{}
2198,Lapine_Shield,Lapine Shield,4,0,,1000,,25,,1,0xFFFFFFFF,63,2,32,,100,1,3,{ bonus bMdef,10; if (getrefine() > 7) { bonus bMatk,20; } },{},{}
// GM Shield
2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,10000,,0,0xFFFFFFFF,63,2,32,,1,1,1,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; skill "WZ_ESTIMATION",1; skill "ST_FULLSTRIP",5; skill "HW_MAGICPOWER",10; skill "ECL_SNOWFLIP",1; skill "ECL_PEONYMAMY",1; skill "ECL_SADAGUI",1; skill "ECL_SEQUOIADUST",1; bonus bMaxHPrate,200; bonus bNoKnockback; bonus bDelayRate,-20; bonus bSpeedRate,25; bonus bIntravision; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,10000,,0,0xFFFFFFFF,63,2,32,,1,1,1,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; skill "WZ_ESTIMATION",1; skill "ST_FULLSTRIP",5; skill "HW_MAGICPOWER",10; skill "ECL_SNOWFLIP",1; skill "ECL_PEONYMAMY",1; skill "ECL_SADAGUI",1; skill "ECL_SEQUOIADUST",1; bonus bMaxHPrate,200; bonus bNoKnockback; bonus bDelayRate,-20; bonus bSpeedRate,25; bonus bIntravision; bonus bNoWalkDelay; },{},{}
//===================================================================
// Headgears
//===================================================================
@ -2313,7 +2313,7 @@
4120,Petit__Card,Sky Petite Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Dragon,30; },{},{}
4121,Phreeoni_Card,Phreeoni Card,6,20,,10,,,,,,,,2,,,,,{ bonus bHit,100; },{},{}
4122,Deviruchi_Card,Deviruchi Card,6,20,,10,,,,,,,,769,,,,,{ bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; },{},{}
4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; bonus bNoWalkDelay; },{},{}
4124,Medusa_Card,Medusa Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Demon,15; bonus2 bResEff,Eff_Stone,10000; },{},{}
4125,Deviace_Card,Deviace Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddRace,RC_DemiHuman,7; bonus2 bAddRace,RC_Player,7; bonus2 bAddRace,RC_Brute,7; bonus2 bAddRace,RC_Plant,7; bonus2 bAddRace,RC_Insect,7; },{},{}
4126,Minorous_Card,Minorous Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddSize,Size_Large,15; bonus bBaseAtk,5; },{},{}
@ -2361,7 +2361,7 @@
4168,Dark_Lord_Card,Dark Lord Card,6,20,,10,,,,,,,,64,,,,,{ bonus3 bAutoSpellWhenHit,"WZ_METEOR",5,100; },{},{}
4169,Dark_Illusion_Card,Dark Illusion Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus bVariableCastrate,-10; },{},{}
4170,Dark_Frame_Card,Dark Frame Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,Eff_Stone,600; },{},{}
4171,Dark_Priest_Card,Dark Priest Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bSPVanishRate,50,10; if(BaseJob==Job_Sage) bonus bSPDrainValue,1; },{},{}
4171,Dark_Priest_Card,Dark Priest Card,6,20,,10,,,,,,,,2,,,,,{ bonus3 bSPVanishRate,50,10,BF_WEAPON|BF_MAGIC|BF_MISC; if(BaseJob==Job_Sage) bonus bSPDrainValue,1; },{},{}
4172,The_Paper_Card,The Paper Card,6,20,,10,,,,,,,,2,,,,,{ bonus bCritAtkRate,20; bonus bSPDrainValue,-1; },{},{}
4173,Demon_Pungus_Card,Demon Pungus Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,Eff_Sleep,600; },{},{}
4174,Deviling_Card,Deviling Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bSubEle,Ele_Neutral,50; bonus2 bSubEle,Ele_Water,-50; bonus2 bSubEle,Ele_Earth,-50; bonus2 bSubEle,Ele_Fire,-50; bonus2 bSubEle,Ele_Wind,-50; bonus2 bSubEle,Ele_Poison,-50; bonus2 bSubEle,Ele_Holy,-50; bonus2 bSubEle,Ele_Dark,-50; bonus2 bSubEle,Ele_Ghost,-50; bonus2 bSubEle,Ele_Undead,-50; },{},{}
@ -2694,7 +2694,7 @@
4501,Sealed_B_Magaleta_Card,Sealed High Priest Card,6,20,,10,,,,,,,,16,,,,,{ bonus5 bAutoSpellWhenHit,"HP_ASSUMPTIO",1,((getrefine()>14)?35:25),BF_WEAPON|BF_MAGIC,0; },{},{}
4502,Sealed_B_Harword_Card,Sealed MasterSmith Card,6,20,,10,,,,,,,,2,,,,,{ .@r = getrefine(); bonus bBreakWeaponRate,(.@r>14?800:500); bonus bBreakArmorRate,(.@r>14?600:500); },{},{}
4503,Sealed_Apocalips_H_Card,Sealed Vesper Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDex,2; bonus2 bIgnoreMdefClassRate,Class_Boss,((getrefine()>14)?25:15); },{},{}
4504,Sealed_Eddga_Card,Sealed Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,((getrefine()>14)?-35:-50); },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
4504,Sealed_Eddga_Card,Sealed Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,((getrefine()>14)?-35:-50); bonus bNoWalkDelay; },{},{}
4505,Scaraba_Card,Scaraba Card,6,20,,10,,,,,,,,136,,,,,{ bonus bMatk,20; bonus bMaxSPrate,-1; },{},{}
4506,Dolomedes_Card,Dolomedes Card,6,20,,10,,,,,,,,769,,,,,{ bonus bDex,2; if(BaseClass==Job_Archer){ bonus bDex,getrefine()/3; } },{},{}
4507,Q_Scaraba_Card,Queen Scaraba Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddRace2,RC2_SCARABA,30; bonus2 bAddMonsterDropItem,12806,30; },{},{}
@ -3069,7 +3069,7 @@
4890,Mdef1,MDEF+1,6,10,,,,,,,,,,,,,,,{ bonus bMdef,1; },{},{}
4891,Mdef3,MDEF+3,6,10,,,,,,,,,,,,,,,{ bonus bMdef,3; },{},{}
4892,Mdef5,MDEF+5,6,10,,,,,,,,,,,,,,,{ bonus bMdef,5; },{},{}
4893,Def15,DEF+15,6,10,,,,,,,,,,,,,,,{ bonus bMdef,15; },{},{}
4893,Def15,DEF+15,6,10,,,,,,,,,,,,,,,{ bonus bDef,15; },{},{}
4894,Atk4p,ATK + 4%,6,10,,,,,,,,,,,,,,,{ bonus2 bAddClass,Class_All,4; },{},{}
4895,Atk5p,ATK + 5%,6,10,,,,,,,,,,,,,,,{ bonus2 bAddClass,Class_All,5; },{},{}
4896,Matk2p,MATK + 2%,6,10,,,,,,,,,,,,,,,{ bonus bMatkRate,2; },{},{}
@ -5999,11 +5999,54 @@
9060,Brownie_Egg,Brownie Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9061,Marin_Egg,Marin Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9062,Novice_Poring_Egg,Novice Poring Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9063,Woodie_Egg,Woodie Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9064,Elephant_Egg,Elephant Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9065,Gorilla_Egg,Gorilla Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9066,Lion_Egg,Lion Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9067,Rhino_Egg,Rhino Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9068,Blue_Unicorn_Egg,Blue Unicorn Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9069,Mastering_Egg,Mastering Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9070,Savage_Egg,Savage Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9071,Grand_Peco_Peco_Egg,Grand Peco Peco Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9072,Orc_Hero_Egg,Orc Hero Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9073,Orc_Lord_Egg,Orc Lord Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9074,Rubylit_Egg,Rubylit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9075,Sapphilit_Egg,Sapphilit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9076,Emelit_Egg,Emelit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9077,Topalit_Egg,Topalit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9078,Amelit_Egg,Amelit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9079,Mythlit_Egg,Mythlit Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9080,Tamadora_Egg,Tamadora Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9087,High_Orc_Egg,High Orc Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9088,Angeling_Egg,Angeling Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9089,Am_Mut_Egg,Am Mut Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9090,Little_Isis_Egg,Little Isis Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9091,Choco_Egg,Choco Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9092,Eggring_Egg,Eggring Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9093,Hyegun_Egg,Hyegun Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9094,Dr_Lunatic_Egg,Leaf Lunatic Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9095,Nine_Tail_Egg,Nine Tail Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9096,Cat_o_Nine_Tail_Egg,Cat o Nine Tail Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9097,Diabolic_2_Egg,Diabolic Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9098,Fire_Deleter_Egg,Fire Deleter Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9099,Teddy_Bear_Egg,Teddy Bear Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9100,Gremlin_Egg,Gremlin Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9101,Scatleton_Egg,Scatleton Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9102,Mummy_Egg,Mummy Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9103,Willow_Egg,Willow Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9104,Roween_Egg,Roween Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9105,Hodremlin_Egg,Hodremlin Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9106,Metaller_Egg,Metaller Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9107,Ancient_Mummy_Egg,Ancient Mummy Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9108,Xm_Teddy_Bear_Egg,Xmas Teddy Bear Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9109,Sweet_Drops_Egg,Sweet Drops Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9111,Phreeoni_Egg,Phreeoni Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9112,Moonlight_Egg,Moonlight Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9113,Skelion_Egg,Skelion Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9114,Pouring_Egg,Pouring Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
9115,Bacsojin2_Egg_,Bacsojin Egg,7,20,,0,,,,,,,,,,,,,{},{},{}
//===================================================================
// Pet Accessories
//===================================================================
@ -6046,6 +6089,9 @@
10037,Black_Butterfly_Mask,Black Butterfly Mask,8,20,,0,,,,,,,,,,,,,{},{},{}
10038,Horn_Protector,Horn Barrier,8,20,,0,,,,,,,,,,,,,{},{},{}
10039,Tw_Backpack,Tw Backpack,8,20,,0,,,,,,,,,,,,,{},{},{}
10040,Red_Bell_Necklace,Red Bell Necklace,8,20,,0,,,,,,,,,,,,,{},{},{}
10041,Shiny_Star_Button,Shiny Star Button,8,20,,0,,,,,,,,,,,,,{},{},{}
10042,Dark_Mane,Dark Mane,8,20,,0,,,,,,,,,,,,,{},{},{}
//===================================================================
// Misc "Etc" Books
//===================================================================
@ -6626,7 +6672,7 @@
12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 EF_MAPPILLAR2; else if(.@rnd==9) specialeffect2 EF_ANGEL2; else specialeffect2 EF_COIN; },{},{}
12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 EF_BEGINASURA; else if(.@rnd==9) specialeffect2 EF_MVP; else specialeffect2 EF_CURSEATTACK; },{},{}
12398,PCBang_Gift_Box,PCRoom Gift Box,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,63,2,,,,,,{ Zeny += 1000000; },{},{}
12400,Water_Of_Blessing_,Water Of Blessing,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12401,Rune_Kn_Test_Int,Rune Kn Test Int,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCINT,300000,40; },{},{}
12402,29Fruit,29Fruit,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 5,5; },{},{}
@ -7052,8 +7098,8 @@
12814,Slapping_Herb,Slapping Herb,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "ECL_SADAGUI",1; },{},{}
12815,Yggdrasil_Dust,Yggdrasil Dust,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "ECL_SEQUOIADUST",1; },{},{}
12816,Old_Ore_Box_,Old Ore Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,60,,,{},{},{}
12817,Old_Card_Album_,Old Card Album,2,0,,0,,,,,0xFFFFFFFF,63,2,,,80,,,{},{},{}
12818,High_Weapon_Box_,High Weapon Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,100,,,{ getrandgroupitem(IG_Advanced_Weapons_Box,1); },{},{}
12817,Old_Card_Album_,Old Card Album,2,0,,0,,,,,0xFFFFFFFF,63,2,,,80,,,{ getrandgroupitem(IG_CardAlbum,1); getitem 12818,1; },{},{}
12818,High_Weapon_Box_,High Weapon Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,100,,,{ getrandgroupitem(IG_Advanced_Weapons_Box,1); getitem 12809,1; },{},{}
12819,Zherlthsh_Tck_Box_,Zherlthsh Tck Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,150,,,{ getitem 6184,1; },{},{}
12820,Mao_Guai_Scroll,Mao Guai Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ mercenary_create 2348,1800000; },{},{}
12821,Loli_Ruri_Scroll,Loli Ruri Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ mercenary_create 2349,1800000; },{},{}
@ -7335,9 +7381,9 @@
13117,TE_Woe_Pistol,TE Woe Pistol,5,0,,0,60,,7,0,0x41000000,63,2,34,3,40,1,17,{ bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Curse,3000; },{},{}
13118,Tiny_Flame,Fading Flame,5,1,,100,0,,7,0,0x41000000,63,2,34,1,1,1,17,{},{},{}
13119,Freedom_Flame,Freedom Flame,5,1,,100,100,,7,2,0x41000000,63,2,34,3,99,1,17,{},{},{}
13120,Heaven's_Feather_and_Hell's_Fire,Heaven's Feather & Hell's Fire,5,1250000,,800,150,,9,1,0x41000000,63,2,34,3,99,1,17,{ bonus2 bSkillAtk,"GS_DESPERADO",20; bonus2 bSkillAtk,"RL_FALLEN_ANGEL",20; },{},{}
13122,Altea_and_Ares,Altea & Ares,5,1450000,,1000,200,,9,0,0x40000000,63,2,34,3,140,1,17,{ bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30; },{},{}
13124,Altea_and_Ares_,Altea & Ares,5,1450000,,1000,200,,9,1,0x40000000,63,2,34,3,140,1,17,{ bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30; },{},{}
13120,H_FEATHER_H_FIRE,Heaven's Feather & Hell's Fire,5,1200000,,800,150,,9,1,0x41000000,63,2,34,3,99,1,17,{ bonus2 bSkillAtk,"GS_DESPERADO",20; bonus2 bSkillAtk,"RL_FALLEN_ANGEL",20; },{},{}
13122,ALTAIR_ARES,Altair & Ares,5,1450000,,1000,200,,9,0,0x40000000,63,2,34,3,140,1,17,{ bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30; },{},{}
13124,ALTAIR_ARES_,Altair & Ares,5,1450000,,1000,200,,9,1,0x40000000,63,2,34,3,140,1,17,{ bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30; },{},{}
13125,Metal_Revolver,Metal Revolver,5,0,,0,30,,7,1,0x41000000,63,2,34,3,1,1,17,{ bonus bBaseAtk,getrefine(); bonus bLongAtkRate,1; if (BaseLevel >= 20 && BaseLevel <= 120) { bonus bBaseAtk,3*(BaseLevel/10); } },{},{}
13126,Infinity_Pistol,Infinity Pistol,5,10,,500,175,,7,1,0x40000000,63,2,34,4,100,0,17,{},{},{}
13127,Crimson_Revolver,Crimson Revolver,5,20,,1000,100,,7,2,0x41000000,63,2,34,3,70,1,17,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
@ -7458,12 +7504,12 @@
13272,Cure_Free_To_Throw,Throwing Cure Free,10,100,,50,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_end SC_BLEEDING; sc_end SC_CURSE; sc_end SC_SILENCE; sc_end SC_POISON; sc_end SC_ORCISH; sc_end SC_CHANGEUNDEAD; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_DPOISON; itemheal 500,0; },{},{}
13273,Stamina_Up_M_To_Throw,Throwing Muramura M,10,100,,10,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_MUSTLE_M,500000,5; },{},{}
13274,Digestive_F_To_Throw,Throwing Falmons F,10,100,,10,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_LIFE_FORCE_F,500000,5; },{},{}
13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(500+(BaseLevel*10/3)); percentheal 1,0; },{},{}
13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(1500+(BaseLevel*10/3)); percentheal 2,0; },{},{}
13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(2500+(BaseLevel*10/3)); percentheal 5,0; },{},{}
13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)-5); percentheal 0,2; },{},{}
13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)); percentheal 0,4; },{},{}
13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)+5); percentheal 0,8; },{},{}
13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,56,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
13281,En_White_PotZ_To_Throw,Throwing Concentrated White Potion Z,10,100,,70,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20; itemheal 1000,0; },{},{}
13282,Vitata500_To_Throw,Throwing Vitata 500,10,100,,50,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start2 SC_VITATA_500,500000,20,5; itemheal 0,200; },{},{}
13283,En_Cel_Juice_To_Throw,Throwing Ceromain Soup,10,100,,50,0,,,,0x00040000,56,2,32768,,99,,9,{ sc_start SC_EXTRACT_SALAMINE_JUICE,500000,10; },{},{}
@ -7525,7 +7571,7 @@
13406,Edger,Edger,5,20,,0,120,,1,0,0x000654E2,63,2,2,1,0,0,2,{ bonus2 bAddClass,Class_All,50; },{},{}
13407,Nagan_C,Refined Nagan,5,1,,0,148,,1,0,0x000654E2,63,2,2,4,0,0,2,{ skill "TF_DOUBLE",5; bonus bDoubleRate,25; bonus2 bAddRace,RC_DemiHuman,40; bonus2 bAddRace,RC_Player,40; },{},{}
13408,Fire_Brand_C,Refined Fireblend,5,1,,0,120,,1,0,0x000654E2,63,2,2,4,0,0,2,{ bonus bAtkEle,Ele_Fire; bonus bInt,2; skill "MG_FIREBOLT",5; bonus3 bAutoSpell,"MG_FIREBOLT",5,100; },{},{}
13409,Immaterial_Sword_C,Refined Immaterial Sword,5,1,,0,160,,1,0,0x000654E2,63,2,2,4,0,0,2,{ bonus bAtkEle,Ele_Ghost; bonus2 bSPVanishRate,80,45; bonus bUnbreakableWeapon; },{},{}
13409,Immaterial_Sword_C,Refined Immaterial Sword,5,1,,0,160,,1,0,0x000654E2,63,2,2,4,0,0,2,{ bonus bAtkEle,Ele_Ghost; bonus3 bSPVanishRate,80,45,BF_WEAPON|BF_MAGIC|BF_MISC; bonus bUnbreakableWeapon; },{},{}
13410,BF_Sword1,Valorous Gladiator Blade,5,20,,0,115,,1,0,0x000654E3,63,2,2,3,80,1,2,{ bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon; },{},{}
13411,BF_Sword2,Brave Gladiator Blade,5,20,,0,115:74,,1,0,0x000654E3,63,2,2,3,80,1,2,{ bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus bMatkRate,10; bonus bUnbreakableWeapon; },{},{}
13412,Twin_Edge_B,Twin Edge of Naght Sieger,5,20,,1500,150,,1,3,0x000654E2,18,2,2,4,75,1,2,{ bonus bAtkEle,Ele_Water; skill "MG_FROSTDIVER",5; autobonus "{ bonus bIgnoreDefClass,Class_Normal; }",50,5000; },{},{}
@ -7535,7 +7581,7 @@
13416,Krieger_Onehand_Sword1,Glorious Flamberge,5,20,,0,130,,1,0,0x000654E3,63,2,2,4,80,1,2,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon; .@r = getrefine(); if(.@r>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(14,.@r)-4,2); bonus2 bAddRace,RC_Player,pow(min(14,.@r)-4,2); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreDefRaceRate,RC_Player,5; } if(.@r>6) bonus bAspdRate,5; if(.@r>8) { bonus bAspdRate,5; bonus4 bAutoSpellOnSkill,"SM_BASH","NPC_CRITICALWOUND",2,200; } },{},{}
13417,Krieger_Onehand_Sword2,Glorious Rapier,5,20,,0,130:80,,1,0,0x000654E3,63,2,2,4,80,1,2,{ .@r = getrefine(); bonus bInt,.@r-5; bonus bUnbreakableWeapon; if(.@r>5) bonus bUseSPrate,-10; if(.@r>8) bonus bInt,5; },{},{}
13418,Krieger_Onehand_Sword3,Glorious Holy Avenger,5,20,,0,130:80,,1,0,0x000444A2,63,2,2,4,80,1,2,{ .@r = getrefine(); bonus bInt,.@r-5; bonus bUnbreakableWeapon; if(.@r>5) bonus bUseSPrate,-10; if(.@r>8) bonus4 bAutoSpellOnSkill,"PA_PRESSURE","PR_LEXAETERNA",1,1000; if(.@r>9) bonus bInt,5; },{},{}
13419,Holy_Saber,Holy saber,5,20,,0,160,,1,0,0x000654E2,63,2,2,3,0,0,2,{ bonus2 bAtkEle,Ele_Undead,40; bonus2 bMagicAddEle,Ele_Undead,40; },{},{}
13419,Holy_Saber,Holy saber,5,20,,0,160,,1,0,0x000654E2,63,2,2,3,0,0,2,{ bonus2 bAddEle,Ele_Undead,40; bonus2 bMagicAddEle,Ele_Undead,40; },{},{}
13420,Honglyun's_Sword,Honglyun's Sword,5,20,,1200,160,,1,1,0x000654E2,63,2,2,4,70,1,2,{ bonus bAtkEle,Ele_Fire; bonus bStr,2; bonus bInt,2; bonus3 bAutoSpell,"WZ_METEOR",1,5; },{},{}
13421,Ruber,Ruber,5,20,,1500,170,,1,1,0x000444A2,18,2,2,3,50,1,2,{ autobonus "{ bonus2 bSkillAtk,\"KN_BOWLINGBASH\",20; bonus2 bSkillAtk,\"SM_BASH\",20; }",5,15000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; },{},{}
13422,Flamberge_C,Flamberge,5,0,,0,185,,1,0,0x00004080,63,2,2,3,1,0,2,{ bonus bUnbreakableWeapon; bonus2 bAddSize,Size_All,40; },{},{}
@ -8557,7 +8603,7 @@
14583,WOB_Schwaltz,Green Butterfly Wing,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashCity",2; },{},{}
14584,WOB_Rachel,Red Butterfly Wing,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashCity",3; },{},{}
14585,WOB_Local,Blue Butterfly Wing,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashCity",4; },{},{}
14586,Spark_Candy,Jumping Candy,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_HASTEUP; bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; /*EFFECTEndure 9999 100*/ }",60,0,0,EFST_STEAMPACK; itemskill "SM_ENDURE",10; },{},{}
14586,Spark_Candy,Jumping Candy,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_HASTEUP; bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; bonus bNoWalkDelay; }",60,0,0,EFST_STEAMPACK; },{},{}
14587,Repair_Scroll_,Equipment Repair Spell Book,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "BS_REPAIRWEAPON",1; },{},{}
14588,Pty_Blessing_Scroll,Party Blessing 10 Scroll,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "CASH_BLESSING",10; },{},{}
14589,Pty_Inc_Agi_Scroll,Party Increase Agi 10 Scroll,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "CASH_INCAGI",10; },{},{}
@ -8735,7 +8781,7 @@
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 Combat Robe,4,10,,800,,35,,1,0xFFFFFFFF,63,2,16,,145,1,,{ /*TODO: Confirm the real rate and additional MAtk*/ .@r = getrefine(); autobonus "{ bonus bMatk,20; }",100,(10+((.@r) ? .@r*8 : 0))*1000,BF_MAGIC;},{},{}
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 */ },{},{}
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; },{},{}
@ -9304,7 +9350,7 @@
17158,Flame_Gemstone_Box,Flame Gemstone Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 6114,10; },{},{}
17159,Change_Name_Card_Box,Name Change Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
17160,Character_Name_Change_Card_Box,Character Name Change Card Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
17162,Boarding_Halter_Box7,Boarding Halter Box7,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
17162,Boarding_Halter_Box7,Boarding Halter Box7,18,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ rentitem 12622,604800; },{},{}
17165,Challenge_Kit,Challenge Kit,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Challenge_Kit); /*getitem Blessing_10_Scroll,20; getitem Inc_Agi_10_Scroll,20;*/ },{},{}
17176,Boarding_Halter_Box3,Halter Lead Box[Trial],18,20,,0,,,,,0xFFFFFFFF,63,2,,,,,0,{},{},{}
17181,Jan_Groove_Box,Jan Groove Box,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
@ -9537,7 +9583,7 @@
18110,Big_CrossBow,Giant Crossbow,5,56000,,900,160,,5,2,0x00000800,63,2,34,4,110,1,11,{ .@r = getrefine(); bonus2 bSkillAtk,"RA_ARROWSTORM",(.@r*5); bonus2 bSkillUseSP,"RA_ARROWSTORM",-(.@r*5); if(readparam(bAgi)>=120){ bonus bAspd,1; } },{},{}
18111,Creeper_Bow,Creeper Bow,5,56000,,1500,150,,5,2,0x00080800,63,2,34,3,120,1,11,{ bonus bDex,1; bonus3 bAutoSpell,"PF_SPIDERWEB",1,200; },{},{}
18112,Upg_Bow,Upg Bow,5,20,,600,60,,5,1,0x000A0848,63,2,34,3,1,1,11,{ .@r = getrefine(); bonus bBaseAtk,(.@r*7); bonus bLongAtkRate,(.@r*2); if(BaseJob==Job_Hunter) bonus bBaseAtk,20; if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10); },{},{}
18113,Velum_Arbalest,Vellum Arbalest,5,20,,1100,50,,5,0,0x000A0848,63,2,34,4,95,1,11,{ bonus3 bSPVanishRaceRate,RC_Player,10000,4; bonus bAspd,-5; },{},{}
18113,Velum_Arbalest,Vellum Arbalest,5,20,,1100,50,,5,0,0x000A0848,63,2,34,4,95,1,11,{ bonus3 bSPVanishRaceRate,RC_Player,1000,4; bonus bAspd,-5; },{},{}
18114,Velum_CrossBow,Vellum CrossBow,5,20,,1100,110,,5,0,0x000A0848,63,2,34,4,95,1,11,{ bonus2 bAddRace,RC_Player,30+getrefine(); bonus2 bIgnoreDefRaceRate,RC_Player,30; },{},{}
18115,Orc_Archer_Bow_,Orc Archer Bow,5,20,,1600,120,,5,1,0x000A0848,63,2,34,3,65,1,11,{},{},{}
18116,Metal_Bow,Metal Bow,5,20,,0,50,,5,1,0x00080800,63,2,34,3,1,1,11,{ .@r = getrefine(); if(BaseJob==Job_Hunter && Upper!=2) bonus bBaseAtk,10; bonus bBaseAtk,(.@r*3); bonus bLongAtkRate,.@r; .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5); },{},{}
@ -9550,7 +9596,7 @@
18123,Bow_Of_Storm,Bow of Storms,5,20,,1500,160,,5,1,0x00080800,63,2,34,4,130,1,11,{ bonus bLongAtkRate,30; bonus2 bSkillCooldown,"WM_SEVERE_RAINSTORM",-2000; bonus2 bSkillUseSP,"WM_SEVERE_RAINSTORM",15; },{},{}
18124,Half_BF_Bow1,Half BF Bow1,5,20,,0,100,,5,0,0x000A0848,63,2,34,3,80,1,11,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus bUnbreakableWeapon; },{},{}
18125,Arcus_Daemonicus,Arcus Daemonicus,5,20,,1000,130,,5,2,0x00020008,63,2,34,4,80,1,11,{ /*Fix me: bonus2 bAddClass,Class_All,50; when equipped with shadow arrows*/ if(getrefine()>9){ bonus bAspd,1; bonus bUseSPrate,-20; } },{},{}
18126,Ru_Blue_Bow,Blue Bow,5,10,,1200,150,,5,1,0x00000800,56,2,2,3,100,1,11,{ bonus bAgi,5; bonus bDex,5; },{},{}
18126,Ru_Blue_Bow,Blue Bow,5,10,,1200,150,,5,1,0x00000800,56,2,34,3,100,1,11,{ bonus bAgi,5; bonus bDex,5; },{},{}
18127,Ru_Gold_Bow,Ru Gold Bow,5,0,,1200,150,,5,2,0x00000800,56,2,34,3,120,1,11,{ bonus bAgi,8; bonus bDex,8; },{},{}
18128,Infinity_Bow,Infinity Bow,5,20,,500,160,,5,1,0x00020800,56,2,34,4,100,1,11,{},{},{}
18130,Crimson_Bow,Crimson Bow,5,20,,1200,120,,5,2,0x000A0848,63,2,34,3,70,1,11,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
@ -9661,7 +9707,7 @@
18590,Gemma_Hairband,Gemma Hairband,4,20,,200,,3,,1,0xFFFFFFFF,63,2,256,,10,1,564,{ bonus bMdef,3; },{},{}
18591,Mini_Glasses_,Mini Glasses,4,20,,100,,2,,1,0xFFFFFFFE,63,2,512,,0,0,47,{},{},{}
18592,Nestea_Hat,Nestea Hat,4,20,,200,,5,,0,0xFFFFFFFF,63,2,256,,0,1,756,{ bonus bMdef,5; },{},{}
18593,Fancy_Mini_Crown,Fancy Mini Crown,4,20,,100,,2,,1,0xFFFFFFFF,63,2,256,,30,1,707,{ bonus bInt,1; bonus bMdef,5; bonus bVariableCastRate,-3; bonus bHealPower,3; bonus bSkillUseSP,-3; .@r = getrefine(); bonus bMatkRate,(.@r>6)?(5):((.@r>4)?(4):(3)); },{},{}
18593,Fancy_Mini_Crown,Fancy Mini Crown,4,20,,100,,2,,1,0xFFFFFFFF,63,2,256,,30,1,707,{ bonus bInt,1; bonus bMdef,5; bonus bVariableCastRate,-3; bonus bHealPower,3; bonus bUseSPrate,-3; .@r = getrefine(); bonus bMatkRate,(.@r>6)?(5):((.@r>4)?(4):(3)); },{},{}
18594,Magni_Cap_,Magni Cap,4,30000,,1000,,9,,1,0xFFFFFFFE,63,2,256,,0,1,250,{ bonus bStr,2; },{},{}
18595,Horn_Of_Ancient,Horn of Ancient,4,40,,200,,8,,1,0xFFFFFFFF,63,2,256,,50,1,757,{ bonus2 bSubClass,Class_Boss,10; bonus2 bAddClass,Class_Boss,10; .@r = getrefine(); if (.@r > 6) { autobonus "{ bonus bBaseAtk,100; }",10,10000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; } if (.@r > 8) { bonus2 bSubClass,Class_Boss,10; bonus2 bAddClass,Class_Boss,10; } },{},{}
18596,Sprout_Hat,Sprout Hat,4,20,,200,,4,,0,0xFFFFFFFF,63,2,256,,70,1,758,{ skill "WZ_HEAVENDRIVE",3; },{},{}
@ -9902,10 +9948,10 @@
18880,Advanced_Jao_King_Hat,Advanced Jao King Hat,4,10,,1500,,4,,1,0xFFFFFFFF,63,2,256,,175,1,996,{ bonus bAllStats,3; bonus bMaxHPrate,5; bonus bMaxSPrate,5; },{},{}
18882,Kannam_On_Head,Kannam On Head,4,10,,200,,5,,0,0xFFFFFFFF,63,2,256,,20,1,1003,{ bonus3 bAutoSpellWhenHit,"SA_DELUGE",1,50; .@r = getrefine(); if (.@r > 3) bonus3 bAutoSpellWhenHit,"WZ_WATERBALL",.@r/3,50; },{},{}
18885,Jejecap,Jejecap,4,0,,100,,8,,0,0xFFFFFFFF,63,2,256,,70,1,1011,{ bonus bStr,2; bonus bInt,3; bonus2 bSubRace,RC_DemiHuman,11; bonus2 bSubRace,RC_Player,11; bonus2 bAddItemHealRate,522,70; },{},{}
18887,Aqua_Bunny_Band,Aqua Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1012,{ bonus bVit,3; bonus bMdef,5; bonus bMatkRate,2; .@r = getrefine(); if(.@r>11) bonus bVariableCastrate,-10; else if(.@r>8) { bonus bMatkRate,4; bonus bMdef,5; } },{},{}
18888,Maroon_Bunny_Band,Maroon Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1013,{ bonus bInt,5; bonus bLuk,5; bonus2 bAddClass,Class_All,2; bonus bMatkRate,2; .@r = getrefine(); if(.@r>11) bonus bVariableCastrate,-10; else if(.@r>8) { bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; } },{},{}
18889,Golden_Bunny_Band,Golden Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1014,{ bonus bAgi,5; bonus bLuk,5; bonus2 bAddClass,Class_All,2; .@r = getrefine(); if(.@r>11) bonus bVariableCastrate,-10; else if(.@r>8) { bonus2 bAddClass,Class_All,4; bonus bMdef,5; } },{},{}
18890,Gray_Bunny_Band,Gray Bunny Band,4,0,,0,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1015,{ bonus bInt,5; bonus bLuk,5; bonus2 bAddClass,Class_All,2; bonus bMatkRate,2; .@r = getrefine(); if(.@r>11) bonus bVariableCastrate,-10; else if(.@r>8) { bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; } },{},{}
18887,Aqua_Bunny_Band,Aqua Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1012,{ bonus bVit,3; .@r = getrefine(); bonus bMdef,(.@r>8?10:5); bonus bMatkRate,(.@r>8?6:2); if(.@r>11) bonus bFixedCastrate,-10; },{},{}
18888,Maroon_Bunny_Band,Maroon Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1013,{ bonus bInt,5; bonus bLuk,5; .@r = getrefine(); bonus2 bAddClass,Class_All,(.@r>8?6:2); bonus bMatkRate,(.@r>8?9:5); if(.@r>11) bonus bFixedCastrate,-10; },{},{}
18889,Golden_Bunny_Band,Golden Bunny Band,4,0,,100,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1014,{ bonus bAgi,5; bonus bLuk,5; .@r = getrefine(); bonus2 bAddClass,Class_All,(.@r>8?7:2); if(.@r>8) bonus bMatkRate,5; if(.@r>11) bonus bFixedCastrate,-10; },{},{}
18890,Gray_Bunny_Band,Gray Bunny Band,4,0,,0,,2,,1,0xFFFFFFFF,63,2,256,,0,1,1015,{ bonus bInt,5; bonus bLuk,5; .@r = getrefine(); bonus2 bAddClass,Class_All,(.@r>8?6:2); bonus bMatkRate,(.@r>8?9:5); if(.@r>11) bonus bFixedCastrate,-10; },{},{}
18891,Husky_Hat,Husky Hat,4,0,,500,,5,,1,0xFFFFFFFF,63,2,256,,70,1,1016,{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus3 bAutoSpell,"SN_WINDWALK",5,10+(getrefine()*3); },{},{}
18892,Ufo_Poring_Hat,Ufo Poring Hat,4,0,,1000,,5,,1,0xFFFFFFFF,63,2,256,,10,1,1017,{ bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; bonus bHit,5; bonus bFlee2,5; .@r = getrefine(); if(.@r>8){ bonus bDelayRate,-5; bonus bAspdRate,5; } else if(.@r>6) bonus bVariableCastrate,-5; },{},{}
18893,Dragon_Claw_Helm,Dragon Claw Helm,4,0,,1000,,5,,1,0xFFFFFFFF,63,2,256,,10,1,1018,{ bonus2 bSubRace,RC_DemiHuman,8; bonus2 bSubRace,RC_Player,8; bonus2 bSubRace,RC_Dragon,8; bonus2 bAddItemGroupHealRate,IG_Meat,200; if(getrefine()>11){ bonus bMaxHPrate,7; bonus bMaxSPrate,3; } },{},{}
@ -9917,7 +9963,7 @@
18900,Weisswurst,Weisswurst,4,20,,100,,1,,0,0xFFFFFFFF,63,2,1,,60,0,1022,{ bonus bMaxHP,50; },{},{}
18901,Seppl_Hat,Seppl Hat,4,20,,500,,5,,1,0xFFFFFFFF,63,2,256,,60,0,1023,{ bonus bVit,3; bonus bHPrecovRate,10; },{},{}
18902,Shovel_Hat,Shovel Hat,4,0,,500,,0,,0,0xFFFFFFFF,63,2,256,,50,0,1024,{ bonus bVit,3; bonus2 bAddMonsterDropItem,553,500; bonus2 bAddItemHealRate,553,700; },{},{}
18908,Isabella_Red_Ear,Isabella Red Ear,4,10,,300,,8,,1,0xFFFFFFFF,63,2,256,,1,1,1030,{ bonus bStr,5; bonus bMaxHPrate,5; bonus2 bSubDefEle,Ele_Fire,10; .@r = getrefine(); if (.@r >= 9) bonus bAspd,.@r-8; },{},{}
18908,Isabella_Red_Ear,Isabella Red Ear,4,10,,300,,8,,1,0xFFFFFFFF,63,2,256,,1,1,1030,{ bonus bStr,5; bonus bMaxHPrate,5; bonus2 bSubDefEle,Ele_Fire,10; .@r = getrefine(); if(.@r>=9) bonus bAspd,1+(.@r-9)/2; },{},{}
18909,Isabella_Brown_Ear,Isabella Brown Ear,4,10,,300,,8,,1,0xFFFFFFFF,63,2,256,,1,1,1031,{ bonus bMaxHPrate,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; bonus bMatk,getrefine()*2; },{},{}
18910,Isabella_Blue_Ear,Isabella Blue Ear,4,10,,300,,8,,1,0xFFFFFFFF,63,2,256,,1,1,1032,{ bonus bMaxHPrate,10; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bAddSize,Size_Medium,10; if(getrefine()>=12){ bonus bShortWeaponDamageReturn,5; } },{},{}
18917,LoveLove_Balloon,LoveLove Balloon,4,10,,200,,5,,0,0xFFFFFFFF,63,2,1,,1,0,1039,{ bonus bAllStats,1; bonus bUnbreakableHelm; },{},{}
@ -9937,7 +9983,7 @@
18949,Scroll_Of_Tsunade,Tsunade's Scroll,4,10,,100,,1,,0,0xFFFFFFFF,63,2,1,,70,,1090,{ bonus2 bSkillUseSP,"NJ_HUUJIN",-5; bonus2 bVariableCastrate,"NJ_RAIGEKISAI",-10; bonus2 bSkillAtk,"NJ_KAMAITACHI",20; },{},{}
//
18960,Love_Daddy_2013,Love Daddy 2013,4,10,,10,,10,,1,0xFFFFFFFF,63,2,256,,,1,1104,{ .@r = getrefine(); bonus2 bAddClass,Class_All,2; bonus bMatkRate,2; if(readparam(bStr) >= 90){ bonus bAtk,15; if(.@r >= 9) bonus bAtk,15; } if(readparam(bInt) >= 90){ bonus bMatk,15; if(.@r >= 9) bonus bMatk,15; } if(readparam(bVit) >= 90){ bonus bMaxHP,500; if(.@r >= 9) bonus bMaxHP,500; } if(readparam(bAgi) >= 90){ bonus bAspdRate,2; if(.@r >= 9) bonus bAspdRate,3; } if(readparam(bDex) >= 90){ bonus bLongAtkRate,3; if(.@r >= 9) bonus bLongAtkRate,3; } if(readparam(bLuk) >= 90){ bonus bCritical,5; if(.@r >= 9) bonus bCritical,5; } },{},{}
18970,Magical_Moon_Cat,Magical Moon Cat,4,20,,50,,5,,1,0xFFFFFFFF,63,2,256,,,1,1308,{ /*TODO: Enables use of Level 1 Monster's Cry*/ bonus bAllStats,3; bonus bDelayrate,-5; bonus bVariableCastrate,-5-(getrefine()/2); },{},{}
18970,Magical_Moon_Cat,Magical Moon Cat,4,20,,50,,5,,1,0xFFFFFFFF,63,2,256,,1,1,1308,{ skill "ALL_CATCRY",1; bonus bAllStats,3; bonus bDelayrate,-5-(getrefine()/2); bonus bVariableCastrate,-5-(getrefine()/2); },{},{}
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; },{},{}
@ -9989,7 +10035,7 @@
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; },{},{}
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.*/ },{},{}
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",15; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",15; if (.@r>=6) { bonus2 bSkillAtk,"RK_DRAGONBREATH",15; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",15; } if (.@r>=8) { bonus2 bSkillAtk,"RK_DRAGONBREATH",15; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",15; } },{},{}
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; },{},{}
19126,Shadow_Booster_,Magical Booster,4,10,,300,,,,1,0xFFFFFFFF,63,2,512,,1,1,873,{ bonus bAspd,1; bonus bDelayrate,-1; },{},{}
@ -10270,7 +10316,7 @@
19743,C_Anubis_Helm,Costume Anubis Helm,4,10,,0,,,,0,0xFFFFFFFF,63,2,7168,,1,0,485,{},{},{}
19744,C_Black_Tail_Ribbon,Costume Black Tail Ribbon,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,642,{},{},{}
19745,C_Holy_Marching_Hat,Costume Holy Marching Hat,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,587,{},{},{}
19746,C_Cap_Of_Blindness,Costume Executioner Hood,4,20,,0,,0,,0,0xFFFFFFFF,63,2,2048,,1,1,326,{},{},{}
19746,C_Cap_Of_Blindness,Costume Executioner Hood,4,0,,0,,0,,0,0xFFFFFFFF,63,2,7168,,1,1,326,{},{},{}
19747,C_Tha_Despero_Mask_,Costume Tha Despero Mask,4,20,,0,,0,,0,0xFFFFFFFF,63,2,6144,,1,1,693,{},{},{}
19748,C_Diadem,Costume Diadem,4,20,,0,,0,,0,0xFFFFFFFF,63,2,3072,,1,1,335,{},{},{}
19749,C_Gold_Spirit_Chain,Costume Gold Spirit Chain,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,260,{},{},{}
@ -10292,8 +10338,14 @@
19765,C_Wing_Angels_Ears,Costume Wing Angels Ears,4,10,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,158,{ bonus2 bExpAddRace,RC_All,10; },{},{}
19767,C_Home_Cherry_Blossom,Costume Home Cherry Blossom,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,602,{},{},{}
19768,C_Sakura_Coronet,Costume Sakura Coronet,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,645,{},{},{}
19769,C_Elf_Ears,Costume Elf Ears,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,405,{},{},{}
19770,C_Sake,Costume Sake,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,,,557,{},{},{}
19771,C_Butterfly_Hairpin,Costume Buterfly Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,723,{},{},{}
19772,C_Honeybee_Hat,Costume Honeybee Hat,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,709,{},{},{}
19773,C_Angeling_Pin,Costume Angeling Pin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,222,{},{},{}
19774,C_Laurel,Costume Laurel,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,261,{},{},{}
19775,C_Marvelous_Wig,Costume Dokebi Hat,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,307,{},{},{}
19776,C_Tomboy_Fairy,Costume Tomboy Fairy,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,998,{},{},{}
19777,C_Twinkle_Little_Star,Costume Shiny Small Star,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1005,{},{},{}
19778,C_King_Berry,Costume King Berry,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,968,{},{},{}
19779,C_Persika,Costume Persika,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,659,{ bonus bAllStats,1; bonus2 bExpAddClass,Class_All,10; },{},{}
@ -10304,19 +10356,40 @@
19784,C_Morrigane's_Helm,Costume Morrigane's Helm,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,257,{},{},{}
19785,C_Well_Baked_Toast,Costume Crunch Toast,4,10,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,188,{},{},{}
19786,C_Mistress_Crown,Costume Crown of Mistress,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,165,{},{},{}
19787,C_Devoted_Eyes,Costume Devoted Eyes,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,1021,{},{},{}
19788,C_Heart_Eyebandage,Costume Heart Eyebandage,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,779,{},{},{}
19789,C_Sweet_Gents,Costume Sweet Gent,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,29,{},{},{}
19790,C_Wedding_Veil,Costume Wedding Veil,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,44,{},{},{}
19791,C_Alarm_Mask,Costume Alarm Mask,4,10,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,170,{},{},{}
19792,C_Goblin_Mask_01,Costume Poker Face,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,171,{},{},{}
19793,C_Goblin_Mask_02,Costume Surprised Mask,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,172,{},{},{}
19794,C_Goblin_Mask_03,Costume Annoyed Mask,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,173,{},{},{}
19791,C_Alarm_Mask,Costume Alarm Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,170,{},{},{}
19792,C_Goblin_Mask_01,Costume Poker Face,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,171,{},{},{}
19793,C_Goblin_Mask_02,Costume Surprised Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,172,{},{},{}
19794,C_Goblin_Mask_03,Costume Annoyed Mask,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,173,{},{},{}
19795,C_Lord_Circlet,Costume Grand Circlet,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,93,{},{},{}
19796,C_Bone_Helm,Costume Bone Helm,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,103,{},{},{}
19797,C_Apple_Of_Archer,Costume Apple of Archer,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,72,{},{},{}
19798,C_Angry_Mouth,Costume Angry Snarl,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,194,{},{},{}
19798,C_Angry_Mouth,Costume Angry Snarl,4,10,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,194,{},{},{}
19799,C_Golden_Gear,Costume Golden Gear,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,30,{},{},{}
19800,C_Carnation_Hairband,Costume Carnation Headband,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,878,{},{},{}
19821,C_Hyegun_Hat,Costume Yao Jun,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,375,{},{},{}
19801,C_Foxhat,Costume Foxhat,4,0,,0,,,,0,0xFFFFFFFF,63,2,6144,,1,1,403,{},{},{}
19802,C_Lazy_Ninetail,Costume Lazy Ninetail,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,296,{},{},{}
19803,C_Windtoy_Hat,Costume Windtoy Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,456,{},{},{}
19804,C_Red_Vane_Hairpin,Costume Red Vane Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1044,{},{},{}
19805,C_Taboo_Curse_Scroll,Costume Curse Scroll,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1045,{},{},{}
19806,C_Full_Bloom_Hairpin,Costume Bloom Hairpin,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1046,{},{},{}
19807,C_Majestihelm,Costume Majestihelm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1047,{},{},{}
19808,C_Blazing_Sun,Costume Blazing Sun,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,654,{},{},{}
19810,C_Ifrit_Ear,Costume Ifrit Ear,4,0,,0,,,,0,0xFFFFFFFF,63,2,2048,,1,1,422,{},{},{}
19811,C_Beer_Hat,Costume Beer Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,418,{},{},{}
19812,C_Big_Hibiscus,Costume Big Hibiscus,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,333,{},{},{}
19813,C_Icecream_Hat,Costume Icecream Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,488,{},{},{}
19814,C_Bright_Wig,Costume Bright Wig,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,306,{},{},{}
19815,C_Lolita_Ten_Gallon_Hat,Costume Lolita Ten Gallon Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1048,{},{},{}
19816,C_Pecopeco_Cap,Costume Pecopeco Cap,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1049,{},{},{}
19817,C_Ifrits_Breath,Costume Ifrits Breath,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,1,1050,{},{},{}
19818,C_Drooping_Morooc_Minion,Costume Drooping Morooc Minion,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,600,{},{},{}
19819,C_Gang_Doogun,Costume Gang Doogun,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,0,491,{},{},{}
19821,C_Hyegun_Hat,Costume Yao Jun,4,20,,0,,0,,0,0xFFFFFFFF,63,2,7168,,1,0,375,{},{},{}
19822,C_Yellow_Doogun,Costume Yellow Doogun,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,309,{},{},{}
19823,C_White_Cat_Hood,Costume White Cat Hood,4,20,,10,,0,,0,0xFFFFFFFF,63,2,3072,,1,0,1052,{},{},{}
19824,C_Evil_Druid_Hat,Costume Evil Druid Hat,4,0,,0,,,,,0xFFFFFFFF,63,2,1024,,1,,1053,{},{},{}
19825,C_Vicious_Stop_Bandage,Costume Vicious Stop Bandage,4,0,,0,,,,,0xFFFFFFFF,63,2,1024,,1,,1054,{},{},{}
@ -10331,13 +10404,14 @@
19834,C_Baseball_Cap,Costume Baseball Cap,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,216,{},{},{}
19835,C_Lif_Doll_Hat,Costume Lif Doll Hat,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,297,{},{},{}
19836,C_L_Magestic_Goat,Costume Majestic Goat,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,380,{},{},{}
19837,C_Asara_Fairy,Costume Asara Fairy Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,3072,,1,0,492,{},{},{}
19839,C_Vanilmirth_Hat,Costume Vanilmirth Hat,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,317,{},{},{}
19841,C_Dragonhelm_Copper,Costume Dragon Helm Copper,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,454,{},{},{}
19842,C_Puppy_Hat,Costume Puppy Hat,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,234,{},{},{}
19843,C_Cat_Hairband,Costume Kitty Band,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,2,{},{},{}
19844,C_Turban,Costume Turban,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,7,{},{},{}
19845,C_Hair_Protector,Costume Bao Bao,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,127,{},{},{}
19846,C_Opera_Ghost_Mask,Costume Opera Masque,4,20,,10,,0,,0,0xFFFFFFFF,63,2,6144,,1,0,128,{},{},{}
19846,C_Opera_Ghost_Mask,Costume Opera Masque,4,20,,10,,0,,0,0xFFFFFFFF,63,2,2048,,1,0,128,{},{},{}
19847,C_Big_Sis_Ribbon,Costume Big Ribbon,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,28,{},{},{}
19848,C_Angeling_Hat,Costume Angeling Hat,4,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,204,{},{},{}
19849,C_Munak_Turban,Costume Munak Hat,4,20,,10,,0,,0,0xFFFFFFFF,63,2,7168,,1,0,51,{},{},{}
@ -10451,7 +10525,7 @@
20012,C_Double_Horn_Helm,Costume Double Horn Helm,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,1200,{},{},{}
20013,C_Chef_Hat,Costume Chef Hat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,1,111,{},{},{}
20014,Lincoln_Hat,Costume Lincoln Hat,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1204,{},{},{}
20015,Lincoln_Beard,Costume Lincoln Beard,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1205,{},{},{}
20015,Lincoln_Beard,Costume Lincoln Beard,4,10,,0,,,,0,0xFFFFFFFF,63,2,4096,,,1,1205,{},{},{}
20016,Lobster_Hat,Costume Cool Dinner Hat,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1206,{},{},{}
20017,C_Marionette_Doll,Costume Marionette Doll,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,212,{},{},{}
20018,C_Holo_Ear,Costume Holo Ear,4,10,,0,,,,0,0xFFFFFFFF,63,2,1024,,,1,1208,{},{},{}
@ -10810,7 +10884,7 @@
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,{},{},{}
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,{},{},{}
@ -10896,6 +10970,7 @@
20516,C_Wings_of_Michael,Costume Wings of Michael,4,0,,0,,0,,0,0xFFFFFFFF,63,2,8192,,1,0,24,{},{},{}
20600,Fantastic_Aura,Fantastic Aura,4,0,,0,,0,,0,0xFFFFFFFF,63,2,8192,,1,0,0,{ /*TODO: View ID*/ bonus bUnbreakableHelm; },{},{}
20700,Egir_Manteau,Egir Manteau,4,200000,,300,,10,,1,0xFFFFFFFF,63,2,4,,110,1,0,{ bonus bUnbreakableGarment; .@r = getrefine(); if (.@r > 10) .@r = 10; if (BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte) { bonus bFlee2,5+(.@r*2); } else if (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) { bonus bShortWeaponDamageReturn,5+(.@r*2); } },{},{}
20701,Sol_Manteau,Sol Manteau,4,0,,700,,20,,1,0xFFFFFFFF,63,2,4,,65,1,0,{ bonus2 bSubEle,Ele_Earth,5; bonus2 bSubRace,RC_Fish,-5; },{},{}
20702,TE_Woe_Muffler,TE Woe Muffler,4,0,,0,,5,,0,0xFFFFFFFF,63,2,4,,40,1,,{ bonus bMdef,5; bonus2 bAddRace,RC_Player,5; bonus2 bMagicAddRace,RC_Player,5; bonus2 bResEff,Eff_Freeze,25; },{},{}
20703,TE_Woe_Manteau,TE Woe Manteau,4,0,,0,,10,,0,0x000444A2,63,2,4,,40,1,,{ bonus2 bAddRace,RC_Player,10; bonus2 bResEff,Eff_Freeze,25; },{},{}
20704,TE_Woe_Magic_Manteau,TE Woe Magic Manteau,4,0,,0,,5,,0,0x00818315,63,2,4,,40,1,,{ bonus2 bMagicAddRace,RC_Player,10; bonus2 bResEff,Eff_Freeze,25; },{},{}
@ -10963,7 +11038,7 @@
//===================================================================
21000,Upg_Twohand_Sword,Upg Two-Handed Sword,5,20,,1500,100,,1,1,0x00004082,63,2,34,3,1,1,3,{ .@r = getrefine(); bonus bBaseAtk,(.@r*12); bonus bMatk,(.@r*5); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10); },{},{}
21001,Velum_Claymore,Vellum Claymore,5,20,,3500,260,,1,0,0x00004082,63,2,34,4,95,1,3,{ bonus2 bAddRace,RC_Player,80; bonus2 bIgnoreDefRaceRate,RC_Player,30; .@r = getrefine(); if(.@r>=6) { bonus2 bAddRace,RC_Player,40; } if(.@r>=9) { autobonus2 "{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }",6000,2000,BF_WEAPON,"{ specialeffect2 EF_REFLECTSHIELD; }"; } },{},{}
21002,Velum_Katzbalger,Vellum Katzbalger,5,20,,2500,100,,1,0,0x00004082,63,2,34,4,95,1,3,{ bonus3 bHPVanishRaceRate,RC_Player,10000,8; },{},{}
21002,Velum_Katzbalger,Vellum Katzbalger,5,20,,2500,100,,1,0,0x00004082,63,2,34,4,95,1,3,{ bonus3 bHPVanishRaceRate,RC_Player,1000,8; },{},{}
21003,Muramasa_,Muramasa,5,20,,1000,155,,1,2,0x00004082,63,2,34,4,48,1,3,{ bonus bCritical,30; bonus bAspdRate,8; bonus2 bAddEff2,Eff_Curse,10; },{},{}
21004,Alca_Bringer_,Alca Bringer,5,20,,3400,280,,2,2,0x00004082,63,2,34,3,100,1,3,{},{},{}
21005,Metal_Two_Hand_Sword,Metal Two Hand Sword,5,20,,0,95,,1,1,0x00004082,63,2,34,3,1,1,3,{ .@r = getrefine(); bonus bBaseAtk,(.@r*6); bonus bMatk,(.@r*2); .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5); },{},{}
@ -11172,7 +11247,7 @@
22693,Record_Fragment3,Record Fragment,0,,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ warp "un_bk_q",217,346; if (callfunc("F_time_limit_recorder") == 1) { recorder_quest_type = 3; } },{},{}
22694,Record_Fragment4,Record Fragment,0,,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ warp "un_bk_q",273,235; if (callfunc("F_time_limit_recorder") == 1) { recorder_quest_type = 4; } },{},{}
22695,Record_Fragment5,Record Fragment,0,,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ warp "un_bk_q",275,290; if (callfunc("F_time_limit_recorder") == 1) { recorder_quest_type = 5; } },{},{}
22699,Test_Reagent,Test Reagent,3,10,,0,,,,,,,,,,,,,{},{},{}
22699,Test_Reagent,Test Reagent,2,,,30,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "bonus bFlee,100;",5,9; sc_start SC_BLIND,5000,0,10000,0; },{},{}
22700,Jumping_Support_Box,Jumping Support Box,18,10,,0,,,,0,0xFFFFFFFF,63,2,,,,,,{ /*TODO: getitem 12529,1; getitem 12323,200; getitem 12324,50; and 5 boxes that containing quivers + oridecons*/ },{},{}
22702,STR_Soul_Potion,STR Reduction Potion,11,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashReduceStat",bStr,-1,22702; },{},{}
22703,AGI_Soul_Potion,STR Reduction Potion,11,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashReduceStat",bAgi,-1,22703; },{},{}
@ -11289,8 +11364,9 @@
//
23012,S_Small_Mana_Potion,[Sale] Small Mana Potion,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "bonus2 bRegenPercentSP,5,5000;",600,9; /* fix me: unknown flag and specialeffect ; disabled when LK_BERSERK */ },{},{}
23016,Cursed_Fragment,Cursed Fragment,2,1,,1,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc("F_Cursed_Fragment"); },{},{}
23038,S_Slim_White_Box,[Sale] Slim White Potion Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 547,200; },{},{}
23043,S_Seed_Of_Yggdrasil_Box,[Sale] Yggdrasil Seed Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 608,30; },{},{}
23038,S_Slim_White_Box,[Sale] Slim White Potion Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 11573,200; },{},{}
23042,S_Seed_Of_Yggdrasil,[NotForSale]Yggdrasil Seed,0,0,,300,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 50,50; },{},{}
23043,S_Seed_Of_Yggdrasil_Box,[Sale] Yggdrasil Seed Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 23042,30; },{},{}
23046,S_Mystic_Powder,[Sale] Mystic Powder,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "bonus bFlee,20; bonus bLuk,10;",300,9; /* fix me: unknown flag and specialeffect */ },{},{}
23047,S_Blessing_Tyr,[Sale] Blessing of Tyr,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_FLEEFOOD,300000,30; sc_start SC_HITFOOD,300000,30; sc_start SC_ATKPOTION,300000,20; sc_start SC_MATKPOTION,300000,20; },{},{}
23048,S_Resilience_Potion,[Sale] Resilience Enhancement Potion,2,,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "bonus bAddItemHealRate,20;",1800,9; /* fix me: unknown flag and specialeffect */ },{},{}
@ -11305,6 +11381,9 @@
23126,Bullet_Case_Poison,Poison Bullet Cartridge,2,10,,250,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 13231,500; },{},{}
23127,Bullet_Case_Blind,Blind Bullet Cartridge,2,10,,250,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 13232,500; },{},{}
23177,Kafra_Card_,Kafra Card,2,2,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc "F_CashStore"; },{},{}
23188,Unprocessed_Parts,Unprocessed Parts,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1632; },{},{}
23189,Small_Needle_Kit,Small Needle Kit,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1622; },{},{}
23187,Sap_Liquid,Sap Liquid,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1180; },{},{}
23191,Varetyr_Spear_Scroll_1_5,Level 5 Varetyr Spear,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "SO_VARETYR_SPEAR",5; },{},{}
23192,Diamond_Dust_Scroll_1_5,Level 5 Diamond Dust,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "SO_DIAMONDDUST",5; },{},{}
23193,Crimson_Rock_Scroll_1_5,Level 5 Crimson Rock,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "WL_CRIMSONROCK",5; },{},{}
@ -11313,6 +11392,7 @@
//
23228,Hazy_Mooncake,Hazy Mooncake,0,768,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* unknown */ },{},{}
//
23256,Elixir_Bandages,Elixir Bandages,2,10,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1041; },{},{}
23277,Mado_Box,Emergency Magic Gear,2,10000,,3000,,,,,0x00000400,56,2,,,100,,,{ setmadogear 1; },{},{}
23280,N_Fly_Wing_,Novice Fly Wing,11,10,,0,,,,,0xFFFFFFFF,63,2,,,1:98,,,{ itemskill "AL_TELEPORT",1; },{},{}
23288,Compressed_Wing_Of_Fly,Compressed Fly Wing,11,1000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "AL_TELEPORT",1; },{},{}
@ -11631,6 +11711,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,,,,,,,,,,,,,{},{},{}
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,,,,,,,,,,,,,{},{},{}
@ -11654,6 +11737,9 @@
25283,Brown_Muffler,Brown Muffler,3,420,,10,,,,,,,,,,,,,{},{},{}
25284,Swamp_Bug_Shell,Swamp Bug Shell,3,0,,10,,,,,,,,,,,,,{},{},{}
25285,Brown_Rat_Tail,Brown Rat Tail,3,0,,10,,,,,,,,,,,,,{},{},{}
25290,Sweets_Festival_Coin,Sweets Festival Coin,3,0,,0,,,,,,,,,,,,,{},{},{}
25375,Powerful_Soul_Essence,Powerful Soul Essence,3,0,,0,,,,,,,,,,,,,{},{},{}
25377,Luxurious_Pet_Food,Luxurious Pet Food,3,0,,10,,,,,,,,,,,,,{},{},{}
//
25464,World_Moving_Rights,World Moving Rights,3,20,,0,,,,,,,,,,,,,{},{},{}
//
@ -11766,7 +11852,7 @@
27148,Material_Chimera_Card,Material Chimera Card,6,20,,10,,,,,,,,136,,,,,{ bonus bFlee,(BaseLevel >= 90 ? 20 : 10); },{},{}
27149,Heart_Hunter_Card,Heart Hunter Card,6,20,,10,,,,,,,,2,,,,,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); .@r = getrefine(); if(.@type == 17 || .@type == 18 || .@type == 21){ bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0); } },{},{}
27150,Toxic_Enchanted_Chimera_Card,Toxic Enchanted Chimera Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHP,1000; bonus bMaxSP,200; if(getrefine() >= 12){ bonus bMaxHPrate,15; bonus bMaxSPrate,15; } },{},{}
27151,Heart_Hunter_Evil_Card,Heart Hunter Evil Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,SC_FREEZING,1000 + (readparam(bInt) >= 110 ? 5 : 0); bonus bMdef,5; },{},{}
27151,Heart_Hunter_Evil_Card,Heart Hunter Evil Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,Eff_Freeze,1000 + (readparam(bInt) >= 110 ? 5 : 0); bonus bMdef,5; },{},{}
27152,Cutie_Card,Cutie Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,10; .@r = getrefine()/2; bonus bAgi,.@r; bonus bAspdRate,.@r; },{},{}
27157,Wood_Goblin_Card,Wood Goblin Card,6,20,,10,,,,,,,,16,,,,,{ .@r = getrefine(); bonus2 bAddEle,Ele_Water,(.@r >= 9 ? 10 : 5); bonus2 bAddEle,Ele_Earth,(.@r >= 9 ? 10 : 5); bonus2 bSubDefEle,Ele_Water,-5; bonus2 bSubDefEle,Ele_Earth,-5; },{},{}
27158,Les_Card,Les Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubEle,Ele_Wind,30; },{},{}
@ -12071,6 +12157,7 @@
29009,Rune_of_Vitality_Lv_1,Rune of Vitality Lv 1,6,20,,,,,,,,,,,,,,,{ .@r = getrefine(); if (.@r>=7) { bonus bVit,5; } if (.@r>=10) { bonus bMaxHPrate,5; } },{},{}
29010,Rune_of_Vitality_Lv_2,Rune of Vitality Lv 2,6,20,,,,,,,,,,,,,,,{ .@r = getrefine(); if (.@r>=7) { bonus bVit,6; } if (.@r>=11) { bonus bVit,1; bonus bMaxHPrate,7; } },{},{}
29011,Rune_of_Vitality_Lv_3,Rune of Vitality Lv 3,6,20,,,,,,,,,,,,,,,{ .@r = getrefine(); if (.@r>=7) { bonus bVit,7; } if (.@r>=12) { bonus bVit,1; bonus bMaxHPrate,8; } if (.@r>=13) { bonus bVit,1; bonus bMaxHPrate,2; } },{},{}
29026,Def20,DEF+20,6,10,,,,,,,,,,,,,,,{ bonus bDef,20; },{},{}
29061,Ambition1Lv,Mettle Lv. 1,6,10,,0,,,,,,,,,,,,,{ bonus2 bAddClass,Class_All,3; bonus bHit,3; },{},{}
29062,Ambition2Lv,Mettle Lv. 2,6,10,,0,,,,,,,,,,,,,{ bonus2 bAddClass,Class_All,6; bonus bHit,6; },{},{}
29063,Ambition3Lv,Mettle Lv. 3,6,10,,0,,,,,,,,,,,,,{ bonus2 bAddClass,Class_All,9; bonus bHit,9; },{},{}

View File

@ -16,7 +16,7 @@
// 12659 cannot be used when this delay is active.
// Since this is optional, default is -1 will ignores the
// delay group and the delay will be stored in character's
// data that has limit set in src/map/itemdb.h as MAX_ITEMDELAYS.
// data that has limit set in src/map/itemdb.hpp as MAX_ITEMDELAYS.
// SC_REUSE_REFRESH
12725,120000,SC_REUSE_REFRESH //Runstone_Nosiege
@ -45,6 +45,7 @@
// SC_REUSE_LIMIT_G
608,3000,SC_REUSE_LIMIT_G //Yggdrasil_Seed
22559,3000,SC_REUSE_LIMIT_G //Mock_Strawberry
23042,3000,SC_REUSE_LIMIT_G //S_Seed_Of_Yggdrasil
// SC_REUSE_LIMIT_H
11525,5000,SC_REUSE_LIMIT_H //Mora_Hip_Tea

File diff suppressed because it is too large Load Diff

View File

@ -272,9 +272,9 @@
// Rebellion
4215, 28000,90 ,650 ,469 ,54 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49 ,59 ,54 ,94 ,104 ,200 ,200 ,6
// Summoner
4218, 20000,70 ,500 ,500 ,45 ,55 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,200 ,200 ,200 ,200 ,43 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,5
4218, 20000,70 ,500 ,500 ,40 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,60 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,7
// Baby Summoner
4220, 20000,100 ,700 ,200 ,45 ,55 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,200 ,200 ,200 ,200 ,43 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,5
4220, 20000,100 ,700 ,200 ,40 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,60 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,7
// Baby Ninja
4222, 26000,75 ,500 ,540 ,40 ,43 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,200 ,6
// Baby Kagerou

View File

@ -118,7 +118,7 @@
1112,DRAKE,Drake,Drake,91,804500,1,515160,417960,1,2519,1403,279,135,121,103,114,107,135,71,10,12,1,1,29,0x6283695,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1
1113,DROPS,Drops,Drops,2,45,1,27,20,1,12,1,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1
1114,DUSTINESS,Dustiness,Dustiness,62,2026,1,602,678,1,166,31,69,50,46,22,46,60,68,105,10,12,0,4,44,0x2000091,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1
1115,EDDGA,Eddga,Eddga,65,247500,1,198000,148500,1,1509,776,166,70,92,80,103,66,90,85,10,12,2,2,23,0x6283695,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1
1115,EDDGA,Eddga,Eddga,65,947500,1,198000,148500,1,1509,776,166,70,92,80,103,66,90,85,10,12,2,2,23,0x6283695,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1
1116,EGGYRA,Eggyra,Eggyra,53,1676,1,330,689,1,110,40,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1
1117,EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,1339,1280,1,378,68,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,0,0,610,200,7478,4,509,2000,0,0,0,0,4141,1
1118,FLORA,Flora,Flora,59,2301,1,531,597,3,163,31,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1
@ -2796,7 +2796,7 @@
//3633,EP16_2_VENOM_KIMERA
//3634,MYSTCASE_GIANT
//3635,EVENT_KOBOLD
//3636,LITTLE_ISIS
3636,LITTLE_ISIS,Little Isis,Little Isis,59,2092,1,531,597,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x2003095,200,1384,768,336,0,0,0,0,0,0,0,936,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//3637,MD_SKELETON_60
//3638,MD_SKELETON_80
//3639,MD_SKELETON_100
@ -2829,8 +2829,8 @@
//3666,MD_DRAINLIAR_100
//3667,MD_DRAINLIAR_160
//3668,B_KIEL_
//3669,DIABOLIC2
//3670,DELETER_2
3669,DIABOLIC2,Diabolic2,Diabolic2,104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x2003885,150,1080,780,180,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
3670,DELETER_2,Deleter 2,Deleter 2,105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,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
//3671,JP_MAZEMOB_01
//3672,JP_MAZEMOB_02
//3673,JP_MAZEMOB_03
@ -2896,20 +2896,20 @@
//3733,JP_ABYSS_BOSS_2
//3734,ORC_X2016
//3735,PORING_X2016
3736,COWRAIDERS1,Buffalo Bandit Sharpsho,Buffalo Bandit Sharpsho,103,11819,1,9491,9169,7,509,204,98,25,51,58,49,20,86,49,10,12,2,7,43,0x3885,180,900,770,550,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,27170,1
3737,COWRAIDERS2,Buffalo Bandit Duelist,Buffalo Bandit Duelist,101,9700,1,2121,7846,7,476,190,62,32,76,52,38,40,92,50,10,12,2,7,43,0x3885,200,1200,672,480,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,27171,1
3738,COWRAIDERS3,Bowie Buffalo Bandit,Bowie Buffalo Bandit,107,14547,1,1807,1719,1,557,222,112,18,55,20,55,17,88,36,10,12,2,7,43,0x3885,180,800,420,360,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,27172,1
3739,COYOTE,Coyote,Coyote,110,17854,1,11111,10538,1,630,252,100,21,49,79,67,8,106,24,10,12,1,2,42,0x3881,150,759,400,420,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,27179,1
3740,GASTER,Gaster,Gaster,141,90574,1,5080,4716,1,1494,598,191,96,70,141,12,67,128,8,10,12,1,0,45,0x3885,190,768,650,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,27178,1
3736,COWRAIDERS1,Buffalo Bandit Sharpsho,Buffalo Bandit Sharpsho,103,11819,1,9491,9169,7,509,204,98,25,51,58,49,20,86,49,10,12,2,7,43,0x3885,180,900,770,550,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25279,2500,7054,1000,18145,50,27170,1
3737,COWRAIDERS2,Buffalo Bandit Duelist,Buffalo Bandit Duelist,101,9700,1,2121,7846,7,476,190,62,32,76,52,38,40,92,50,10,12,2,7,43,0x3885,200,1200,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25278,2500,7054,1000,580,500,28721,50,13332,50,27171,1
3738,COWRAIDERS3,Bowie Buffalo Bandit,Bowie Buffalo Bandit,107,14547,1,1807,1719,1,557,222,112,18,55,20,55,17,88,36,10,12,2,7,43,0x3885,180,800,420,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25283,2500,7054,1000,538,200,28608,50,27172,1
3739,COYOTE,Coyote,Coyote,110,17854,1,11111,10538,1,630,252,100,21,49,79,67,8,106,24,10,12,1,2,42,0x3881,150,759,400,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25276,2500,7564,1500,702,500,2531,50,27179,1
3740,GASTER,Gaster,Gaster,141,90574,1,5080,4716,1,1494,598,191,96,70,141,12,67,128,8,10,12,1,0,45,0x3885,190,768,650,0,0,0,0,0,0,0,0,0,0,25277,2500,7001,1500,6214,300,6215,300,6213,250,605,30,756,10,757,10,27178,1
3741,MECHASPIDER,Mechaspider,Spider Chariot,158,9799123,1,3150895,2112795,1,7657,3062,394,123,116,123,154,99,217,98,10,12,2,0,40,0x6283885,250,768,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,27180,1
3742,PURPLESTONE,Purplestone,Purple Ore,255,20,0,0,0,0,0,0,100,99,0,0,0,0,0,0,10,12,0,0,20,0x170000,2000,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
3743,SEAANEMONE,Seaanemone,Sea Anemone,1,10,0,0,0,1,0,0,100,99,0,0,0,0,0,0,10,12,0,0,20,0x8170000,2000,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
3744,G_COWRAIDERS1,Buffalo Bandit,Buffalo Bandit,148,135292,1,0,0,7,1566,2226,99,36,98,55,61,22,168,2,10,12,2,7,63,0x3885,200,2061,500,660,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
3745,G_COWRAIDERS2,Buffalo Bandit,Buffalo Bandit,151,160515,1,0,0,7,1544,2211,121,50,60,132,45,35,155,15,10,12,2,7,63,0x3885,120,1000,500,600,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
3746,G_COWRAIDERS3,Buffalo Bandit,Buffalo Bandit,152,174345,1,0,0,1,1716,2415,150,83,165,44,95,43,176,50,10,12,2,7,63,0x3885,150,1501,600,500,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
3747,E_COWRAIDERS1,Elite Buffalo Bandit,Elite Buffalo Bandit,148,135292,1,7628,8077,7,1650,660,99,36,98,55,61,22,168,2,10,12,2,7,63,0x3885,200,2061,500,660,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,27173,1
3748,E_COWRAIDERS2,Elite Buffalo Bandit,Elite Buffalo Bandit,151,160515,1,9597,9093,7,1667,666,121,50,60,132,45,35,155,15,10,12,2,7,63,0x3885,120,1000,500,600,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,27174,1
3749,E_COWRAIDERS3,Elite Buffalo Bandit,Elite Buffalo Bandit,152,174345,1,9563,10218,1,1749,700,150,83,165,44,95,43,176,50,10,12,2,7,63,0x3885,150,1501,600,500,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,27175,1
3747,E_COWRAIDERS1,Elite Buffalo Bandit,Elite Buffalo Bandit,148,135292,1,7628,8077,7,1650,660,99,36,98,55,61,22,168,2,10,12,2,7,63,0x3885,200,2061,500,660,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25280,2500,7054,2000,1944,100,18145,100,26200,50,27173,1
3748,E_COWRAIDERS2,Elite Buffalo Bandit,Elite Buffalo Bandit,151,160515,1,9597,9093,7,1667,666,121,50,60,132,45,35,155,15,10,12,2,7,63,0x3885,120,1000,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25282,3000,7054,2000,13332,250,28721,100,27174,1
3749,E_COWRAIDERS3,Elite Buffalo Bandit,Elite Buffalo Bandit,152,174345,1,9563,10218,1,1749,700,150,83,165,44,95,43,176,50,10,12,2,7,63,0x3885,150,1501,600,500,0,0,0,0,0,0,0,0,0,0,0,0,0,25281,3000,7054,2000,28608,150,11706,30,11707,30,28116,10,27175,1
//3750,ILL_DRAINLIAR
//3751,ILL_ZOMBIE_C
//3752,ILL_ZOMBIE
@ -2947,10 +2947,10 @@
//3784,JP_E_MONSTER_71
//3785,JP_E_MONSTER_72
//3786,E_TURPECO
3787,RR_ARCLOUSE,Rr Arclouse,Swamp Arclouze,106,1120,1,864,900,1,316,126,76,36,41,73,23,29,122,15,10,12,1,4,42,0x2003885,100,768,500,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,27177,1
3788,RR_CRAMP,Rr Cramp,Brown Rat,101,988,1,681,720,1,185,74,68,42,38,43,17,15,97,30,10,12,0,2,45,0x3885,100,768,500,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,27176,1
3787,RR_ARCLOUSE,Rr Arclouse,Swamp Arclouze,106,1120,1,864,900,1,316,126,76,36,41,73,23,29,122,15,10,12,1,4,42,0x2003885,100,768,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25284,2500,938,1500,943,150,1944,50,27177,1
3788,RR_CRAMP,Rr Cramp,Brown Rat,101,988,1,681,720,1,185,74,68,42,38,43,17,15,97,30,10,12,0,2,45,0x3885,100,768,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25285,3000,517,500,528,150,26200,10,27176,1
//3789,ESCAPED_LETTER
//3790,SWEETS_DROPS
3790,SWEETS_DROPS,Sweets Drops,Sweets Drops,2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,0,0
//3791,JP_E_MONSTER_73
//3792,ILL_GAZETI
//3793,ILL_SNOWIER
@ -3161,6 +3161,7 @@
//3998,AB_MOB_072
// New Monster Range
//20020,MONSTER_2ND_BEGIN
//20021,AB_MOB_073
//20022,AB_MOB_074
//20023,AB_MOB_075
@ -3228,7 +3229,19 @@
//20085,MD_IZ_CORNUTUS
//20086,RED_ERUMA_MJ
//20087,SIORAVA_MJ
//20088,RR_MOB_001
//20089,RR_MOB_002
//20090,RR_MOB_003
//20091,RR_MOB_004
//20092,RR_MOB_005
//20093,RR_MOB_006
//20094,RR_MOB_007
//20095,RR_MOB_008
//20096,RR_MOB_009
//20097,RR_MOB_010
//20098,RR_MOB_011
//20099,RR_MOB_012
//20100,RR_MOB_013
//20101,WILOW_MJ
//20102,MANDRAGORA_MJ
//20103,STEM_WORM_MJ
@ -3397,7 +3410,7 @@
//20266,G_ILL_TEDDY_BEAR_G
//20267,G_ILL_TEDDY_BEAR_W
//20268,G_ILL_TEDDY_BEAR_B
//20269,GUILD_SKILL_FLAG
//20270,ILL_TRI_JOINT
//20271,ILL_STALACTIC_GOLEM
//20272,ILL_MEGALITH
@ -3523,7 +3536,7 @@
//20392,MD_GH_ALICE_G
//20393,MD_GH_ROOT_G
//20394,MD_GH_BLOODY_KNIGHT
//20395,HIDDEN_HOMUN
//20396,PORING_Z
//20397,SAVAGE_BABE_Z
//20398,CREAMY_Z
@ -3691,5 +3704,13 @@
//20560,G_MINERAL_G
//20561,G_MINERAL_W
//20562,HIDDEN_MOB8
//20563,GOLDEN_SAVAGE_TW
//20564,SAVAGE_BABE_TW
//20565,RICE_CAKE_BOY_TW
//20566,P_CHUNG_E_TW
//20567,CHUNG_E_TW
//20568,GULLINBURSTI_TW
//20569,MISSING_OCTOPIG
//31999,HUNTING_GID_DEFAULT
//32000,MONSTER_2ND_END

View File

@ -1,110 +0,0 @@
// Pet Database
//
// Structure of Database:
// MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script
//
// 01. MobID Monster ID of the pet.
// 02. Name Name of the monster as defined in the database.
// 03. JName The display name of the monster when hatched.
// 04. LureID Pet Tame Item ID.
// 05. EggID Pet Egg ID.
// 06. EquipID Pet Accessory ID.
// 07. FoodID Pet Food ID.
// 08. Fullness The amount Hunger is decreased every [HungryDelay] seconds.
// 09. HungryDelay The amount of time it takes for hunger to decrease after feeding. (Default: 60 seconds)
// 10. R_Hungry Amount of Intimacy that is increased when fed.
// 11. R_Full Amount of Intimacy that is decreased when over-fed.
// 12. Intimate Amount of Intimacy the pet starts with.
// 13. Die Amount of Intimacy that is decreased when the pet owner dies.
// 14. Capture Capture succes rate (10000 = 100%)
// 15. Speed Pet's walk speed. (Defaul: 150)
// 16. S_Performance Special Performance. (Yes = 1, No = 0)
// 17. talk_convert_class Disables pet talk (instead of talking they emote with /!.)
// 18. attack_rate Rate of which the pet will attack (requires at least pet_support_min_friendly intimacy).
// 19. defence_attack_rate Rate of which the pet will retaliate when master is being attacked (requires at least pet_support_min_friendly intimacy).
// 20. change_target_rate Rate of which the pet will change its attack target.
// 21. pet_script Script to execute when the pet is hatched.
// 22. loyal_script Script to execute when the pet is hatched (requires at least pet_equip_min_friendly intimacy, independent of pet_script).
//NOTE: The max value (100%) of attack_rate, defense_rate & change_target_rate is 10000.
//In theory you can use any valid script, but it is run only once upon pet
//loading, so it is recommended you use the specific pet scripts.
//Please see "The Pet AI commands" in 'doc/script_commands.txt'.
1002,PORING,Poring,619,9001,10013,531,80,60,50,100,250,20,2000,150,1,0,350,400,800,{ petloot 10; },{ bonus bLuk,2; bonus bCritical,1; }
1113,DROPS,Drops,620,9002,10013,508,80,60,40,100,250,20,1500,150,1,0,300,400,500,{ petloot 10; },{ bonus bHit,3; bonus bAtk,3; }
1031,POPORING,Poporing,621,9003,10013,511,80,60,30,100,250,20,1000,150,1,0,300,500,400,{ petloot 15; },{ bonus bLuk,2; bonus2 bSubEle,Ele_Poison,10; }
1063,LUNATIC,Lunatic,622,9004,10007,534,80,60,40,100,250,20,1500,150,0,0,300,300,1000,{ petskillbonus bLuk,3,10,50; },{ bonus bCritical,2; bonus bAtk,2; }
1049,PICKY,Picky,623,9005,10012,507,80,60,40,100,250,20,2000,150,1,0,500,600,50,{ petskillbonus bStr,3,10,50;},{ bonus bStr,1; bonus bAtk,5; }
1011,CHONCHON,ChonChon,624,9006,10002,537,80,60,30,100,250,20,1500,150,1,0,500,500,250,{ petskillbonus bAgi,4,10,50; },{ bonus bAgi,1; bonus bFlee,2; }
1042,STEEL_CHONCHON,Steel ChonChon,625,9007,10002,1002,80,60,20,100,250,20,1000,150,1,0,500,500,200,{ petskillbonus bAgiVit,4,20,40; },{ bonus bFlee,6; bonus bAgi,-1; }
1035,HUNTER_FLY,Hunter Fly,626,9008,10002,716,80,60,10,100,250,20,500,150,1,0,500,500,200,{ petskillattack2 "NPC_WINDATTACK",888,2,0,10; },{ bonus bFlee,-5; bonus bFlee2,2; }
1167,SAVAGE_BABE,Savage Babe,627,9009,10015,537,80,60,40,100,250,20,1500,150,0,0,500,500,200,{ petskillbonus bVit,4,10,50; },{ bonus bVit,1; bonus bMaxHP,50; }
1107,DESERT_WOLF_B,Baby Desert Wolf,628,9010,10003,537,80,60,40,100,250,20,1000,150,0,0,400,400,400,{ petskillattack "SM_PROVOKE",1,0,5;},{ bonus bInt,1; bonus bMaxSP,50; }
1052,ROCKER,Rocker,629,9011,10014,537,80,60,30,100,250,20,1500,150,0,0,350,350,600,{ petskillbonus bAllStats,1,10,50; },{ bonus bHPrecovRate,5; bonus bMaxHP,25; }
1014,SPORE,Spore,630,9012,10017,537,80,60,30,100,250,20,1500,150,0,0,350,500,500,{ petrecovery SC_POISON,60; },{ bonus bHit,5; bonus bAtk,-2; }
1077,POISON_SPORE,Poison Spore,631,9013,10017,537,80,60,20,100,250,20,1000,150,0,0,600,200,400,{ petskillattack "NPC_POISON",20,0,10; },{ bonus bStr,1; bonus bInt,1; }
1019,PECOPECO,PecoPeco,632,9014,10010,537,80,60,30,100,250,20,1000,150,1,0,400,500,800,{ petskillbonus bSpeedRate,25,20,20; },{ bonus bMaxHP,150; bonus bMaxSP,-10; }
1056,SMOKIE,Smokie,633,9015,10019,537,80,60,30,100,250,20,1000,150,1,0,600,600,100,{ petskillbonus bPerfectHide,1,3600,0; },{ bonus bAgi,1; bonus bFlee2,1; }
1057,YOYO,Yoyo,634,9016,10018,532,80,60,20,100,250,20,1000,150,1,0,300,800,400,{ petloot 20; },{ bonus bCritical,3; bonus bLuk,-1; }
1023,ORK_WARRIOR,Orc Warrior,635,9017,10009,537,80,60,20,100,250,20,500,150,1,0,600,200,300,{ petskillattack2 "NPC_PIERCINGATT",100,1,0,10; },{ bonus bAtk,10; bonus bDef,-3; }
1026,MUNAK,Munak,636,9018,10008,537,80,60,20,100,250,20,500,150,0,0,300,750,300,{ petskillattack2 "NPC_DARKNESSATTACK",444,1,0,10; },{ bonus bInt,1; bonus bDef,1; }
1110,DOKEBI,Dokebi,637,9019,10005,537,80,60,20,100,250,20,500,150,0,0,300,300,800,{ petskillattack "BS_HAMMERFALL",1,0,10; },{ bonus bMatkRate,1; bonus2 bAddClass,Class_All,-1; }
1170,SOHEE,Sohee,638,9020,10016,537,80,60,10,100,250,20,500,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,33,100; },{ bonus bStr,1; bonus bDex,1; }
1029,ISIS,Isis,639,9021,10006,537,80,60,10,100,250,20,500,150,0,0,650,450,150,{ petskillsupport "PR_MAGNIFICAT",2,60,50,50; },{ bonus bMatkRate,-1; bonus2 bAddClass,Class_All,1; }
1155,PETIT,Petite,640,9022,10011,537,80,60,20,100,250,20,500,150,0,0,800,400,100,{ petskillattack2 "WZ_HEAVENDRIVE",500,1,0,10; },{ bonus bDef,-2; bonus bMdef,-2; bonus bAspdRate,1; }
1109,DEVIRUCHI,Deviruchi,641,9023,10004,711,80,60,10,100,250,20,500,150,0,0,800,200,100,{ petskillbonus bAgiDexStr,6,20,40; },{ bonus bMatkRate,1; bonus2 bAddClass,Class_All,1; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }
1101,BAPHOMET_,Baphomet Jr.,642,9024,10001,518,80,60,10,100,250,20,200,150,0,0,1000,100,200,{ petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5; },{ bonus bDef,1; bonus bMdef,1; bonus2 bResEff,Eff_Stun,-100; }
1188,BON_GUN,Bon Gun,659,9025,10020,537,80,60,30,100,250,20,500,150,1,0,600,200,400,{ petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1; },{ bonus bVit,1; bonus2 bResEff,Eff_Stun,100; }
1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bMagicAddRace,RC_DemiHuman,2; }
1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; }
1815,EVENT_RICECAKE,Rice Cake,0,9028,0,511,80,60,50,100,250,20,2000,150,1,0,500,500,200,{ petskillsupport "CR_DEFENDER",3,240,50,100; },{ bonus2 bSubEle,Ele_Neutral,1; bonus bMaxHPrate,-1; }
1245,GOBLINE_XMAS,Christmas Goblin,12225,9029,0,911,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "MG_SIGHT",5,5,5; },{ bonus bMaxHP,30; bonus2 bSubEle,Ele_Water,1; }
1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; }
1879,ECLIPSE_P,Spring Rabbit,0,9031,0,7766,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "TF_THROWSTONE",1,5,5; },{}
1122,GOBLIN_1,Goblin,14569,9032,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_WINDATTACK",5,5,5; },{}
1123,GOBLIN_2,Goblin,14570,9033,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_FIREATTACK",5,5,5; },{}
1125,GOBLIN_4,Goblin,14571,9034,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_GROUNDATTACK",5,5,5; },{}
1385,DELETER_,Deleter,14572,9035,0,7822,80,60,20,100,250,20,800,150,0,0,300,300,800,{ petskillattack "SM_MAGNUM",5,5,5; },{}
1382,DIABOLIC,Diabolic,14573,9036,0,7823,80,60,10,100,250,20,800,150,0,0,300,300,800,{ petskillattack "WZ_METEOR",2,5,5; },{}
1208,WANDER_MAN,Wanderer,14574,9037,0,7824,80,60,20,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_UNDEADATTACK",5,5,5; },{ bonus bAgi,3; bonus bDex,1; }
1963,P_CHUNG_E,New Year Doll,0,9038,0,554,80,60,30,100,250,20,800,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{}
// New pets JapanRO Mobile
1040,GOLEM,Golem,12371,9053,10035,6111,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxHP,100; bonus bFlee,-5; }
1143,MARIONETTE,Marionette,12361,9043,10025,6098,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bSPrecovRate,3; }
1148,MEDUSA,Medusa,12368,9050,10032,6108,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bVit,1; bonus2 bResEff,Eff_Stone,500; }
1179,WHISPER,Whisper,12363,9045,10027,6100,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bFlee,7; bonus bDef,-3; }
1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; }
1370,SUCCUBUS,Succubus,12373,9055,10037,6113,80,60,10,100,250,20,200,150,0,0,300,300,800,{ bonus2 bHPDrainRate,10,5; },{ bonus2 bHPDrainRate,30,5; bonus bMaxHPrate,1; }
1374,INCUBUS,Incubus,12370,9052,10034,6110,80,60,10,100,250,20,50,150,0,0,300,300,800,{ bonus bMaxSPRate,3; bonus2 bSPDrainRate,10,1; },{ bonus bMaxSPRate,5; bonus2 bSPDrainRate,30,1; }
1379,NIGHTMARE_TERROR,Nightmare Terror,12372,9054,10036,6112,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bResEff,Eff_Sleep,10000; }
1401,SHINOBI,Shinobi,12362,9044,10026,6099,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bAgi,2; }
1404,MIYABI_NINGYO,Miyabi Doll,12366,9048,10030,6106,80,60,15,100,250,20,200,150,0,0,300,300,800,{},{ bonus bInt,1; bonus bCastrate,-3; }
1416,WICKED_NYMPH,Evil Nymph,12365,9047,10029,6105,80,60,15,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxSP,30; bonus bSPrecovRate,5; }
1495,STONE_SHOOTER,Stone Shooter,12369,9051,10033,6109,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus2 bSubEle,Ele_Fire,3; }
1504,DULLAHAN,Dullahan,12367,9049,10031,6107,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bCritAtkRate,5; }
1505,LOLI_RURI,Loli Ruri,12360,9042,10024,6097,80,60,15,100,250,20,200,150,0,0,300,300,800,{},{ bonus bMaxHPRate,3; bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10; }
1513,CIVIL_SERVANT,Mao Guai,12358,9040,10022,6095,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bMaxSP,10; }
1586,LEAF_CAT,Leaf Cat,12359,9041,10023,6096,80,60,20,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bSubRace,RC_Brute,3; }
1630,BACSOJIN_,White Lady,12357,9039,10021,6094,80,60,10,100,250,20,2000,150,0,0,300,300,800,{},{}
1837,IMP,Fire Imp,12374,9056,10038,6114,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bSubEle,Ele_Fire,2; bonus2 bAddEle,Ele_Fire,2; }
// Brasilis Quest - Suspicious Beach [UNHATCHABLE]
2057,E_CRAMP,Strange Cramp,12408,6221,0,0,0,0,0,0,0,0,50,0,0,0,350,400,800,{},{} // kRO version
2081,E_HYDRA,Strange Hydra,12408,6221,0,0,0,0,0,0,0,0,50,0,0,0,350,400,800,{},{} // iRO/cRO version
// New pets (FIX ME: pet bonuses for 2210 and 2313 do not require loyalty)
2200,J_TAINI,Tiny,0,9057,0,512,80,60,10,100,250,20,0,150,1,0,300,300,800,{},{}
2210,XMAS_LUNATIC,Christmas Snow Rabbit,0,9058,0,529,80,60,10,100,250,20,0,150,1,0,300,300,800,{},{ bonus2 bExpAddRace,RC_All,5; }
2313,TIKBALANG,Tikbalang,12699,9059,0,528,80,60,10,100,250,20,1000,150,1,0,300,300,800,{},{ bonus2 bAddDamageClass,2320,10; bonus2 bAddDamageClass,2321,10; bonus2 bAddDamageClass,2322,10; bonus2 bAddDamageClass,2317,10; bonus2 bAddDamageClass,2318,10; bonus2 bAddDamageClass,2327,10; bonus2 bAddDamageClass,2319,10; bonus2 bAddDamageClass,2333,10; bonus2 bAddDamageClass,2332,10; }
1242,MARIN,Marin,12789,9061,10039,6534,80,60,50,100,250,20,2000,150,1,0,300,300,800,{},{}
2398,LITTLE_PORING,Novice Poring,12846,9062,0,531,80,60,1000,0,250,0,5000,150,0,0,300,300,800,{},{ bonus bHPrecovRate,50; }
// New pets from kRO 2014-10-08 (Needs more info)
//1090,MASTERING,Mastering,<LureID>,9069,<EquipID>,<FoodID>,<Fullness>,<HungryDelay>,<R_Hungry>,<R_Full>,<Intimate>,<Die>,<Capture>,<Speed>,<S_Performance>,<talk_convert_class>,<attack_rate>,<defence_attack_rate>,<change_target_rate>,<pet_script>,{ set .@i,getpetinfo(3); /*Awkward=LUK + 2, CRI + 1; Neutral=LUK + 3, CRI + 1; Cordial=LUK + 3, CRI + 2; Best Friend=LUK + 3, CRI + 3;*/ }
//1166,SAVAGE,Savage,<LureID>,9070,<EquipID>,<FoodID>,<Fullness>,<HungryDelay>,<R_Hungry>,<R_Full>,<Intimate>,<Die>,<Capture>,<Speed>,<S_Performance>,<talk_convert_class>,<attack_rate>,<defence_attack_rate>,<change_target_rate>,<pet_script>,{ set .@i,getpetinfo(3); /*Awkward=VIT + 1, MHP + 50; Neutral=VIT + 2, MHP + 50; Cordial=VIT + 2, MHP + 100; Best Friend=VIT + 2, MHP + 200;*/ }
//1369,GRAND_PECO,Grand Peco,<LureID>,9071,<EquipID>,<FoodID>,<Fullness>,<HungryDelay>,<R_Hungry>,<R_Full>,<Intimate>,<Die>,<Capture>,<Speed>,<S_Performance>,<talk_convert_class>,<attack_rate>,<defence_attack_rate>,<change_target_rate>,<pet_script>,{ set .@i,getpetinfo(3); /*Awkward=MHP + 150; Neutral=MHP + 200; Cordial=MHP + 300; Best Friend=MHP + 400;*/ }
//1213,HIGH_ORC,High Orc,<LureID>,9087,<EquipID>,<FoodID>,<Fullness>,<HungryDelay>,<R_Hungry>,<R_Full>,<Intimate>,<Die>,<Capture>,<Speed>,<S_Performance>,<talk_convert_class>,<attack_rate>,<defence_attack_rate>,<change_target_rate>,<pet_script>,{ set .@i,getpetinfo(3); /*Awkward=ATK + 10; Neutral=ATK + 15; Cordial=ATK + 20; Best Friend=ATK + 25;*/ }

1733
db/re/pet_db.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2115,39 +2115,39 @@
9270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The way to be a strong Mage - 4"
//Geffen Magic Tournament
9284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9292,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9293,0,1106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9295,0,2549,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9296,0,2550,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9298,0,2553,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9299,0,2554,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9300,0,2555,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9301,0,2556,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9302,0,2557,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9303,0,2558,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9304,0,2559,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9305,0,2560,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9306,0,2561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9307,0,2562,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9311,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9315,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9316,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Geffen"
9284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Stopping Geffen Gangsters"
9285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Beating Geffen Gangsters"
9286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Stop Geffen Gangsters"
9287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defeating Geffen Gangsters"
9288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Catch a Geffen thief"
9289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Get things back from the thief"
9290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Participate in Magic competitions"
9291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Participate in Magic competitions"
9292,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Participate in Magic competitions"
9293,0,1106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Register in Magic Competition"
9294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Registration Complete"
9295,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"1st match of the Tournament has started"
9296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"2nd match of the Competition has started"
9297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"3rd match of the Competition has started"
9298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"4th match of the Competition has started"
9299,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"5th match of the Competition has started"
9300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"6th match of the Competition has started"
9301,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"7th match of the Competition has started"
9302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"8th match of the Competition has started"
9303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"9th match of the Competition has started"
9304,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"10th match of the Competition has started"
9305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"11th match of the Competition has started"
9306,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"12th match of the Competition has started"
9307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Final match of the Competition has started"
9308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Magic Competition Win~!"
9309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Magic Tournament defeat"
9310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Encounter Iris"
9311,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Encounter Chaos"
9312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Encounter Lydia"
9313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Encounter Fenrir"
9314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Encounter Loki"
9315,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exploring the dimensional gap"
9316,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Re-exploring the crack of spaces"
// EP14.3 Morse's Cave
9318,0,3000,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Pursuing Hiding Morroc"
@ -3073,9 +3073,9 @@
12388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mushroom Delivery"
12389,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Guardian of Rock Ridge"
12390,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Relieved for Now"
12391,0,3744,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Buffaloes with Rifles"
12392,0,3745,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Punishing the Red Masks"
12393,0,3746,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eye Patch Desperadoes"
12391,0,3736,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Buffaloes with Rifles"
12392,0,3737,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Punishing the Red Masks"
12393,0,3738,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eye Patch Desperadoes"
12394,0,3739,20,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Gray Four-legged Beasts"
12395,0,3787,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Swamp Arclouzes"
12396,0,3788,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Brown Rats"

View File

@ -167,8 +167,6 @@
85,9600:9280:8960:8640:8320:8000:7680:7360:7040:6720,5000,0,4000,20000,0,2400:2320:2240:2160:2080:2000:1920:1840:1760:1680
//-- WZ_WATERBALL
86,640:1280:1920:2560:3200,0,0,10000,0,0,160:320:480:640:800
//-- WZ_ICEWALL
87,0,0,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0,0,0
//-- WZ_FROSTNOVA
88,640:640:576:576:512:512:448:448:384:384,200,0,0,4000:5500:7000:8500:10000:11500:13000:14500:16000:17500,0,160:160:144:144:128:128:112:112:96:96
//-- WZ_STORMGUST
@ -671,7 +669,7 @@
//===== Taekwon ============================
//-- TK_RUN
411,3000:2500:2000:1500:1000:500:0:0:0:0,300,0,1000,150000,0,3000:2500:2000:1500:1000:500:-1-1-1-1
411,3000:2500:2000:1500:1000:500:0:0:0:0,300,0,1000,150000,0,3000:2500:2000:1500:1000:500:-1:-1:-1:-1
//-- TK_DOWNKICK
415,0,0,0,0,3000,0,0
//-- TK_TURNKICK
@ -1349,7 +1347,9 @@
//-- NC_DISJOINT
2283,2000,0,0,0,0,0,-1
//-- NC_MAGMA_ERUPTION
5006,1000,500,0,5000,42000,10000:9000:8000:7000:6000,-1
5006,1000,500,0,5000,5000,10000:9000:8000:7000:6000,-1
//-- NC_MAGMA_ERUPTION_DOTDAMAGE
5015,0,0,0,0,20000,0,-1
//==========================================
//===== Shadow Chaser ======================
@ -1661,20 +1661,16 @@
//==========================================
//===== Rebellion Skills ===================
//-- RL_GLITTERING_GREED
//2551,0,0,0,0,0,0,-1
//-- RL_RICHS_COIN
2552,0,1000,0,600000,0,3000,-1
//-- RL_MASS_SPIRAL
2553,2000,1000,0,0,30000,2000,1000
2553,1000,1000,0,120000,0,2000,2000
//-- RL_BANISHING_BUSTER
2554,3000:2500:2000:1500:1000,2000,0,0,0,10000,-1
2554,3000:2500:2000:1500:1000,0,0,0,0,2000,1000
//-- RL_B_TRAP
2555,0,2500:2000:1500:1000:500,0,10000,9000:14000:19000:24000:29000,10000,-1
//-- RL_FLICKER
2556,0,0,0,0,0,10000,-1
2555,2000:1600:1200:800:400,2500:2000:1500:1000:500,0,10000,10000:11000:12000:13000:14000,10000,-1
//-- RL_S_STORM
2557,3000:2500:2000:1500:1000,2000,0,0,0,2000,1000
2557,3000:2500:2000:1500:1000,0,0,0,0,2000,1000
//-- RL_E_CHAIN
2558,1000,1000,0,45000:60000:75000:90000:105000:120000:135000:150000:165000:180000,0,0,-1
//-- RL_QD_SHOT
@ -1682,11 +1678,11 @@
//-- RL_C_MARKER
2560,0,0,0,30000,0,1000,-1
//-- RL_FIREDANCE
2561,0,500,0,0,0,5000,-1
2561,0,500,0,0,0,0,-1
//-- RL_H_MINE
2562,1000,1000,0,50000,15000,5000:4500:4000:3500:3000,-1
//-- RL_P_ALTER
2563,0,0,0,30000:45000:60000:75000:90000,0,0,-1
2563,2000,0,0,42000:54000:66000:78000:90000,0,0,-1
//-- RL_FALLEN_ANGEL
2564,0,0,0,2000,0,0,-1
//-- RL_R_TRIP
@ -1703,12 +1699,6 @@
2570,5000:6000:7000:8000:9000,1000,0,0,2000,5000,1000
//-- RL_HAMMER_OF_GOD
2571,0,2000,0,0,3000:3000:4000:4000:5000,30000,-1
//-- RL_R_TRIP_PLUSATK
//2572,0,0,0,0,0,0,-1
//-- RL_B_FLICKER_ATK
//2573,0,0,0,0,0,0,-1
//-- RL_GLITTERING_GREED_ATK
//2574,0,0,0,0,0,0,-1
//==========================================
//==== Kagerou & Oboro Skills ==============

View File

@ -1399,7 +1399,7 @@
5003,7,6,1,-1,0x2,4:5:6:7:-1,5,1,no,0,0,0,weapon,0,0x0, GN_ILLUSIONDOPING,Illusion Doping
5004,9,6,2,1,0x42,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0x40000,0,weapon,0,0x0, RK_DRAGONBREATH_WATER,Dragon Breath - Water
5005,0,6,4,0,0x3,3,1,1,no,0,0,0,none,0,0x0, RK_LUXANIMA,Lux Anima
5006,1,6,2,3,0x2,3,5,1,no,0,0,3,misc,0,0x4000, NC_MAGMA_ERUPTION,Magma Eruption
5006,1,6,2,-1,0x2,3,5,1,no,0,0,3,weapon,0,0x4000, NC_MAGMA_ERUPTION,Magma Eruption
5007,0,6,4,0,0x3,5:6:7:8:9,5,1,no,0,0,0,none,0,0x0, WM_FRIGG_SONG,Frigg's Song
5008,0,6,4,0,0x3,11,5,1,no,0,0,0,none,0,0x0, SO_ELEMENTAL_SHIELD,Elemental Shield
5009,1,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_FLASHCOMBO,Flash Combo
@ -1408,6 +1408,7 @@
5012,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, WL_TELEKINESIS_INTENSE,Intense Telekinesis
5013,0,6,4,0,0x3,0,5,1,no,0,0,0,none,0,0x0, LG_KINGS_GRACE,King's Grace
5014,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x4000, ALL_FULL_THROTTLE,Full Throttle
5015,1,6,1,0,0xC0,0,5,1,no,0,0,0,misc,0,0, NC_MAGMA_ERUPTION_DOTDAMAGE,Magma Eruption Dot Damage
// Summoner
5018,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_BASIC_SKILL,New Basic Skill

View File

@ -26,11 +26,11 @@
// 'RequiredStatuses'
// Fill the value only with SC_STATUS (see db/const.txt for more details)
// Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3
// Max. multiple value is 3 (skill.h: MAX_SKILL_STATUS_REQUIRE)
// Max. multiple value is 3 (skill.hpp: MAX_SKILL_STATUS_REQUIRE)
// Use any number or SC_ALL will disable status requirements
// 'RequiredEquipment'
// Specified equipment to be equipped. For multiple values, use : as delimiter.
// Max. multiple value is 10 (skill.h: MAX_SKILL_EQUIP_REQUIRE)
// Max. multiple value is 10 (skill.hpp: MAX_SKILL_EQUIP_REQUIRE)
//****
// SM Swordman

View File

@ -43,7 +43,7 @@
83,0x86, , 0, 3,1000,enemy, 0x010 //WZ_METEOR
85,0x86, , 5:5:5:5:5:5:5:5:5:5:7, 1,1250,enemy,0x018 //WZ_VERMILION
86,0x86, , 0:1:1:2:2:2:2:2:2:2, 0,-1,noone, 0x010 //WZ_WATERBALL
87,0x8d, , -1, 0, -1,all, 0x9010 //WZ_ICEWALL
87,0x8d, , -1, 0,1000,all, 0x9010 //WZ_ICEWALL
89,0x86, , 4, 1, 450,enemy, 0x018 //WZ_STORMGUST
91,0x86, , 2, 0,1000,enemy, 0x010 //WZ_HEAVENDRIVE
92,0x8e, , 2, 0, -1,enemy, 0x8010 //WZ_QUAGMIRE

View File

@ -4,7 +4,7 @@
// SkillID,PreservePoints,Required Book
//
// NOTE:
// - To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.h.
// - To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.hpp.
// - To remove entry by importing, put 0 for 'PreservePoints'
//Mage

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20170531
//= 20190226
//===== Description: =========================================
//= Explanation of the achievements_db.yml file and structure.
//============================================================
@ -64,7 +64,8 @@ Example 2:
// IE: In the achievement_list.lub file, UI_Type 0 is displayed as non-incremental while 1 shows a progress bar of completion for the achievement.
Condition: " ARG0 >= 100 "
Target:
- Count: 100
- Id: 0 // Array index value
Count: 100
---------------------------------------

View File

@ -14,7 +14,7 @@ This file describes the usage of in-game commands and assumes that
charcommand_symbol: "#"
Some commands cannot be used from console or script command to prevent map-server crashed.
See atcommand.c::atcommand_basecommands for restricted commands. Please tell us if any
See atcommand.cpp::atcommand_basecommands for restricted commands. Please tell us if any
other atcommand that causes map-server crashed executed by console or script commands.
To search for a command, write "@" before the command name (ex. @commands).
@ -811,7 +811,7 @@ If no coordinates are entered, a random location will be chosen.
Warps to predefined locations in major cities.
If no ID is given, all available maps will be displayed in the chat window.
Locations and coordinates are stored in '/src/map/atcommand.c'.
Locations and coordinates are stored in '/src/map/atcommand.cpp'.
Restriction:
- Used from console
@ -1143,7 +1143,7 @@ Give or remove a cart to a player and also change the cart skin based on ID:
Changes the language attached to the player's account (#langtype).
If no parameter is given, a list of available languages is displayed.
All languages are defined in '/src/common/msg_conf.h'.
All languages are defined in '/src/common/msg_conf.hpp'.
---------------------------------------
@ -1361,7 +1361,7 @@ Affected files:
-- battleconf: battle_athena.conf, battle_conf.txt
-- instancedb: instance_db.txt
-- itemdb: item_db.txt, item_group_db.txt, item_trade.txt, item_noequip.txt, item_nouse.txt, item_combo_db.txt, item_avail.txt, item_stack.txt, item_delay.txt, item_buyingstore.txt, item_flag.txt
-- mobdb: mob_db.txt, mob_item_ratio.txt, mob_chat_db.txt, mob_avail.txt, mob_race2_db.txt, mob_branch.txt, mob_poring.txt, mob_boss.txt, mob_pouch.txt, mob_classchange.txt, pet_db.txt, homunculus_db.txt, homun_skill_tree.txt, exp_homun.txt, mercenary_db.txt, mercenary_skill_db.txt, elemental_db.txt, elemental_skill_db.txt
-- mobdb: mob_db.txt, mob_item_ratio.txt, mob_chat_db.txt, mob_avail.txt, mob_race2_db.txt, mob_branch.txt, mob_poring.txt, mob_boss.txt, mob_pouch.txt, mob_classchange.txt, pet_db.yml, homunculus_db.txt, homun_skill_tree.txt, exp_homun.txt, mercenary_db.txt, mercenary_skill_db.txt, elemental_db.txt, elemental_skill_db.txt
-- motd: motd.txt
-- msgconf: atcommand_athena.conf
-- pcdb: statpoint.txt, job_exp.txt, skill_tree.txt, attr_fix.txt, job_db1.txt, job_db2.txt, job_basehpsp_db.txt, job_maxhpsp_db.txt, job_param_db.txt, level_penalty.txt

View File

@ -13,7 +13,7 @@ Preface:
-------------------------------------------------------------------------------
Most scripters are aware of the class values used in RO and their constants
specified in src/map/script_constants.h. Each class has a number associated
specified in src/map/script_constants.hpp. Each class has a number associated
to it for referencing, so when someone's class is 9 that means they are a
wizard. However, this list of job numbers has no real order behind it, and
no logic behind it's assignation.

View File

@ -374,11 +374,13 @@ bonus2 bSPDrainRate,x,n; Adds a x/10% chance to drain n% SP from inflicted dama
HP/SP vanish
------------
bonus2 bHPVanishRate,x,n; Add a x/10% chance of decreasing enemy's HP amount by n% when attacking
bonus2 bSPVanishRate,x,n; Add a x/10% chance of decreasing enemy's SP amount by n% when attacking
bonus2 bHPVanishRate,x,n; Add a x/10% chance of decreasing enemy's HP amount by n% with a normal attack
bonus3 bHPVanishRaceRate,r,x,n; Add a x/10% chance of decreasing enemy's HP amount by n% when attacking, depends on enemy race r
bonus3 bHPVanishRate,x,n,bf; Add a x/10% chance of decreasing enemy's HP amount by n% when attacking with trigger criteria bf
bonus3 bHPVanishRaceRate,r,x,n; Add a x/100% chance of decreasing enemy's HP amount by n% when attacking, depends on enemy race r
bonus3 bSPVanishRaceRate,r,x,n; Add a x/100% chance of decreasing enemy's SP amount by n% when attacking, depends on enemy race r
bonus2 bSPVanishRate,x,n; Add a x/10% chance of decreasing enemy's SP amount by n% with a normal attack
bonus3 bSPVanishRaceRate,r,x,n; Add a x/10% chance of decreasing enemy's SP amount by n% when attacking, depends on enemy race r
bonus3 bSPVanishRate,x,n,bf; Add a x/10% chance of decreasing enemy's SP amount by n% when attacking with trigger criteria bf
bonus3 bStateNoRecoverRace,r,x,t; Set a no recovery state of an enemy of race r at x/100% for t milliseconds with normal attack.
@ -453,3 +455,4 @@ bonus bRestartFullRecover; When reviving, HP and SP are fully healed
bonus bClassChange,n; Gives a n/100% chance to change the attacked monster's class with normal attack
bonus bAddStealRate,n; Increases success rate of Steal skill by n/100%
bonus bNoMadoFuel; Nullify Magic Gear Fuel requirement for skills.
bonus bNoWalkDelay; Give infinite Endure.

View File

@ -38,7 +38,7 @@ The table below explains which fields are accessed in each.
---------------------------------------
GroupID: See the "Item Group ID" section in 'src/map/itemdb.h' and the "item groups" section in 'src/map/script_constants.h'.
GroupID: See the "Item Group ID" section in 'src/map/itemdb.hpp' and the "item groups" section in 'src/map/script_constants.hpp'.
Supports IG_* constants.
---------------------------------------
@ -65,7 +65,7 @@ Amount: Amount of item that will be obtained.
Random: Set this to '0' and the item will always be obtained ("must" item).
Random value will allocates where the item will be stored at random group.
(max. random group is 4, defined as MAX_ITEMGROUP_RANDGROUP in 'src/map/itemdb.c'.)
(max. random group is 4, defined as MAX_ITEMGROUP_RANDGROUP in 'src/map/itemdb.cpp'.)
Item Group:
IG_MyItemGroup,Knife,0,1,0 //a "must" item

View File

@ -24,7 +24,7 @@ The format of this file is as follows:
============
| 1. Notes |
============
Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.c').
Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.cpp').
=========================
| 2. Login-Char Packets |
@ -520,7 +520,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
len: 7
parameter:
- cmd : packet identification (0x3002)
- id: whisper id, identifier to match current whisper session that store in inter.c::wis_db
- id: whisper id, identifier to match current whisper session that store in inter.cpp::wis_db
- flag: 0=success, 1=target not found, 2=ignored by target
desc:
- Inform the char-server of the result of the whisper

View File

@ -521,7 +521,7 @@ forever, and no trace remains of it even if it was stored with character or
account data.
Some variables are special, that is, they are already defined for you by the
scripting engine. You can see the full list in 'src/map/script_constants.h', which
scripting engine. You can see the full list in 'src/map/script_constants.hpp', which
is a file you should read, since it also allows you to replace lots of numbered
arguments for many commands with easier to read text. The special variables most
commonly used are all permanent character-based variables:
@ -565,7 +565,7 @@ setting it will make the character own this number of Zeny.
If you try to set Zeny to a negative number, the script will be terminated with an error.
Some source-end constants can also be accessed in scripts. This list is located in
'src/map/script_constants.h', which contains constants such as server defines and status options:
'src/map/script_constants.hpp', which contains constants such as server defines and status options:
PACKETVER, MAX_LEVEL, MAX_STORAGE, MAX_INVENTORY, MAX_CART, MAX_ZENY, MAX_PARTY,
MAX_GUILD, MAX_GUILDLEVEL, MAX_GUILD_STORAGE, MAX_BG_MEMBERS, MAX_CHAT_USERS,
@ -582,8 +582,8 @@ Assigning variables
Variables can be accessed and modified much like in other programming languages.
@x = 100;
@x = @y = 100;
.@x = 100;
.@x = .@y = 100;
Support for modifying variable values using 'set' is still supported (and required
to exist for this new method to work) so previous scripts will continue to work.
@ -591,13 +591,13 @@ to exist for this new method to work) so previous scripts will continue to work.
When assigning values, all operator methods are supported which exist in the below
'Operators' section. For instance:
@x += 100;
@x -= 100;
@x *= 2;
@x /= 2;
@x %= 5;
@x >>= 2;
@x <<= 2;
.@x += 100;
.@x -= 100;
.@x *= 2;
.@x /= 2;
.@x %= 5;
.@x >>= 2;
.@x <<= 2;
Will all work. For more information on available operators, see the Operators section
described below. All operators listed there may be placed in-front of the '=' sign
@ -631,15 +631,15 @@ Arrays are specifically useful for storing a set of similar data (like several
item IDs for example) and then looping through it. You can address any array
variable as if it was a normal variable:
set @arrayofnumbers[0],1;
set .@arrayofnumbers[0],1;
You can also do things like using a variable (or an expression, or even a
value from another array) to get at an array value:
set @x,100;
set @arrayofnumbers[@x],10;
set .@x,100;
set .@arrayofnumbers[.@x],10;
This will make @arrayofnumbers[100] equal to 10.
This will make .@arrayofnumbers[100] equal to 10.
Index numbering always starts with 0 and arrays can hold over 2 billion
variables. As such, the (guaranteed) allowed values for indices are in the
@ -651,7 +651,7 @@ to be pretty.
Arrays can naturally store strings:
@menulines$[0] is the 0th element of the @menulines$ array of strings. Notice
.@menulines$[0] is the 0th element of the .@menulines$ array of strings. Notice
the '$', normally denoting a string variable, before the square brackets that
denotes an array index.
@ -697,7 +697,7 @@ Examples:
1 == 1 is True.
1<2 is True while 1>2 is False.
@x>2 is True if @x is equal to 3. But it isn't true if @x is 2.
.@x>2 is True if .@x is equal to 3. But it isn't true if .@x is 2.
Only ' == ' and '!=' have been tested for comparing strings. Since there's no way
to code a seriously complex data structure in this language, trying to sort
@ -754,14 +754,14 @@ Logical bitwise operators work only on numbers, and they are the following:
2 = 2^1 (2), so in bits (same size) it would be 0010
The & (AND) operator sets bits which are active (1) in both arguments, so in the
example 1010 & 0010, only the 2^1 bit is active (1) in both. Resulting in the bit
0010, which is 2.
0010, which is 2.
- Basic example of creating and using a bit-mask:
set @options,2|4|16; //(note: this is the same as 2+4+16, or 22)
if (@options & 1) mes "Option 1 is activated";
if (@options & 2) mes "Option 2 is activated";
if (@options & 4) mes "Option 3 is activated";
if (@options & 8) mes "Option 4 is activated";
if (@options & 16) mes "Options 5 is activated";
set .@options,2|4|16; //(note: this is the same as 2+4+16, or 22)
if (.@options & 1) mes "Option 1 is activated";
if (.@options & 2) mes "Option 2 is activated";
if (.@options & 4) mes "Option 3 is activated";
if (.@options & 8) mes "Option 4 is activated";
if (.@options & 16) mes "Options 5 is activated";
This would return the messages about option 2, 3 and 5 being shown (since we've set
the 2,4 and 16 bit to 1).
^ - Xor.
@ -1002,7 +1002,7 @@ and called label is in NPC that has trigger area, that label must end with
"Global" to work globally (i.e. if RID is outside of the trigger area, which
usually happens since otherwise there would be no point calling the label with
doevent, because OnTouch would do the job). For further reference look for
npc_event in npc.c.
npc_event in npc.cpp.
Scripting commands and functions
--------------------------------
@ -1232,14 +1232,14 @@ other programming language (refer to the "Assigning variables" section).
This is the most basic script command and is used a lot whenever you try to do
anything more advanced than just printing text into a message box.
set @x,100;
set .@x,100;
will make @x equal 100.
will make .@x equal 100.
set @x,1+5/8+9;
set .@x,1+5/8+9;
will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers are
integer in this language) and make @x equal it.
integer in this language) and make .@x equal it.
Returns the variable reference (since trunk r12870).
@ -1278,7 +1278,7 @@ This can also be used to set an array dynamically:
Examples:
set getd("$varRefence"), 1;
set @i, getd("$" + "pikachu");
set .@i, getd("$" + "pikachu");
---------------------------------------
@ -1387,46 +1387,46 @@ with the strings that should go into the menu at this execution, making sure not
to leave any gaps. Normally, you do it with a loop and an extra counter, like
this:
setarray @possiblemenuitems$[0],<list of potential menu items>;
@j = 0; // That's the menu lines counter.
setarray .@possiblemenuitems$[0],<list of potential menu items>;
.@j = 0; // That's the menu lines counter.
// We loop through the list of possible menu items.
// @i is our loop counter.
for( @i = 0; @i < getarraysize(@possiblemenuitems$); @i++ )
// .@i is our loop counter.
for( .@i = 0; .@i < getarraysize(.@possiblemenuitems$); .@i++ )
{
// That 'condition' is whatever condition that determines whether
// a menu item number @i actually goes into the menu or not.
// a menu item number .@i actually goes into the menu or not.
if (<condition>)
{
// We record the option into the list of options actually available.
@menulist$[@j] = @possiblemenuitems$[@i];
.@menulist$[@j] = .@possiblemenuitems$[@i];
// We just copied the string, we do need its number for later
// though, so we record it as well.
@menureference[@j] = @i;
.@menureference[@j] = .@i;
// Since we've just added a menu item into the list, we increment
// the menu lines counter.
@j++;
.@j++;
}
// We go on to the next possible menu item.
}
This will create you an array @menulist$ which contains the text of all items
This will create you an array .@menulist$ which contains the text of all items
that should actually go into the menu based on your condition, and an array
@menureference, which contains their numbers in the list of possible menu items.
.@menureference, which contains their numbers in the list of possible menu items.
(Remember, arrays start with 0.) There's less of them than the possible menu
items you've defined, but the menu command can handle the empty lines - only if
they are last in the list, and if it's made this way, they are. Now comes a
dirty trick:
// X is whatever the most menu items you expect to handle.
menu @menulist$[0],-,@menulist$[1],-,....@menulist$[<X>],-;
menu .@menulist$[0],-,.@menulist$[1],-,...,.@menulist$[<X>],-;
This calls up a menu of all your items. Since you didn't copy some of the
possible menu items into the list, its end is empty and so no menu items will
@ -1441,18 +1441,18 @@ But how do you figure out which option the user picked? Enter the @menu.
starting with 1 for the first option. You know now which option the user picked
and which number in your real list of possible menu items it translated to:
mes "You selected " + @possiblemenuitems$[@menureference[@menu-1]] + "!";
mes "You selected " + .@possiblemenuitems$[.@menureference[@menu-1]] + "!";
@menu is the number of option the user picked.
@menu-1 is the array index for the list of actually used menu items that we
made.
@menureference[@menu-1] is the number of the item in the array of possible menu
.@menureference[@menu-1] is the number of the item in the array of possible menu
items that we've saved just for this purpose.
And @possiblemenuitems$[@menureference[@menu-1]] is the string that we used to
And .@possiblemenuitems$[.@menureference[@menu-1]] is the string that we used to
display the menu line the user picked. (Yes, it's a handful, but it works.)
You can set up a bunch of 'if (@menureference[@menu-1] == X) goto Y' statements to
You can set up a bunch of 'if (.@menureference[@menu-1] == X) goto Y' statements to
route your execution based on the line selected and still generate a different
menu every time, which is handy when you want to, for example, make users select
items in any specific order before proceeding, or make a randomly shuffled menu.
@ -1464,7 +1464,7 @@ probably since that wasn't documented anywhere.
See also 'select', which is probably better in this particular case. Instead of
menu, you could use 'select' like this:
@dummy = select(@menulist$[0],@menulist$[1],....@menulist$[<X>]);
.@dummy = select(.@menulist$[0],.@menulist$[1],...,.@menulist$[<X>]);
For the purposes of the technique described above these two statements are
perfectly equivalent.
@ -1580,8 +1580,8 @@ generally cleaner:
mes "[Man]"
mes "Gimme a number!";
next;
input @number;
if (callfunc("OddFunc",@number)) mes "It's Odd!";
input .@number;
if (callfunc("OddFunc",.@number)) mes "It's Odd!";
close;
}
function%TAB%script%TAB%OddFunc%TAB%{
@ -1890,15 +1890,15 @@ Notice that examples 1 and 2 have the same effect.
Example 3:
@count++;
.@count++;
mes "[Forgetful Man]";
if (@count == 1) mes "This is the first time you have talked to me.";
if (@count == 2) mes "This is the second time you have talked to me.";
if (@count == 3) mes "This is the third time you have talked to me.";
if (@count == 4) {
if (.@count == 1) mes "This is the first time you have talked to me.";
if (.@count == 2) mes "This is the second time you have talked to me.";
if (.@count == 3) mes "This is the third time you have talked to me.";
if (.@count == 4) {
mes "This is the fourth time you have talked to me.";
mes "I think I am getting amnesia, I have forgotten about you...";
@count = 0;
.@count = 0;
}
close;
@ -2182,19 +2182,19 @@ Example:
This command will allow you to quickly fill up an array in one go. Check the
Kafra scripts in the distribution to see this used a lot.
setarray @array[0], 100, 200, 300, 400, 500, 600;
setarray .@array[0], 100, 200, 300, 400, 500, 600;
First value is the index of the first element of the array to alter. For
example:
setarray @array[0],200,200,200;
setarray @array[1],300,150;
setarray .@array[0],200,200,200;
setarray .@array[1],300,150;
will produce:
@array[0]=200
@array[1]=300
@array[2]=150
.@array[0]=200
.@array[1]=300
.@array[2]=150
---------------------------------------
@ -2202,13 +2202,13 @@ will produce:
This command will change many array values at the same time to the same value.
setarray @array[0], 100, 200, 300, 400, 500, 600;
setarray .@array[0], 100, 200, 300, 400, 500, 600;
// This will make all 6 values 0
cleararray @array[0],0,6;
cleararray .@array[0],0,6;
// This will make array element 0 change to 245
cleararray @array[0],245,1;
cleararray .@array[0],245,1;
// This will make elements 1 and 2 change to 345
cleararray @array[1],345,2;
cleararray .@array[1],345,2;
See 'setarray'.
@ -2219,28 +2219,28 @@ See 'setarray'.
This command lets you quickly shuffle a lot of data between arrays, which is in
some cases invaluable.
setarray @array[0], 100, 200, 300, 400, 500, 600;
// So we have made @array[]
copyarray @array2[0],@array[2],2;
setarray .@array[0], 100, 200, 300, 400, 500, 600;
// So we have made .@array[]
copyarray .@array2[0],@array[2],2;
// Now, @array2[0] will be equal to @array[2] (300) and
// @array2[1] will be equal to @array[3].
// Now, .@array2[0] will be equal to .@array[2] (300) and
// .@array2[1] will be equal to .@array[3].
So using the examples above:
@array[0] = 100
@array[1] = 200
@array[2] = 300
@array[3] = 400
@array[4] = 500
@array[5] = 600
.@array[0] = 100
.@array[1] = 200
.@array[2] = 300
.@array[3] = 400
.@array[4] = 500
.@array[5] = 600
New Array:
@array2[0] = 300
@array2[1] = 400
@array2[2] = 0
@array2[3] = 0
.@array2[0] = 300
.@array2[1] = 400
.@array2[2] = 0
.@array2[3] = 0
Notice that @array[4] and @array[5] won't be copied to the second array, and it will return a
Notice that .@array[4] and .@array[5] won't be copied to the second array, and it will return a
0.
---------------------------------------
@ -2252,12 +2252,12 @@ array, shifting all the elements beyond this towards the beginning.
// This will delete array element 0, and move all the other array elements
// up one place.
deletearray @array[0],1
deletearray .@array[0],1
// This would delete array elements numbered 1, 2 and 3, leave element 0 in its
// place, and move the other elements ups, so there are no gaps.
deletearray @array[1],3
deletearray .@array[1],3
---------------------------------------
@ -2295,7 +2295,7 @@ While being optional, if [<start index>] is supplied, the search will begin from
.@variable = 100;
if(countinarray(.@array[0], .@variable))
mes "The number 100 was found in the array @array";
mes "The number 100 was found in the array .@array";
countinarray(.@array[0], .@variable);
//return 1 because the number 100 is an element of the array .@array
@ -2358,15 +2358,15 @@ counted towards this number.
For example:
setarray @array[0], 100, 200, 300, 400, 500, 600;
set @arraysize,getarraysize(@array);
setarray .@array[0], 100, 200, 300, 400, 500, 600;
set .@arraysize,getarraysize(.@array);
This will make @arraysize == 6. But if you try this:
This will make .@arraysize == 6. But if you try this:
setarray @array[0], 100, 200, 300, 400, 500, 600, 0;
set @arraysize,getarraysize(@array);
setarray .@array[0], 100, 200, 300, 400, 500, 600, 0;
set .@arraysize,getarraysize(.@array);
@arraysize will still equal 6, even though you've set 7 values.
.@arraysize will still equal 6, even though you've set 7 values.
---------------------------------------
@ -2391,7 +2391,7 @@ Also useful when passing arrays to functions or accessing another npc's arrays:
This function will return the specified stat of the invoking character, or, if a
character name or character id is specified, of that player. The stat can either
be a number or parameter name, defined in 'src/map/script_constants.h'.
be a number or parameter name, defined in 'src/map/script_constants.hpp'.
Some example parameters:
@ -3046,7 +3046,7 @@ If <type> is false the command only returns the count of unidentified items.
//
---------------------------------------
*getmapxy("<variable for map name>",<variable for x>,<variable for y>,<type>{,"<search string>"})
*getmapxy("<variable for map name>",<variable for x>,<variable for y>{,<type>,"<search value>"})
This function will locate a character object, NPC object or pet's coordinates
and place their coordinates into the variables specified when calling it. It
@ -3055,23 +3055,23 @@ not variables or the search was not successful.
Type is the type of object to search for:
UNITTYPE_PC - Character object
UNITTYPE_NPC - NPC object
UNITTYPE_PET - Pet object
UNITTYPE_HOM - Homunculus object
UNITTYPE_MER - Mercenary object
UNITTYPE_ELEM - Elemental object
BL_PC - Character object (default)
BL_NPC - NPC object
BL_PET - Pet object
BL_HOM - Homunculus object
BL_MER - Mercenary object
BL_ELEM - Elemental object
The search string is optional. If it is not specified, the location of the
invoking character will always be returned for types UNITTYPE_PC and UNITTYPE_PET,
the location of the NPC running this function for type 1.
The search value is optional. If it is not specified, the location of the
invoking character will always be returned for types BL_PC and BL_PET,
the location of the NPC running this function for type BL_NPC.
If a search string is specified, for types UNITTYPE_PC and UNITTYPE_NPC, the
character or NPC with the specified name will be located.
If a search value is specified, for types BL_PC and BL_NPC, the
character or NPC with the specified name or GID will be located.
If type is UNITTYPE_PET/UNITTYPE_HOM/UNITTYPE_MER/UNITTYPE_ELEM, the search
will locate the current object of the character who's name is given in the
search string, it will NOT locate the object by name.
If type is BL_PET/BL_HOM/BL_MER/BL_ELEM, the search
will locate the current object of the character who's name/GID is given in the
search value, it will NOT locate the object by name.
Example:
@ -3083,11 +3083,11 @@ Example:
prontera,164,299,3%TAB%script%TAB%Nyah%TAB%730,{
mes "My name is Nyah.";
mes "I will now search for Meh all across the world!";
if (getmapxy(@mapname$, @mapx, @mapy, UNITTYPE_NPC, "Meh") != 0) {
if (getmapxy(.@mapname$, .@mapx, .@mapy, BL_NPC, "Meh") != 0) {
mes "I can't seem to find Meh anywhere!";
close;
}
mes "And I found him on map " + @mapname$ + " at X:" + @mapx + " Y:" + @mapy + " !";
mes "And I found him on map " + .@mapname$ + " at X:" + .@mapx + " Y:" + .@mapy + " !";
close;
}
@ -3747,7 +3747,7 @@ list (cloak, cart, ruwach, etc). if flag is 1 (default when omitted),
the option will be added to what the character currently has; if 0, the option is removed.
This is definitely not a complete list of available option flag numbers. Ask a
core developer (or read the source: src/map/status.h) for the full list.
core developer (or read the source: src/map/status.hpp) for the full list.
---------------------------------------
@ -3921,7 +3921,7 @@ more:
*checkre(<type>)
Checks if a renewal feature is enabled or not in renewal.h, and returns 1 if
Checks if a renewal feature is enabled or not in renewal.hpp, and returns 1 if
enabled and 0 for disabled.
The renewal feature to check is determined by type.
@ -4283,7 +4283,7 @@ This command will change the job class of the invoking character.
This command does work with numbers, but you can also use job names. The full
list of job names and the numbers they correspond to can be found in
'src/map/script_constants.h'.
'src/map/script_constants.hpp'.
// This would change your player into a Swordman
jobchange Job_Swordman;
@ -4322,12 +4322,12 @@ class number system, but it's one that comes with constants which make it easy
to convert among classes. The command will return -1 if you pass it a job number
which doesn't have an eA job-number equivalent.
@eac = eaclass();
if ((@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
.@eac = eaclass();
if ((.@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
mes "Your base job is Swordman.";
if (@eac&EAJL_UPPER)
if (.@eac&EAJL_UPPER)
mes "You are a rebirth job.";
if ((@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
if ((.@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
mes "You must be a Swordman, Baby Swordman or High Swordman.";
For more information on the eA Job System, see the docs/ea_job_system.txt file.
@ -4343,16 +4343,16 @@ gender if none is given (if no player is attached, male will be used by default)
The command will return -1 if there is no valid class to represent the specified
job (for example, if you try to get the baby version of a Taekwon class).
@eac = eaclass();
.@eac = eaclass();
//Check if class is already rebirth
if (@eac&EAJL_UPPER) {
if (.@eac&EAJL_UPPER) {
mes "You look strong.";
close;
}
@eac = roclass(@eac|EAJL_UPPER);
.@eac = roclass(.@eac|EAJL_UPPER);
//Check if class has a rebirth version
if (@eac != -1) {
mes "Bet you can't wait to become a " + jobname(@eac) + "!";
if (.@eac != -1) {
mes "Bet you can't wait to become a " + jobname(.@eac) + "!";
close;
}
@ -4509,7 +4509,7 @@ you can look at: 'npc/custom/stylist.txt'
This command will push the currently attached player to given direction by given
amount of square cells. Direction is the same as used when declaring NPCs, and
can be specified by using one of the DIR_* constants (src/map/script_constants.h).
can be specified by using one of the DIR_* constants (src/map/script_constants.hpp).
The knock-back is not restricted by items or map flags, only obstacles are taken
into account. If there is not enough space to perform the push (e.g. due to a
@ -4633,24 +4633,24 @@ this. Careful, minor magic ahead.
// First, let's get an ID of a character who's name will be on the item.
// Only an existing character's name may be there.
// Let's assume our character is 'Adam' and find his ID.
@charid = getcharid(0,"Adam");
.@charid = getcharid(0,"Adam");
// Now we split the character ID number into two portions with a binary
// shift operation. If you don't understand what this does, just copy it.
@card3 = @charid & 65535;
@card4 = @charid >> 16;
.@card3 = .@charid & 65535;
.@card4 = .@charid >> 16;
// If you're inscribing non-equipment, @card1 must be 254.
// If you're inscribing non-equipment, .@card1 must be 254.
// Arrows are also not equipment.
@card1 = 254;
.@card1 = 254;
// For named equipment, card2 means the Star Crumbs and elemental
// crystals used to make this equipment. For everything else, it's 0.
@card2 = 0;
.@card2 = 0;
// Now, let's give the character who invoked the script some
// Adam's Apples:
getitem2 512,1,1,0,0,@card1,@card2,@card3,@card4;
getitem2 512,1,1,0,0,.@card1,.@card2,.@card3,.@card4;
This wasn't tested with all possible items, so I can't give any promises,
experiment first before relying on it.
@ -4661,21 +4661,21 @@ To create equipment, continue this example it like this:
// values so we'll just set up card1 and card2 with data
// for an Ice Stiletto.
// If you're inscribing equipment, @card1 must be 255.
@card1 = 255;
// If you're inscribing equipment, .@card1 must be 255.
.@card1 = 255;
// That's the number of star crumbs in a weapon.
@sc = 2;
.@sc = 2;
// That's the number of elemental property of the weapon.
@ele = 1;
.@ele = 1;
// And that's the wacky formula that makes them into
// a single number.
@card2 = @ele+((@sc*5)<<8);
.@card2 = .@ele+((.@sc*5)<<8);
// That will make us an Adam's +2 VVS Ice Stiletto:
getitem2 1216,1,1,2,0,@card1,@card2,@card3,@card4;
getitem2 1216,1,1,2,0,.@card1,.@card2,.@card3,.@card4;
Experiment with the number of star crumbs - I'm not certain just how much will
work most and what it depends on. The valid element numbers are:
@ -4844,7 +4844,7 @@ Example to get Crimson Weapon with Ghost property:
// when Valkyrie Randgris killed
OnNPCKillEvent:
if (killedrid == 1751 && rand(0,1000) > 950) { // Valkyrie Randgris
getmapxy(.@map$,.@x,.@y,UNITTYPE_PC);
getmapxy(.@map$,.@x,.@y,BL_PC);
setarray .@OptID[0],RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_HUMAN;
setarray .@OptVal[0],10,5;
setarray .@OptParam[0],0;
@ -5354,7 +5354,7 @@ Example:
These commands toggle the ability to use atcommand while interacting with an NPC.
The default setting, 'atcommand_enable_npc', is defined in 'conf/battle/gm.conf'.
The default setting, 'atcommand_disable_npc', is defined in 'conf/battle/gm.conf'.
---------------------------------------
//
@ -5634,8 +5634,8 @@ Used in reset NPC's (duh!)
These commands will bestow a status effect on a character.
The <effect type> determines which status is invoked. This can be either a number
or constant, with the common statuses (mostly negative) found in 'src/map/script_constants.h'
with the 'SC_' prefix. A full list is located in 'src/map/status.h', though
or constant, with the common statuses (mostly negative) found in 'src/map/script_constants.hpp'
with the 'SC_' prefix. A full list is located in 'src/map/status.hpp', though
they are not currently documented.
The duration of the status is given in <ticks>, or milleseconds.
@ -5920,7 +5920,7 @@ Types:
1: Buff
2: Debuff
Status_icon: See "Status Icon" section in 'src/map/script_constants.h'. Default is SI_BLANK (-1).
Status_icon: See "Status Icon" section in 'src/map/script_constants.hpp'. Default is SI_BLANK (-1).
Example:
// Apple gives you +5 Str bonus for 1 minute when it's consumed.
@ -6133,6 +6133,58 @@ Examples:
---------------------------------------
*setpcblock <type>,<state>{,<account ID>};
*getpcblock {<account ID>};
'setpcblock' command prevents/allows the player from doing the given <type> of action according
to the <state> during the player session (note: @reloadscript removes all <type> except PCBLOCK_IMMUNE).
The <type> values are bit-masks, multiples of <type> can be added to change the player action.
The action is blocked when the <state> is true, while false allows the action again.
'getpcblock' command return the bit-mask value of the currently
enabled block flags.
Available <type>:
PCBLOCK_MOVE Prevent the player from moving.
PCBLOCK_ATTACK Prevent the player from attacking.
PCBLOCK_SKILL Prevent the player from using skills/itemskills.
PCBLOCK_USEITEM Prevent the player from using usable items.
PCBLOCK_CHAT Prevent the player from sending global/guild/party/whisper messages.
PCBLOCK_IMMUNE Prevent the player from being hit by monsters.
PCBLOCK_SITSTAND Prevent the player from sitting/standing.
PCBLOCK_COMMANDS Prevent the player from using atcommands/charcommands.
PCBLOCK_NPCCLICK Prevent the player from clicking/touching any NPC/shop/warp.
PCBLOCK_EMOTION Prevent the player from using emotions.
PCBLOCK_NPC Simulate NPC interaction. Useful for NPC with no mes window. Sum of PCBLOCK_MOVE|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_NPCCLICK.
PCBLOCK_ALL Sum of all the flags.
Examples:
// Make the attached player invulnerable to monster (same as @monsterignore)
setpcblock PCBLOCK_IMMUNE, true;
// Prevents the attached player from attacking and using skills
setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL, true;
// Re-enables attack, skills and item use
setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM, false;
// getpcblock related checks
if (getpcblock() & PCBLOCK_IMMUNE)
mes "You are invulnerable!";
if (getpcblock() & (PCBLOCK_MOVE|PCBLOCK_SITSTAND))
mes "You can't walk or sit.";
if ((getpcblock() & (PCBLOCK_ATTACK|PCBLOCK_SKILL)) == 0)
mes "You can attack and use skills.";
if (getpcblock() & PCBLOCK_CHAT)
mes "You can't chat.";
---------------------------------------
==================================
|5.- Mob / NPC -related commands.|
==================================
@ -6756,7 +6808,7 @@ This command will broadcast a message to all or most players, similar to
The region the broadcast is heard in (target), source of the broadcast
and the color the message will come up as is determined by the flags.
The flag values are coded as constants in 'src/map/script_constants.h' to make them easier to use.
The flag values are coded as constants in 'src/map/script_constants.hpp' to make them easier to use.
Target flags:
- bc_all: Broadcast message is sent server-wide (default).
@ -7514,7 +7566,7 @@ must be used.
This command makes an object display an emotion sprite above their own as
if they were doing that emotion. For a full list of emotion numbers,
see 'src/map/script_constants.h' under 'ET_'. The not so obvious ones are 'ET_QUESTION'
see 'src/map/script_constants.hpp' under 'ET_'. The not so obvious ones are 'ET_QUESTION'
(a question mark) and 'ET_SURPRISE' (the exclamation mark).
The optional target parameter specifies who will get the emotion on top of
@ -7815,13 +7867,14 @@ it does.
Returns the type of object from the given Game ID. Returns -1 if the given GID does not
exist.
UNITTYPE_PC 0
UNITTYPE_NPC 1
UNITTYPE_PET 2
UNITTYPE_MOB 3
UNITTYPE_HOM 4
UNITTYPE_MER 5
UNITTYPE_ELEM 6
Return values:
BL_PC - Character object
BL_MOB - Monster object
BL_PET - Pet object
BL_HOM - Homunculus object
BL_MER - Mercenary object
BL_NPC - NPC object
BL_ELEM - Elemental object
---------------------------------------
@ -8119,7 +8172,7 @@ Parameter (indexes) for NPCs are:
*Notes:
- *_SIZE: small (0); medium (1); large (2)
- *_MAPID: this refers to the map_data index (from src/map/map.c), not the mapindex_db index (from src/common/mapindex.c)
- *_MAPID: this refers to the map_data index (from src/map/map.cpp), not the mapindex_db index (from src/common/mapindex.cpp)
-- For 'setunitdata', map name can also be passed in as a valid value instead of map ID
- *_SPEED: 20 - 1000
- *_MODE: see doc/mob_db_mode_list.txt
@ -8147,9 +8200,9 @@ Example:
monster "prontera",149,190,"Poring",1002,10;
.GID = $@mobid[9]; // Store and modify the 10th Poring spawned to make him stronger!
// Save the strong Poring's mob data in the @por_arr[] variable. (@por_arr[1] being level, @por_arr[13] being class, etc.)
// Save the strong Poring's mob data in the .@por_arr[] variable. (.@por_arr[1] being level, .@por_arr[13] being class, etc.)
// With this data we can have the NPC display or manipulate it how we want. This does not have to be ran before 'setunitdata'.
getunitdata .GID,@por_arr;
getunitdata .GID,.@por_arr;
// Set the max HP of the Poring to 1000 (current HP will also get updated to 1000).
setunitdata .GID,UMOB_MAXHP,1000;
@ -8706,7 +8759,7 @@ Each of these can be 'on' or 'off'. Together they define a cell's behavior.
This command lets you alter these flags for all map cells in the specified
(x1,y1)-(x2,y2) rectangle. The 'flag' can be 0 or 1 (0:clear flag, 1:set flag).
The 'type' defines which flag to modify. Possible options see 'src/map/script_constants.h'.
The 'type' defines which flag to modify. Possible options see 'src/map/script_constants.hpp'.
Example:
@ -8740,7 +8793,7 @@ remove a nonwalkable row of cells after the barricade mobs.
This command will return 1 or 0, depending on whether the specified cell has
the 'type' flag set or not. There are various types to check, all mimicking
the server's cell_chk enumeration. The types can be found in 'src/map/script_constants.h'.
the server's cell_chk enumeration. The types can be found in 'src/map/script_constants.hpp'.
The meaning of the individual types can be confusing, so here's an overview:
- cell_chkwall/water/cliff
@ -9194,6 +9247,10 @@ The player will also be warped to the default spawn point of the battle group or
<On Quit Event> refers to an NPC label that attaches to the character and is run when they relog. (Optional)
<On Death Event> refers to an NPC label that attaches to the character and is run when they die. (Optional)
If "-" is supplied for <map name> then the player will not automatically respawn after the 1 second delay.
This allows for better manipulation of <On Death Event>. The player will have to be warped to desired location
at the end of <On Death Event>.
Unlike the prior command, the latter will attach a GROUP in a waiting room to the battleground, and
sets the array $@arenamembers[0] where 0 holds the IDs of the first group, and 1 holds the IDs of the second.
@ -9214,6 +9271,10 @@ Creates an instance of battleground battle group that can be used with other bat
<On Quit Event> refers to an NPC label that attaches to the character and is run when they relog. (Optional)
<On Death Event> refers to an NPC label that attaches to the character and is run when they die. (Optional)
If "-" is supplied for <map name> then the player will not automatically respawn after the 1 second delay.
This allows for better manipulation of <On Death Event>. The player will have to be warped to desired location
at the end of <On Death Event>.
Returns battle group ID on success. Returns 0 on failure.
---------------------------------------
@ -9371,7 +9432,7 @@ monster as long as it is in the pet database and the targeted monster requires t
item used.
See 'doc/mob_db_mode_list.txt' for more information about monster modes.
A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.txt'.
A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.yml'.
---------------------------------------
@ -9379,7 +9440,7 @@ A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.txt'.
This command will create a pet egg and put it in the invoking character's
inventory. The kind of pet is specified by pet ID numbers listed in
'db/(pre-)re/pet_db.txt'. The egg is created exactly as if the character just successfully
'db/(pre-)re/pet_db.yml'. The egg is created exactly as if the character just successfully
caught a pet in the normal way.
// This will make you a poring:
@ -9397,16 +9458,40 @@ This function will return pet information for the pet the invoking character
currently has active. Valid types are:
PETINFO_ID - Pet ID
PETINFO_CLASS - Pet class number as per 'db/(pre-)re/pet_db.txt' - will tell you what kind of a pet it
is.
PETINFO_CLASS - Pet class number as per 'db/(pre-)re/pet_db.yml' - will tell you what kind of a pet it is.
PETINFO_NAME - Pet name. Will return "null" if there's no pet.
PETINFO_INTIMATE - Pet friendly level (intimacy score). 1000 is full loyalty.
PETINFO_HUNGRY - Pet hungry level. 100 is completely full.
PETINFO_HUNGRY - Pet hungry level. 100 is full hunger.
PETINFO_RENAMED - Pet rename flag. 0 means this pet has not been named yet.
PETINFO_LEVEL - Pet level
PETINFO_BLOCKID - Pet Game ID
PETINFO_EGGID - Pet egg item id
PETINFO_FOODID - Pet food item id
PETINFO_EGGID - Pet egg item ID
PETINFO_FOODID - Pet food item ID
PETINFO_INTIMATE can be used with the following constants for checking values:
PET_INTIMATE_NONE = 0
PET_INTIMATE_AWKWARD = 1 ~ 99
PET_INTIMATE_SHY = 100 ~ 249
PET_INTIMATE_NEUTRAL = 250 ~ 749
PET_INTIMATE_CORDIAL = 750 ~ 909
PET_INTIMATE_LOYAL = 910 ~ 1000
PETINFO_HUNGRY can be used with the following constants for checking values:
PET_HUNGRY_NONE = 0
PET_HUNGRY_VERY_HUNGRY = 1 ~ 10
PET_HUNGRY_HUNGRY = 11 ~ 25
PET_HUNGRY_NEUTRAL = 26 ~ 75
PET_HUNGRY_SATISFIED = 76 ~ 90
PET_HUNGRY_STUFFED = 91 ~ 100
Example:
mes "[Vet]";
mes "Your pet + " getpetinfo(PETINFO_NAME);
if (getpetinfo(PETINFO_INTIMATE) < PET_INTIMATE_LOYAL)
mes "has some growing to do on you!";
else
mes "seems to love you very much!";
close;
---------------------------------------
@ -9461,7 +9546,7 @@ NOTE: Currently ONLY supported for bonuses that used by 'bonus' script.
This command will make the pet cure a specified status condition. The curing
actions will occur once every Delay seconds. For a full list of status
conditions that can be cured, see the list of 'SC_' status condition constants
in 'src/map/script_constants.h'.
in 'src/map/script_constants.hpp'.
---------------------------------------
@ -9945,7 +10030,7 @@ solution rather than sending the map and the monster_id.
This will set a Hat Effect onto the player. The state field allows you to
enable (true) or disable (false) the effect on the player.
The Hat Effect constants can be found in 'src/map/script_constants.h' starting
The Hat Effect constants can be found in 'src/map/script_constants.hpp' starting
with HAT_EF_*.
Requires client 2015-05-13aRagEXE or newer.

View File

@ -128,8 +128,8 @@ RequiredStatuses: The active statuses needed to use the skill.
Up to 3 ':'-separated values can be used, e.g.
SC_STATUS1:SC_STATUS2:SC_STATUS3
See MAX_SKILL_STATUS_REQUIRE in 'src/map/skill.h' to modify the max number
of possible values, and 'db/const.txt' for a list of status constants.
See MAX_SKILL_STATUS_REQUIRE in 'src/map/skill.hpp' to modify the max number
of possible values, and 'src/map/script_constants.hpp' for a list of status constants.
Use any number or SC_ALL to disable status requirements.
@ -153,11 +153,11 @@ RequiredEquipment: Specific equipment IDs needed to use the skill.
Up to 10 ':'-separated values can be used, e.g.
item1:item2:item3
See MAX_SKILL_EQUIP_REQUIRE in 'src/map/skill.h' to modify the max number
See MAX_SKILL_EQUIP_REQUIRE in 'src/map/skill.hpp' to modify the max number
of possible values.
---------------------------------------
NOTE: On some fields, the ':' delimiter means for each skill level, but there
are some level dependent checks. See 'skill_get_requirement()' in
'src/map/skill.c'.
'src/map/skill.cpp'.

View File

@ -191,17 +191,17 @@ The following list describes each module and its purpose.
malloc handles runtime memory allocation (so that memory manager could check for leaks)
mapindex handles the processing and reading of the mapcache.dat
md5calc offers md5 encryption
mmo.h common structures and defines across serv
mmo.hpp common structures and defines across serv
msg_conf handles msg in src from configuration
nullpo checks and dumps info for debug mode
random generation of random numbers
showmsg display messages in console with a certain color
socket handling of sockets (listening, close, open, etc.)
sql.c MySQL database proxy
strlib.c string handling
timer.c timer-related functions
utils.c misc functions
winapi.h Windows redefine and include
sql.cpp MySQL database proxy
strlib.cpp string handling
timer.cpp timer-related functions
utils.cpp misc functions
winapi.hpp Windows redefine and include
==============
| Login-serv |
@ -265,7 +265,7 @@ The following list describes each module and its purpose.
guild functions for the guild system
homunculus functions for Alchemist Homunculi processing (create, delete, get stats, death, etc.)
instance functions for instance system
intif map-serv <=> inter-serv interface (meant to communicate with 'char/inter.c' or its submodules)
intif map-serv <=> inter-serv interface (meant to communicate with 'char/inter.cpp' or its submodules)
itemdb functions for the item database
log functions for server log system
mail functions for mail system
@ -286,7 +286,7 @@ The following list describes each module and its purpose.
searchstore functions for the Vendor Shop Search feature
skill functions for skills (skill_casttime calculation, skill behaviours, skill_chk_cast, requirement checks, 'db/skill_*.txt' processing)
status functions for statuses on a bl (add, remove, calculation of effects as a temporary bonus)
status is a struct available by most units as common attributes (bl_type only attribute are dealt in bl specific files, like 'pc.c' or 'mob.c')
status is a struct available by most units as common attributes (bl_type only attribute are dealt in bl specific files, like 'pc.cpp' or 'mob.cpp')
storage functions for the storage system: Kafra, cart, guild, inventory (add, transfer, remove items between containers)
also ensures container mutex (e.g. guild_storage) and preparation for save requests
trade functions to perform a trade (request, accept, add items/Zeny, checks, complete trade)
@ -300,7 +300,7 @@ The following are standard naming conventions used by rAthena.
Type Prefix Example
---- ------ -------
function module_ pc_addspiritball -> located in pc.c file
function module_ pc_addspiritball -> located in pc.cpp file
structure s_ s_quest_db
enum e_ e_race
status SC_ SC_INTOABYSS
@ -347,7 +347,7 @@ The following variables are commonly used in the source code.
===============
| 8. Building |
===============
When adding a new src file or library (new.c and its header, new.h), you'll also
When adding a new src file or library (new.cpp and its header, new.hpp), you'll also
need to update the following files to fully integrate it into the project so that
users can compile it.

View File

@ -250,7 +250,7 @@ bat_room,148,150,5 script Teleporter#Battlefield 124,{
mes "[Maroll Battle Recruiter]";
mes "May the war god bless you.";
close2;
getmapxy(.@mapname$,.@x,.@y,UNITTYPE_NPC);
getmapxy(.@mapname$,.@x,.@y,BL_NPC);
if (.@mapname$ == "prontera")
set bat_return,1;
else if (.@mapname$ == "moc_ruins")

View File

@ -19,15 +19,15 @@
//============================================================
bat_room,151,144,3 script KVM Logistic Officer#a 734,{
if (countitem(7773)) {
set .@pointstoadd,countitem(7773);
delitem 7773,.@pointstoadd;
if (countitem(6376)) {// KVM_Badge
set .@pointstoadd,countitem(6376);
delitem 6376,.@pointstoadd;
set kvm_point,kvm_point+.@pointstoadd;
mes "[Logistics]";
mes "Are those "+getitemname(7773)+"s I see?";
mes "Are those "+getitemname(6376)+"s I see?";
mes "We no longer accept that currency,";
mes "but I can exchange those for you,";
mes "So you have "+.@pointstoadd+" "+getitemname(7773)+"s?";
mes "So you have "+.@pointstoadd+" "+getitemname(6376)+"s?";
mes "Alright, all set, you now have ^580080"+ kvm_point +"^000000 KVM Points.";
next;
}

View File

@ -1,20 +1,13 @@
//===== rAthena Script =======================================
//= Prontera Town
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 2.1
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= [Official Conversion]
//= NPCs in Prontera
//===== Additional Comments: =================================
//= Fully working
//= +AntiNovice exploit fix [Lupus] 1.2 added baby novice check
//= Spellchecked [massdriller]
//===== Changelogs: ==========================================
//= 1.0 Initial release [kobra_k88]
//= 1.2 added baby novice check [Lupus]
//= 1.3 Spellchecked [massdriller]
//= 1.4 Optimized. Novices > 20 BaseJob can go to Culvert, too [Lupus]
//= 1.5a Added a Jawaii related npc [MasterOfMuppets]
//= 1.5 Added a Jawaii related npc [MasterOfMuppets]
//= 1.6 Replaced sewer_prt with (MISC_QUEST & 8) [Lupus]
//= 1.7 Removed Duplicates [Silent]
//= 1.8 Moved Culvert to quests/quests_prontera.txt
@ -25,7 +18,7 @@
// Prontera
//============================================================
prontera,160,330,0 script Guard#pront::prtguard 105,{
- script Guard#pront::prtguard 105,{
mes "[Prontera Guard]";
mes "Welcome to Prontera.";
close;

View File

@ -1,17 +1,12 @@
//===== rAthena Script =======================================
//= Battleground: Emperium
//===== By: ==================================================
//= AnnieRuru
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= A simple battleground script:
//= Destroy the opponent's Emperium to win the match.
//===== Additional Comments: =================================
//= 1.0 First version, edited. [Euphy]
//===== Changelogs: ==========================================
//= 1.0 First version, edited. [Euphy] [AnnieRuru]
//= 1.1 Use up to date battleground script commands [AnnieRuru]
//= 1.2 Fix player can be kill multiple times within 250ms time frame [AnnieRuru]
//============================================================
- script bg_emp#control -1,{
@ -26,8 +21,8 @@ OnStart:
end;
// create Battleground and teams
.red = waitingroom2bg( "bat_a01", 157,347, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
.blue = waitingroom2bg( "bat_a01", 142,51, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
.red = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
.blue = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
delwaitingroom .rednpcname$;
delwaitingroom .bluenpcname$;
setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
@ -84,9 +79,10 @@ L_EmpDown:
end;
// "OnDeath" event
OnRedDead:
OnBlueDead:
sleep2 1250;
OnRedDead: callsub L_Dead, 157,347;
OnBlueDead: callsub L_Dead, 142,51;
L_Dead:
warp "bat_a01", getarg(0), getarg(1);
percentheal 100,100;
end;

View File

@ -331,7 +331,7 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;
@ -369,7 +369,7 @@ bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 415,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;

View File

@ -331,7 +331,7 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;
@ -369,7 +369,7 @@ bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 415,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;

View File

@ -331,7 +331,7 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;
@ -369,7 +369,7 @@ bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 415,{
}
setquest 6025;
getitem 7773, .@Reward;
getitem 6376, .@Reward;
bg_leave;
warp "bat_room",155,150;
end;

View File

@ -107,7 +107,7 @@ OnClock2200:
disablenpc "ord11-12"; //from npc/warps/pvp.txt
disablenpc "Devil Square Guardian#2";
mapannounce "ordeal_1-1","Devil Square is now closed.", bc_map;
getmapxy .@map$, .@x, .@y, UNITTYPE_NPC;
getmapxy .@map$, .@x, .@y, BL_NPC;
mapwarp "ordeal_1-1", .@map$, .@x, .@y;
killmonsterall "ordeal_1-1";
announce "Devil Square is OPEN. The event will begin in 5 minutes.", bc_all;

View File

@ -311,7 +311,7 @@ OnInit:
// Config Ends --------------------------------------------------------------
mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map;
getmapxy .map$, .x, .y, UNITTYPE_NPC;
getmapxy .map$, .x, .y, BL_NPC;
mapwarp .eventmap$, .map$, .x, .y;
killmonsterall .eventmap$;
.@size = getarraysize( .@mapflag );

View File

@ -132,7 +132,7 @@ function Job_Options {
.@rebirth_possible = Can_Rebirth();
.@first_eac = .@eac&EAJ_BASEMASK;
.@second_eac = .@eac&EAJ_UPPERMASK;
// Note: These are already set in pc.c
// Note: These are already set in pc.cpp
// BaseClass = roclass(.@eac&EAJ_BASEMASK) which is the players First Class
// BaseJob = roclass(.@eac&EAJ_UPPERMASK) which is the players Second Class
//dispbottom "Debug: eac ("+.@eac+"), third ("+.@third_possible+"), rebirth("+.@rebirth_possible+"), BaseClass ("+BaseClass+"), BaseJob ("+BaseJob+")";

View File

@ -1436,7 +1436,7 @@ OnInstanceInit:
"Geffen Festivities.";
close2;
cutin "",255;
getitem 6671,20;
getitem 6671,'reward[getarraysize('reward[0]) - 1];
warp instance_mapname("1@gef"), 120,35;
end;
case 2:

View File

@ -23,7 +23,7 @@
//= Syntax updates and style cleaning.
//============================================================
prontera,152,187,6 script Hunting Missions 951,{
prontera,152,187,6 script Hunting Missions 4_F_EDEN_MASTER,{
function Chk;
mes "[Hunting Missions]";
mes "Hello, " + strcharinfo(0) + "!";
@ -39,11 +39,11 @@ function Chk;
#Mission_Delay = 1;
close;
}
mes rand(2) ? "Working hard, as always..." : "Not slacking, I hope...";
mes F_Rand("Working hard, as always...", "Not slacking, I hope...");
mes "Is there anything I can help";
mes "you with?";
mes " ";
mes "^777777~ You've completed " + callfunc("F_InsertPlural",Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000";
mes "^777777~ You've completed " + F_InsertPlural(Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000";
next;
switch(select(
((!Mission0) ? " ~ New Mission::" : ": ~ Mission Status: ~ Abandon Mission") +
@ -65,12 +65,12 @@ function Chk;
emotion ET_SCRATCH;
#Mission_Count = 0;
}
@hm_char_del_check = 1;
@hm_char_del_check = true;
}
close;
}
if (#Mission_Delay > gettimetick(2) && .Delay) {
mes "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission.";
mes "I'm afraid you'll have to wait " + Time2Str(#Mission_Delay) + " before taking another mission.";
close;
}
mes "You must hunt:";
@ -99,7 +99,7 @@ function Chk;
if (.Reset < 0 && .Delay)
mes "Your delay time will not be reset.";
else if (.Reset > 0)
mes "It will cost " + callfunc("F_InsertComma",.Reset) + " Zeny.";
mes "It will cost " + F_InsertComma(.Reset) + " Zeny.";
next;
switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {
case 1:
@ -159,7 +159,7 @@ function Chk;
end;
Mission_Status:
@f = 0;
@f = false;
deletearray .@j[0], getarraysize(.@j);
for (.@i = 0; .@i < .Quests; .@i++) {
.@j[.@i] = getd("Mission" + .@i);
@ -179,11 +179,11 @@ Mission_Status:
mes "[Hunting Missions]";
mes "Mission rewards:";
mes " > Mission Points: ^0055FF" + .@Mission_Points + "^000000";
mes " > Base Experience: ^0055FF" + callfunc("F_InsertComma",.@Base_Exp) + "^000000";
mes " > Job Experience: ^0055FF" + callfunc("F_InsertComma",.@Job_Exp) + "^000000";
mes " > Zeny: ^0055FF" + callfunc("F_InsertComma",.@Zeny) + "^000000";
mes " > Base Experience: ^0055FF" + F_InsertComma(.@Base_Exp) + "^000000";
mes " > Job Experience: ^0055FF" + F_InsertComma(.@Job_Exp) + "^000000";
mes " > Zeny: ^0055FF" + F_InsertComma(.@Zeny) + "^000000";
if (@f) {
@f = 0;
@f = false;
return;
}
next;
@ -235,35 +235,32 @@ Mission_Info:
function Chk {
if (getarg(0) < getarg(1)) {
@f = 1;
@f = true;
return "^FF0000";
} else
return "^00FF00";
}
OnBuyItem:
@cost = 0;
for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++)
for (.@j = 0; .@j < getarraysize(.Shop); .@j += 2)
if (@bought_nameid[.@i] == .Shop[.@j]) {
set @cost, @cost + (.Shop[.@j+1] * @bought_quantity[.@i]);
break;
}
.@size = getarraysize(@bought_nameid);
for (.@i = 0; .@i < .@size; .@i++) {
.@j = inarray(.Shop, @bought_nameid[.@i]);
.@cost += (.Shop[.@j+1] * @bought_quantity[.@i]);
}
mes "[Hunting Missions]";
if (@cost > #Mission_Points)
if (.@cost > #Mission_Points)
mes "You don't have enough Mission Points.";
else {
for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++) {
for (.@i = 0; .@i < .@size; .@i++) {
getitem @bought_nameid[.@i], @bought_quantity[.@i];
dispbottom "Purchased " + @bought_quantity[.@i] + "x " + getitemname(@bought_nameid[.@i]) + ".";
}
#Mission_Points -= @cost;
#Mission_Points -= .@cost;
mes "Deal completed.";
emotion ET_MONEY;
}
@cost = 0;
deletearray @bought_nameid[0], getarraysize(@bought_nameid);
deletearray @bought_quantity[0], getarraysize(@bought_quantity);
deletearray @bought_nameid[0], .@size;
deletearray @bought_quantity[0], .@size;
close;
OnNPCKillEvent:
@ -280,7 +277,7 @@ OnNPCKillEvent:
}
} else if (.Party) {
.@mob = killedrid;
getmapxy(.@map1$,.@x1,.@y1,UNITTYPE_PC);
getmapxy(.@map1$,.@x1,.@y1);
getpartymember getcharid(1),1;
getpartymember getcharid(1),2;
for (.@i = 0; .@i < $@partymembercount; .@i++) {
@ -290,7 +287,7 @@ OnNPCKillEvent:
set .@HP, readparam(HP, $@partymembercid[.@i]);
if (.@Mission_Count && .@Mission0 && .@HP > 0) {
getmapxy(.@map2$,.@x2,.@y2,UNITTYPE_PC);
getmapxy(.@map2$,.@x2,.@y2,BL_PC,rid2name($@partymemberaid[.@i]));
if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {
for (.@j = 0; .@j < .Quests; .@j++) {
.@my_mob_id = getvar( getd("Mission"+.@j),$@partymembercid[.@i] );

View File

@ -3,27 +3,28 @@
//===== By: ==================================================
//= tr0n
//===== Current Version: =====================================
//= 1.4.4
//===== Compatible With: =====================================
//= rAthena Project
//= 1.6.5
//===== Description: =========================================
//= Easily add collection and hunting quests.
//===== Additional Comments: =================================
//===== Changelogs: ==========================================
// 1.0.0 Release
// 1.1.0 Added zeny reward
// 1.2.0 Rewrote checkmob and killcounter
// 1.3.1 Added level restriction
// 1.3.4 Added Reward Item Amount
// 1.4.4 Added Quest delay
// 1.5.4 Added repeatable Quests
// 1.6.4 Added party support
// 1.6.5 Bug fixes for party support
//============================================================
prontera,129,215,5 script Questboard 4_BOARD3,{
prontera,129,215,5 script Questboard 857,{
if(c_run==1){
if(c_run==true){
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000";
mes "--------------------------------";
for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_collectionitem")); set .@j,.@j+2) {
set .@size, getarraysize(getd("."+ currentquest$ + "_collectionitem"));
for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
@ -37,17 +38,18 @@ prontera,129,215,5 script Questboard 857,{
mes "[^FF7700Questboard^000000]";
mes "Quest aborted.";
set currentquest$, "";
set c_run, 0;
set c_run, false;
close;
}
goto L_checkitems;
}
if(h_run==1){
if(h_run==true){
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000";
mes "--------------------------------";
for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_huntingmob")); set .@j,.@j+2) {
set .@size, getarraysize(getd("."+ currentquest$ + "_huntingmob"));
for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@j)+"]");
mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["+.@j+"]"))+" - "+getd(currentquest$+"_"+.@currentmob+"_"+(.@j+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
}
@ -61,136 +63,150 @@ prontera,129,215,5 script Questboard 857,{
if(select("Finish:Abort") == 2){
mes "[^FF7700Questboard^000000]";
mes "Quest aborted.";
for(set .@x, 1; .@x < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@x,.@x+2){
for(set .@x, 1; .@x < .@size; set .@x,.@x+2){
set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
}
set currentquest$, "";
set h_run, 0;
set h_run, false;
close;
}
goto L_checkmobs;
}
L_questmenu:
mes "[^FF7700Questboard^000000]";
mes "Select category:";
next;
switch(select((.collection)?"Collection Quests":"",
(.hunting)?"Hunting Quests":"",
"Exit")) {
case 1:
set .@collectmenu$, "";
for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1) {
if (.@i) set .@collectmenu$,.@collectmenu$+":";
set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$");
}
set .@selection,select(.@collectmenu$);
if(gettimetick(2) < getd(.@selection + "_collection_delay")){
set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2);
case 1:
set .@collectmenu$, "";
for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1){
if (.@i) set .@collectmenu$,.@collectmenu$+":";
set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$");
}
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.";
close;
}
}
else{
if(getd(.@selection + "_collection_repeat") == true){
mes "[^FF7700Questboard^000000]";
mes "You already did this quest.";
mes "Please choose another one.";
close;
}
}
mes "[^FF7700Questboard^000000]";
if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
close;
}
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000";
mes "--------------------------------";
for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_collectionitem")); set .@j,.@j+2) {
mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax"))
{
mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000";
mes "--------------------------------";
set .@size, getarraysize(getd("."+ .@selection + "_collectionitem"));
for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")){
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set c_run, true;
set currentquest$, .@selection;
close;
}
else{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 2:
set .@huntmenu$, "";
for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1){
if (.@i) set .@huntmenu$,.@huntmenu$+":";
set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$");
}
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.";
close;
}
}
else{
if(getd(.@selection + "_hunting_repeat") == true){
mes "[^FF7700Questboard^000000]";
mes "You already did this quest.";
mes "Please choose another one.";
close;
}
}
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set c_run, 1;
set currentquest$, .@selection;
mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000";
mes "--------------------------------";
set .@size, getarraysize(getd("."+ .@selection + "_huntingmob"));
for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")){
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set h_run, true;
set currentquest$, .@selection;
close;
}
else{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 3:
close;
}
else
{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 2:
set .@huntmenu$, "";
for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1) {
if (.@i) set .@huntmenu$,.@huntmenu$+":";
set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$");
}
set .@selection,select(.@huntmenu$);
if(gettimetick(2) < getd(.@selection + "_hunting_delay")){
set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2);
mes "[^FF7700Questboard^000000]";
if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
close;
}
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000";
mes "--------------------------------";
for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_huntingmob")); set .@j,.@j+2) {
mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax"))
{
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set h_run, 1;
set currentquest$, .@selection;
close;
}
else
{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 3:
close;
}
L_checkitems:
for( set .@k,0; .@k < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@k,.@k+2) {
set .@size, getarraysize(getd("."+currentquest$+"_collectionitem"));
for( set .@k,0; .@k < .@size; set .@k,.@k+2){
if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){
set .@checkitem,.@checkitem+2;
}
}
if(.@checkitem<getarraysize(getd("."+currentquest$+"_collectionitem"))){
if(.@checkitem<.@size){
mes "[^FF7700Questboard^000000]";
mes "You don't have everything.";
close;
}
for( set .@delcount,0; .@delcount < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@delcount,.@delcount+2) {
for( set .@delcount,0; .@delcount < .@size; set .@delcount,.@delcount+2){
delitem getd("."+currentquest$+"_collectionitem["+.@delcount+"]"),getd("."+currentquest$+"_collectionitem["+(.@delcount+1)+"]");
}
mes "[^FF7700Questboard^000000]";
@ -199,13 +215,15 @@ L_checkitems:
set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny");
getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]");
setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay;
setd(currentquest$ + "_collection_repeat"),true;
set currentquest$, "";
set c_run, 0;
set c_run, false;
close;
L_checkmobs:
set .@goal, (getarraysize(getd("."+currentquest$+"_huntingmob"))/2);
for(set .@i, 1; .@i < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@i,.@i+2){
set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
set .@goal, .@size/2;
for(set .@i, 1; .@i < .@size; set .@i,.@i+2){
set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")==getd("."+currentquest$+"_huntingmob["+.@i+"]")){
set .@checkmonster, .@checkmonster+1;
@ -216,7 +234,7 @@ L_checkmobs:
}
goto L_checkmobs2;
}
L_checkmobs2:
if(.@checkmonster<.@goal){
mes "[^FF7700Questboard^000000]";
@ -225,7 +243,8 @@ L_checkmobs2:
}
mes "[^FF7700Questboard^000000]";
mes "Congratulation! Here is your Reward.";
for(set .@x, 1; .@x < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@x,.@x+2){
set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
for(set .@x, 1; .@x < .@size; set .@x,.@x+2){
set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
}
@ -233,92 +252,127 @@ L_checkmobs2:
set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny");
getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]");
setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay;
setd(currentquest$ + "_hunting_repeat"),true;
set currentquest$, "";
set h_run, 0;
set h_run, false;
close;
OnNPCKillEvent:
if(h_run!=1) end;
for(set .@i, 1; .@i < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@i,.@i+2){
if(h_run!=true) end;
set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
for(set .@i, 1; .@i < .@size; set .@i,.@i+2){
if(killedrid==getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]")){
set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")>=getd("."+currentquest$+"_huntingmob["+.@i+"]")) end;
setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1);
dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")";
end;
if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")<getd("."+currentquest$+"_huntingmob["+.@i+"]")){
setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1);
dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")";
}
if(getcharid(1) != 0 && .party_support == true){
getmapxy(.@map1$,.@x1,.@y1);
set .@killerid, getcharid(3);
set .@currentquest$, currentquest$;
getpartymember getcharid(1),1;
getpartymember getcharid(1),2;
for(set .@j, 0; .@j < $@partymembercount; .@j++){
if(isloggedin($@partymemberaid[.@j], $@partymembercid[.@j])){
if(h_run==true && $@partymemberaid[.@j] != .@killerid && .@currentquest$ == getvar(currentquest$, $@partymembercid[.@j]) && readparam(HP, $@partymembercid[.@j]) > 0){
getmapxy(.@map2$,.@x2,.@y2,BL_PC,rid2name($@partymemberaid[.@j]));
if(.@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) < .party_range){
set .@kill_amt,getvar(getd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount"), $@partymembercid[.@j]);
set .@kill_goal,getd("."+.@currentquest$+"_huntingmob["+.@i+"]");
if(.@kill_amt<.@kill_goal)
{
setd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", .@kill_amt+1, $@partymembercid[.@j]);
dispbottom getd("."+.@currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+(.@kill_amt+1)+"/"+.@kill_goal+")", 0xB6FF00, $@partymembercid[.@j];
}
}
}
}
}
}
break;
}
continue;
}
end;
OnInit:
function AddCollection;
function AddHunting;
//Activate/Deactive quest categories here
set .collection, 1;
set .hunting, 1;
//Activate/Deactivate quest categories (true/1 - activated, false/0 - deactivated)
set .collection, true;
set .hunting, true;
//Quest Delay (seconds)
//24 hours = 86400 seconds
set .quest_delay, 0;
//Activate/Deactivate repeatable quests (true/1 - activated, false/0 - deactivated)
set .quest_repeat, true;
//Activate/Deactivate party support (true/1 - activated, false/0 - deactivated)
set .party_support, true;
//Max range for party support (+- x & y coordinations)
set .party_range, 25;
//Checks if quests are loaded (prevents out of index)
if(.questsloaded==1) end;
set .questsloaded, 1;
//Add Collection Quests here
//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);
//Add Hunting Quests here
//AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...);
end;
if(.questsloaded==true) end;
set .questsloaded, true;
function AddCollection {
set .collectionquestcount,.collectionquestcount+1;
setd ("." +.collectionquestcount+"_collectionname$", getarg(0));
setd ("." +.collectionquestcount+"_collectionmin", getarg(1));
setd ("." +.collectionquestcount+"_collectionmax", getarg(2));
setd ("." +.collectionquestcount+"_collectionprize", getarg(3));
setd ("." +.collectionquestcount+"_collectionamount", getarg(4));
setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
set .@argcount, 6;
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount,.@argcount+2;
}
return;
}
//Add Collection Quests here (You can add as many required items as you want)
//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);
function AddHunting {
set .huntingquestcount,.huntingquestcount+1;
setd ("." +.huntingquestcount+"_huntingname$", getarg(0));
setd ("." +.huntingquestcount+"_huntingmin", getarg(1));
setd ("." +.huntingquestcount+"_huntingmax", getarg(2));
setd ("." +.huntingquestcount+"_huntingprize", getarg(3));
setd ("." +.huntingquestcount+"_huntingamount", getarg(4));
setd ("." +.huntingquestcount+"_huntingzeny", getarg(5));
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
set .@argcount, 6;
setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
//Add Hunting Quests here (You can add as many required mobs as you want)
//AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...);
end;
function AddCollection{
set .collectionquestcount,.collectionquestcount+1;
setd ("." +.collectionquestcount+"_collectionname$", getarg(0));
setd ("." +.collectionquestcount+"_collectionmin", getarg(1));
setd ("." +.collectionquestcount+"_collectionmax", getarg(2));
setd ("." +.collectionquestcount+"_collectionprize", getarg(3));
setd ("." +.collectionquestcount+"_collectionamount", getarg(4));
setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
set .@argcount, 6;
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){
setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount,.@argcount+2;
set .@size, .@size+2;
}
return;
}
function AddHunting{
set .huntingquestcount,.huntingquestcount+1;
setd ("." +.huntingquestcount+"_huntingname$", getarg(0));
setd ("." +.huntingquestcount+"_huntingmin", getarg(1));
setd ("." +.huntingquestcount+"_huntingmax", getarg(2));
setd ("." +.huntingquestcount+"_huntingprize", getarg(3));
setd ("." +.huntingquestcount+"_huntingamount", getarg(4));
setd ("." +.huntingquestcount+"_huntingzeny", getarg(5));
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
set .@argcount, 6;
setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){
setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
set .@size, .@size+2;
}
return;
}
return;
}
}

View File

@ -244,7 +244,7 @@ prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 706,2,2
mes "[Halloween Wizard]";
mes "Which town do you want to play a trick on?";
next;
getmapxy(.@mapname$,.@mapx,.@mapy,UNITTYPE_PC,""+strcharinfo(0)+"");
getmapxy(.@mapname$,.@mapx,.@mapy,BL_PC,""+strcharinfo(0)+"");
if (.@mapname$ == "prontera") {
switch(select("Geffen:Payon:Alberta:Aldebaran")) {
case 1:

View File

@ -1353,35 +1353,35 @@ OnEnable:
if (compare(strnpcinfo(2),"arug")) {
if (strnpcinfo(2) == "arug_cas01") {
setarray .@w[0],195,250,292,188;
setarray .x[0],233,252,232,201,224,196,269,252,201,224,222, 294,256,240,246,235,235,246,240,256,254,242;
setarray .y[0], 83, 81,108,130,168,137, 89, 81,130,168,129, 210,203,133, 92,132,132, 92,133,203, 95,151;
setarray .@x[0],233,252,232,201,224,196,269,252,201,224,222, 294,256,240,246,235,235,246,240,256,254,242;
setarray .@y[0], 83, 81,108,130,168,137, 89, 81,130,168,129, 210,203,133, 92,132,132, 92,133,203, 95,151;
}
else if (strnpcinfo(2) == "arug_cas02") {
setarray .@w[0],20,169,268,169;
setarray .x[0],104,67,67,113,122,67, 90, 91,122, 20,67, 175,204,211,209,161,186,183,150,161,209,211;
setarray .y[0], 32,36,85, 87,112,60,167,119,112,169,85, 31, 32, 63, 88, 91,170,121,110, 91, 88, 63;
setarray .@x[0],104,67,67,113,122,67, 90, 91,122, 20,67, 175,204,211,209,161,186,183,150,161,209,211;
setarray .@y[0], 32,36,85, 87,112,60,167,119,112,169,85, 31, 32, 63, 88, 91,170,121,110, 91, 88, 63;
}
else { // Castles 3,4,5 are identical.
setarray .@w[0],66,157,211,159;
setarray .x[0],130,128,128,128,110,91,65, 65,110,128,128, 156,172,154,156,155,187,212,211,155,156,172;
setarray .y[0], 60, 77, 90,100, 96,53,71,103, 96,100, 77, 101, 95, 90, 77, 60, 54, 67,105, 60, 77, 95;
setarray .@x[0],130,128,128,128,110,91,65, 65,110,128,128, 156,172,154,156,155,187,212,211,155,156,172;
setarray .@y[0], 60, 77, 90,100, 96,53,71,103, 96,100, 77, 101, 95, 90, 77, 60, 54, 67,105, 60, 77, 95;
}
}
else {
if (strnpcinfo(2) == "schg_cas02") {
setarray .@w[0],337,95,307,222;
setarray .x[0],326,337,334,296,285,236,285,296,334,337,334, 359,300,337,317,307,300,337,317,307,359,236;
setarray .y[0], 83, 95,119, 82, 40, 41, 40, 82,119, 95,119, 85,119,154,183,222,119,154,183,222, 85, 41;
setarray .@x[0],326,337,334,296,285,236,285,296,334,337,334, 359,300,337,317,307,300,337,317,307,359,236;
setarray .@y[0], 83, 95,119, 82, 40, 41, 40, 82,119, 95,119, 85,119,154,183,222,119,154,183,222, 85, 41;
}
else if (strnpcinfo(2) == "schg_cas03") {
setarray .@w[0],306,325,364,305;
setarray .x[0],323,273,288,306,323,323,273,288,306,273,273, 338,364,365,317,338,338,364,365,317,364,329;
setarray .y[0],308,309,306,326,308,308,309,306,325,309,309, 309,305,261,318,310,309,305,261,318,305,314;
setarray .@x[0],323,273,288,306,323,323,273,288,306,273,273, 338,364,365,317,338,338,364,365,317,364,329;
setarray .@y[0],308,309,306,326,308,308,309,306,325,309,309, 309,305,261,318,310,309,305,261,318,305,314;
}
else { // Castles 1,4,5 are identical.
setarray .@w[0],108,32,128,42,187,15; // Contains an extra pair, for whatever reason.
setarray .x[0],111,109,65,110,88,64,47,109,111,112,120, 130,129,151,187,128,152,187,128,130,130,151;
setarray .y[0], 18, 44,22, 40,20,40,43, 48, 18, 32, 37, 22, 47, 18, 15, 42, 43, 15, 42, 22, 28, 18;
setarray .@x[0],111,109,65,110,88,64,47,109,111,112,120, 130,129,151,187,128,152,187,128,130,130,151;
setarray .@y[0], 18, 44,22, 40,20,40,43, 48, 18, 32, 37, 22, 47, 18, 15, 42, 43, 15, 42, 22, 28, 18;
}
}
if (charat(strnpcinfo(1),4) == "2") set .@z,11;

View File

@ -1034,7 +1034,10 @@ spl_in01,104,56,3 script Aide Arioss#edq 437,3,3,{
next;
mes "[Aide Arioss]";
mes "It can't compare with the effort you have put in for us... but please accept our token of friendship.";
getexp 1500000,350000;
if (checkre(3))
getexp 1500000,350000;
else
getexp 150000,35000;
getitem 6081,10; //Splendide_Coin
set ins_nyd,131;
mes "[Aide Arioss]";
@ -1270,7 +1273,10 @@ man_in01,311,57,3 script Neat Etorr#edq 453,3,3,{
next;
mes "[Neat Etorr]";
mes "It's not a lot, but please this as a token of our appreciation.";
getexp 1500000,350000;
if (checkre(3))
getexp 1500000,350000;
else
getexp 150000,35000;
getitem 6080,10; //Manuk_Coin
set ins_nyd,132;
close;

View File

@ -74,9 +74,9 @@ alberta,30,65,3 script Akagi 730,{
}
}
que_ng,30,65,3 script Cougar#nq 730,{
que_ng,30,65,3 script Kuuga Gai#nq 730,{
if (Upper == 2) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "I... I've never";
mes "seen a baby as";
mes "powerful as you!";
@ -86,7 +86,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
}
if (Class == Job_Novice) {
if (JobLevel < 10) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Hm? Have you come to";
mes "learn how to be a Ninja?";
mes "You're not quite experienced";
@ -100,7 +100,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "Excuse me.";
mes "H-hello?";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "...............................";
mes "How did you do that?";
next;
@ -108,7 +108,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "Do what? I didn't";
mes "do anything, I don't think...";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "H-How are you able to";
mes "see me? I'm supposed to";
mes "be invisible to the naked eye.";
@ -121,7 +121,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "Calm down, there's no";
mes "need to get violent!";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "What...?";
mes "How did you dodge";
mes "all of my attacks?";
@ -134,7 +134,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "to change my job";
mes "to a Ninja.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "...Oh. Is that all?";
mes "Hmm, you've got great";
mes "potential, but I can't help";
@ -142,14 +142,14 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "enemies, and I can't let my";
mes "guard down for even a second.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "That Wildcat Joe is";
mes "completely ruthless...!";
mes "He could strike at any time!";
mes "He'll do anything to achieve";
mes "victory over his enemies!";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Wait, wait, I just";
mes "thought of something.";
mes "Maybe you can help me out.";
@ -158,7 +158,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "really want to be a Ninja.";
next;
if(select("Sure.:No, thanks.") == 2) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Hm? Well, alright.";
mes "Still, I don't see";
mes "why we can't help";
@ -166,7 +166,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "little predicament...";
close;
}
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Great! Now, I wanted to";
mes "ask Wildcat Joe if he'd";
mes "agree to a temporary truce.";
@ -174,7 +174,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "are out of weapons, so we";
mes "should get well equipped first.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Please take this letter,";
mes "and deliver it to Wildcat";
mes "Joe in Einbroch. He's a master";
@ -182,7 +182,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "eye out for him. Ah, and look";
mes "for him in a high place.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Yeah, Wildcat Joe";
mes "always did have a thing";
mes "for hiding in high places.";
@ -194,7 +194,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
close;
}
else if (NINJ_Q == 1) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Even if this task";
mes "isn't that urgent,";
mes "please hurry over to";
@ -203,7 +203,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
close;
}
else if (NINJ_Q == 2) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Did you deliver that";
mes "letter to Wildcat Joe?";
mes "I still need to know his";
@ -213,14 +213,14 @@ que_ng,30,65,3 script Cougar#nq 730,{
close;
}
else if (NINJ_Q == 3) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Ah, you've returned.";
mes "So did Wildcat Joe send";
mes "you back here with his";
mes "response? Great, great,";
mes "please let me read it.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "What...?! How could he";
mes "reject my proposal for";
mes "a truce?! This can only";
@ -228,14 +228,14 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "Kunai. Nuts! I have to catch";
mes "up to him, or I'm a goner!";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Listen, you've got to help";
mes "me out again! I need you to";
mes "gather some materials so that";
mes "I can craft my own Kunai to fight Wildcat Joe. Then, I'll go ahead";
mes "and change your job to a Ninja.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "All you need";
mes "to bring me is";
mes "^3355FF5 Cyfars^000000 and";
@ -249,7 +249,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "asked me to gather";
mes "those same materials.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Curses! Then that means...";
mes "You actually helped Joe";
mes "in crafting his Kunai! No!";
@ -262,7 +262,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
}
else if (NINJ_Q == 4) {
if (countitem(7053) < 5 || countitem(1010) < 1) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Hurry and bring";
mes "^3355FF5 Cyfars^000000 and";
mes "^3355FF1 Phracon^000000 to me,";
@ -272,7 +272,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
close;
}
if (SkillPoint != 0) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Whoa, whoa...";
mes "You still have some";
mes "leftover Skill Points.";
@ -281,7 +281,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "change jobs, right?";
close;
}
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Ah, you're back with";
mes "everything that I need.";
mes "You've come earlier than";
@ -289,14 +289,14 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "as promised, I'll turn";
mes "you into a Ninja.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Let me formally introduce";
mes "myself. I am High Ninja Cougar";
mes "myself. I am High Ninja Kuuga Gai";
mes "in the Touga Ninja Corps, and";
mes "I'm in charge of the search";
mes "party to find Sir Kazma.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "Sir Kazma is the chief";
mes "of my village, but he's";
mes "run away. This has resulted";
@ -304,7 +304,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "the Ninja Corps. Things are";
mes "pretty unstable right now...";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "I initially didn't want to";
mes "accept you as a Ninja because";
mes "of this complicated situation.";
@ -312,14 +312,14 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "you're truly worthy of joining";
mes "the Ninja ranks.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "According to his letter, even";
mes "Joe thinks highly of you. Just";
mes "remember that, as a Ninja, your";
mes "mission is your highest priority. But don't let mission objectives";
mes "supercede your conscience.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "''Secrecy above all else.''";
mes "To keep our secrets in the";
mes "shadows, you can only buy";
@ -327,7 +327,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "authorized dealers. Please";
mes "keep that in mind.";
next;
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "As of today, you are";
mes "now a proud member of the";
mes "Touga Ninja Corps. Be as";
@ -342,7 +342,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
close;
}
else {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "How have you been?";
mes "Train hard: you want";
mes "to be able to vanish";
@ -353,7 +353,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
}
} else {
if (BaseClass == Job_Ninja) {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "How have you been?";
mes "Train hard: you want";
mes "to be able to vanish";
@ -362,7 +362,7 @@ que_ng,30,65,3 script Cougar#nq 730,{
mes "the respect of any Ninja~";
close;
} else {
mes "[Cougar]";
mes "[Kuuga Gai]";
mes "What...?";
mes "How were you able";
mes "to find me hidden";
@ -459,7 +459,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
mes "?????!!";
next;
mes "[Suspicious Man]";
mes "Why? Didn't you bring Cougar's letter for me?";
mes "Why? Didn't you bring Kuuga Gai's letter for me?";
next;
mes "["+strcharinfo(0)+"]";
mes "Are you...";
@ -468,7 +468,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
mes "[Suspicious Man]";
mes "...Yes, but I prefer to";
mes "be called Red Leopard Joe.";
mes "Cougar sent you to me, right?";
mes "Kuuga Gai sent you to me, right?";
mes "He's the only one who calls";
mes "me that. So you want to be";
mes "a Ninja, eh? Hmm, alright.";
@ -494,7 +494,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
mes "[Red Leopard Joe]";
mes "For now, let me read";
mes "this letter. Let's see...";
mes "Hm. I thought that Cougar";
mes "Hm. I thought that Kuuga Gai";
mes "would want to challenge me";
mes "again, but he actually wants";
mes "a temporary truce? Hah!";
@ -521,7 +521,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
mes "[Red Leopard Joe]";
mes "Here you go.";
mes "Please bring this";
mes "letter to Cougar.";
mes "letter to Kuuga Gai.";
mes "It'll take a while to";
mes "return to Amatsu, so let";
mes "me send you there directly...";
@ -538,7 +538,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
mes "Eh? I'm not sure what";
mes "happened, but it seems";
mes "that you haven't delivered";
mes "my response to Cougar yet.";
mes "my response to Kuuga Gai yet.";
mes "Shall I directly send you";
mes "to Amatsu right now?";
next;
@ -558,7 +558,7 @@ einbroch,184,194,3 script Suspicious Man#nq 881,{
}
else if (NINJ_Q == 4) {
mes "[Red Leopard Joe]";
mes "Cougar asked you to";
mes "Kuuga Gai asked you to";
mes "gather some materials";
mes "too? Oh well, I suppose";
mes "that I can't blame him.";

View File

@ -174,21 +174,28 @@ function script F_CoolEventCorp {
end;
}
hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
lighthalzen,94,248,3 script Cool Event Corp Staff::CoolEventCorpStaffLighthalzen 4_M_ZONDAMAN,{
callfunc "F_CoolEventCorp",
"Save:Use Storage::Rent a Pushcart:Storage Password Service:Cancel",
"in the town of Lighthalzen","lighthalzen",95,240;
end;
}
hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 4_M_ZONDAMAN,{
callfunc "F_CoolEventCorp",
"Save:Use Storage::Rent a Pushcart:Storage Password Service:Cancel",
"in the village of Hugel","hugel",96,155;
end;
}
rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 4_M_ZONDAMAN,{
callfunc "F_CoolEventCorp",
"Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel",
"in the town of Rachel","rachel",113,137,"Veins";
end;
}
veins,208,128,5 script Cool Event Corp. Staff::CoolEventCorpStaffVeins 874,{
veins,208,128,5 script Cool Event Corp. Staff::CoolEventCorpStaffVeins 4_M_ZONDAMAN,{
callfunc "F_CoolEventCorp",
"Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel",
"in the town of Veins","veins",204,103,"Rachel";

Some files were not shown because too many files have changed in this diff Show More