* Implemented VIP system in many official scripts.

- VIP players gain two more badges after Battleground matches.
- VIP players pay ten times less for transportation to Brasilis and Dewata.
- VIP players get free buffs and mercenary rentals in the Eden Group Headquarters. (iRO only, disabled)
- Non-VIP players must use a Reset Stone to begin the third job quests.
- Non-VIP players must have a Marriage Covenant to get married.
- Non-VIP players pay double for Kafra and Cool Event Corp. Teleport Services.
- Non-VIP players pay considerably more for refining equipment.
- Non-VIP players gain less quest reward items in Port Malaya quests.
- Non-VIP players gain less EXP rewards in Brasilis quests.
- Non-VIP players cannot access all towns in Acolyte Warpers script. (iRO only, disabled)
- A Reset Stone is required for Bossnia entry.
Note that official servers run different VIP/premium systems; the changes above are based on euRO, unless otherwise stated.

* Other script changes:
- Adding Marriage Covenant item in marriage script.
- Fixed some EXP values in Brasilis quests.
- Minor updates to Kafra functions.
- Turned Cool Event Corp. scripts into a basic function.
- Turned Battleground badge rewards into basic functions.

Signed-off-by: Euphy <euphy.raliel@rathena.org>
This commit is contained in:
Euphy 2013-11-18 23:54:17 -05:00
parent 3428ae297a
commit d2ee0dd55f
41 changed files with 981 additions and 1318 deletions

View File

@ -145,9 +145,12 @@ idle_no_autoloot: 0
// Default: 3 (0: disabled).
min_npc_vendchat_distance: 3
//===================================
// VIP system
//===================================
// Storage slot increase. Setting to 0 will disable.
// Give more storage slots above the MIN_STORAGE limit.
// Note: MIN_STORAGE + storage_increase cannot exceed MAX_STORAGE.
// Note: MIN_STORAGE + vip_storage_increase cannot exceed MAX_STORAGE.
// Default: 300
vip_storage_increase: 300
@ -155,13 +158,13 @@ vip_storage_increase: 300
// Default: 50
vip_base_exp_increase: 50
// Experience penalty rate multiplier for Non-VIP accounts
// Experience penalty rate multiplier for non-VIP accounts.
// Multiplies the 'death_penalty_base' and 'death_penalty_job' settings in 'conf/battle/exp.conf'.
// Default: 3 (3*100 = 3% penalty)
vip_exp_penalty_base_normal: 3
vip_exp_penalty_job_normal: 3
// Experience penalty rate multiplier for VIP accounts
// Experience penalty rate multiplier for VIP accounts.
// Multiplies the 'death_penalty_base' and 'death_penalty_job' settings in 'conf/battle/exp.conf'.
// Default: 1 (1*100 = 1% penalty)
vip_exp_penalty_base: 1
@ -175,7 +178,7 @@ vip_job_exp_increase: 50
// - Regular/Thick Battle Manual: 50+(50/X) = 75%
// - HE Battle Manual: 100+(100/X) = 150%
// - Battle Manual x3: 200+(200/X) = 300%
// Note: X is what the config is set to.
// Note: X is the config value.
// Default: 2
vip_bm_increase: 2
@ -184,7 +187,7 @@ vip_bm_increase: 2
// Default: 50
vip_drop_increase: 50
// GemStone requirement. Setting to false will disable.
// Can the VIP Group ignore GemStone requirement for skills?
// Gemstone requirement. Setting to false will disable.
// Can the VIP Group ignore Gemstone requirement for skills?
// Default: true
vip_gemstone: true

View File

@ -73,35 +73,35 @@ group_id_to_connect: -1
// 0 or more: group id
min_group_id_to_connect: -1
// Which group (ID) will be denoted as the VIP Group?
// Which group (ID) will be denoted as the VIP group?
// Default: 5
vip_group: 5
// How many Characters are allowed per Account ? (0 = disabled)
// You can not exceed the limit of MAX_CHARS slots, defined in mmo.h
// Doing that, chars_per_account will be default to MAX_CHARS.
// If setting to 0 MIN_CHARS value will be used.
// How many characters are allowed per account?
// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.h, or chars_per_account
// will default to MAX_CHARS.
// 0 will default to the value of MIN_CHARS. (default)
chars_per_account: 0
// Max character limit increase. Setting to 0 will disable.
// Increase MAX_CHAR if you want to increase char_increase.
// Note: MAX_CHARS - chars_per_account = Amount of VIP Chars (char_increase value in login table).
// Note2: this setting need to be set after chars_per_account
// Max character limit increase for VIP accounts (0 to disable)
// Increase the value of MAX_CHARS if you want to increase vip_char_increase.
// Note: The amount of VIP characters = MAX_CHARS - chars_per_account.
// Note 2: This setting must be set after chars_per_account.
// Default: 6
vip_char_increase: 6
// Starting additional sec from now for the limited time at creation of account
// -1: new account are created with UNlimited time (default value)
// 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
// Create accounts with limited time?
// -1: new accounts are created with unlimited time (default)
// 0 or more: new accounts automatically expire after the given value, in seconds
start_limited_time: -1
// Check The clientversion set in the clientinfo ?
// Check the clientversion field set in clientinfo.xml?
check_client_version: no
// What version we would allow to connect? (if the options above is enabled..)
// What version is allowed to connect? (if the option above is enabled)
client_version_to_connect: 20
// Store passwords as MD5 hashes instead of plaintext ?
// Store passwords as MD5 hashes instead of plain text?
// NOTE: Will not work with clients that use <passwordencrypt>
use_MD5_passwords: no

View File

@ -3392,3 +3392,5 @@ VAR_MAX_GUILD 6
VAR_MAX_GUILDLEVEL 7
VAR_MAX_GUILD_STORAGE 8
VAR_MAX_BG_MEMBERS 9
VAR_VIP_SCRIPT 10
VAR_MIN_STORAGE 11

View File

@ -2819,3 +2819,5 @@
60353,0,0,0,0,0,0,0,"Bathroom Ghost"
60354,0,0,0,0,0,0,0,"Bathroom Ghost"
60355,0,0,0,0,0,0,0,"Bathroom Ghost"
62238,3600,0,0,0,0,0,0,"Midgardian Mercenary timer"

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20131112
//= 20131118
//===== Description: =========================================
//= A reference manual for the rAthena scripting language.
//= Commands are sorted depending on their functionality.
@ -2333,6 +2333,28 @@ Examples:
// Outputs IP address of character "Silver".
mes "Silver's IP: " + getcharip("Silver");
---------------------------------------
*vip_status(<type>,{"<character name>"})
Returns various information about a player's VIP status.
Valid types:
1 - VIP status. (1 if VIP, 0 if non-VIP)
2 - VIP expire date. (timestamp string if VIP, 0 if non-VIP)
3 - VIP time remaining. (timestamp string if VIP, 0 if non-VIP)
NOTE: This command is only available if the VIP System is enabled.
---------------------------------------
*vip_time <time>,{"<character name>"};
Changes a player's VIP time (in minutes). A positive value will increase time, and a
negative value will decrease time.
NOTE: This command is only available if the VIP System is enabled.
---------------------------------------
\\
2,2 Item-related commands
@ -3496,6 +3518,8 @@ Returns a server definition. Valid types are listed in 'db/const.txt':
VAR_MAX_GUILDLEVEL 7
VAR_MAX_GUILD_STORAGE 8
VAR_MAX_BG_MEMBERS 9
VAR_VIP_SCRIPT 10
VAR_MIN_STORAGE 11
---------------------------------------
\\

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= ????, L0ne_W0lf
//===== Current Version: =====================================
//= 1.4
//= 1.5
//===== Compatible With: =====================================
//= rAthena 1.0
//===== Description: =========================================
@ -12,7 +12,7 @@
//= - Generals and Aides
//= - Battleground Warper
//= - Kafra and Repairman.
//= - GM Management NPC (disabled by default)
//= - GM Management NPC
//= - Badge Exchanger (Tierra and Flavius)
//===== Additional Comments: =================================
//= 1.0 First Version.
@ -20,6 +20,7 @@
//= 1.2 Updated Repairman NPC
//= 1.3 Optimized "Erundek" NPC. [Euphy]
//= 1.4 Added GM management function. [Euphy]
//= 1.5 Added VIP features and created a reward function. [Euphy]
//============================================================
// Generals
@ -562,3 +563,57 @@ bat_room,160,150,3 script Erundek 109,{
}
close;
}
// Badge Reward Function
//============================================================
function script F_BG_Badge {
if (getarg(2) == "Tierra") {
set .@badge,7828; //BF_Badge1
set .@amount_win,3;
set .@amount_lose,1;
} else if (getarg(2) == "Flavius") {
set .@badge,7829; //BF_Badge2
set .@amount_win,9;
set .@amount_lose,3;
} else
return;
if (getarg(0) == 1) {
set .@amount, .@amount_win;
if (getarg(1) == "Guillaume") {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
} else if (getarg(1) == "Croix") {
mes "[Swandery]";
mes "Blessed Croix!";
}
mes "Let's enjoy our glorious victory!";
mes strcharinfo(0)+", it's a sign reflecting victory.";
} else {
set .@amount, .@amount_lose;
if (getarg(1) == "Guillaume") {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
} else if (getarg(1) == "Croix") {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
}
}
close2;
// If the VIP system is enabled, VIP players receive an extra 2 badges.
if (getserverdef(VAR_VIP_SCRIPT) && vip_status(1))
set .@amount, .@amount+2;
set .@medal_gap, 500 - countitem(.@badge);
if (.@medal_gap >= .@amount)
getitem .@badge,.@amount;
else
getitem .@badge,.@medal_gap;
return;
}

View File

@ -3,14 +3,14 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena 1.0
//===== Description: =========================================
//= [Official Conversion]
//= Flavius Battleground.
//= - Winning Team: 9 badges
//= - Losing Team: 3 badge
//= - Winning Team: 9 badges (11 if VIP)
//= - Losing Team: 3 badges (5 if VIP)
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Fixed pink crystal spawning as blue. [L0ne_W0lf]
@ -18,6 +18,7 @@
//= 1.3 Removed MaxLvl check in waitingrooms. Replaced setwall with setcell.
//= 1.4 Label standardization. [Euphy]
//= 1.5 Added GM management function. [Euphy]
//= 1.6 Added VIP features and created a reward function. [Euphy]
//============================================================
// Waiting Room NPCs
@ -393,46 +394,10 @@ OnTouch:
bat_b01,10,294,3 script Guillaume Vintenar#b01_a 934,{
if ($@FlaviusBG1_id1 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 1) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if ($@FlaviusBG1_Victory == 1)
callfunc "F_BG_Badge",1,"Guillaume","Flavius";
else
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
}
bg_leave;
warp "bat_room",154,150;
@ -445,46 +410,10 @@ OnInit:
bat_b01,389,14,3 script Croix Vintenar#b01_b 934,{
if ($@FlaviusBG1_id2 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 2) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if ($@FlaviusBG1_Victory == 2)
callfunc "F_BG_Badge",1,"Croix","Flavius";
else
callfunc "F_BG_Badge",0,"Croix","Flavius";
}
bg_leave;
warp "bat_room",154,150;
@ -578,66 +507,12 @@ bat_b01,389,16,3 script Croix Camp#flag31 974,{ end; }
bat_b01,10,294,3 script Vintenar#bat_b01_aover 419,{
set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if (.@A_B_gap > 0)
callfunc "F_BG_Badge",1,"Guillaume","Flavius";
else if (.@A_B_gap == 0)
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
else
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
}
else {
mes "[Axl Rose]";
@ -656,66 +531,12 @@ OnInit:
bat_b01,389,14,3 script Vintenar#bat_b01_bover 415,{
set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if (.@A_B_gap > 0)
callfunc "F_BG_Badge",1,"Croix","Flavius";
else if (.@A_B_gap == 0)
callfunc "F_BG_Badge",0,"Croix","Flavius";
else
callfunc "F_BG_Badge",1,"Croix","Flavius";
}
else {
mes "[Swandery]";

View File

@ -3,14 +3,14 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.6
//= 1.7
//===== Compatible With: =====================================
//= rAthena 1.0
//===== Description: =========================================
//= [Official Conversion]
//= Flavius Battleground.
//= - Winning Team: 9 badges
//= - Losing Team: 3 badge
//= - Winning Team: 9 badges (11 if VIP)
//= - Losing Team: 3 badges (5 if VIP)
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Fixed NPCs being called for waiting rooms. (bugreport:4395)
@ -19,6 +19,7 @@
//= 1.4 Removed MaxLvl check in waitingrooms. Replaced setwall with setcell.
//= 1.5 Label standardization. [Euphy]
//= 1.6 Added GM management function. [Euphy]
//= 1.7 Added VIP features and created a reward function. [Euphy]
//============================================================
// Waiting Room NPCs
@ -394,46 +395,10 @@ OnTouch:
bat_b02,10,294,3 script Guillaume Vintenar#b02_a 934,{
if ($@FlaviusBG2_id1 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 1) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if ($@FlaviusBG2_Victory == 1)
callfunc "F_BG_Badge",1,"Guillaume","Flavius";
else
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
}
bg_leave;
warp "bat_room",154,150;
@ -446,46 +411,10 @@ OnInit:
bat_b02,389,14,3 script Croix Vintenar#b02_b 934,{
if ($@FlaviusBG2_id2 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 2) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if ($@FlaviusBG2_Victory == 2)
callfunc "F_BG_Badge",1,"Croix","Flavius";
else
callfunc "F_BG_Badge",0,"Croix","Flavius";
}
bg_leave;
warp "bat_room",154,150;
@ -579,66 +508,12 @@ bat_b02,389,16,3 script Croix Camp#flag42 974,{ end; }
bat_b02,10,294,3 script Vintenar#bat_b02_aover 419,{
set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if (.@A_B_gap > 0)
callfunc "F_BG_Badge",1,"Guillaume","Flavius";
else if (.@A_B_gap == 0)
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
else
callfunc "F_BG_Badge",0,"Guillaume","Flavius";
}
else {
mes "[Axl Rose]";
@ -657,66 +532,12 @@ OnInit:
bat_b02,389,14,3 script Vintenar#bat_b02_bover 415,{
set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
if (.@A_B_gap > 0)
callfunc "F_BG_Badge",1,"Croix","Flavius";
else if (.@A_B_gap == 0)
callfunc "F_BG_Badge",0,"Croix","Flavius";
else
callfunc "F_BG_Badge",1,"Croix","Flavius";
}
else {
mes "[Swandery]";

View File

@ -3,14 +3,14 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena 1.0
//===== Description: =========================================
//= [Official Conversion]
//= Tierra Gorge Battleground.
//= - Winning Team: 3 badges
//= - Losing Team: 1 badge
//= - Winning Team: 3 badges (5 if VIP)
//= - Losing Team: 1 badge (3 if VIP)
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Corrected setwalls for barricades. [L0ne_W0lf]
@ -18,6 +18,7 @@
//= 1.3 Removed MaxLvl check in waitingrooms.
//= 1.4 Label standardization. [Euphy]
//= 1.5 Added GM management function. [Euphy]
//= 1.6 Added VIP features and created a reward function. [Euphy]
//============================================================
// Waiting Room NPCs
@ -684,88 +685,16 @@ bat_a01,348,74,3 script Croix Camp#flag9 974,{ end; }
bat_a01,53,377,3 script Guillaume Vintenar#a01_a 419,{
if (getcharid(4) == $@TierraBG1_id1) {
if ($@TierraBG1_Victory == 1) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG1_Victory == 1)
callfunc "F_BG_Badge",1,"Guillaume","Tierra";
else
callfunc "F_BG_Badge",0,"Guillaume","Tierra";
}
else {
if ($@TierraBG1_Victory == 2) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign of victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG1_Victory == 2)
callfunc "F_BG_Badge",0,"Guillaume","Tierra";
else
callfunc "F_BG_Badge",1,"Guillaume","Tierra";
}
bg_leave;
warp "bat_room",154,150;
@ -778,88 +707,16 @@ OnInit:
bat_a01,45,19,3 script Croix Vintenar#a01_b 415,{
if (getcharid(4) == $@TierraBG1_id2) {
if ($@TierraBG1_Victory == 2) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG1_Victory == 2)
callfunc "F_BG_Badge",1,"Croix","Tierra";
else
callfunc "F_BG_Badge",0,"Croix","Tierra";
}
else {
if ($@TierraBG1_Victory == 1) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG1_Victory == 1)
callfunc "F_BG_Badge",0,"Croix","Tierra";
else
callfunc "F_BG_Badge",1,"Croix","Tierra";
}
bg_leave;
warp "bat_room",154,150;

View File

@ -3,20 +3,21 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.4
//= 1.5
//===== Compatible With: =====================================
//= rAthena 1.0
//===== Description: =========================================
//= [Official Conversion]
//= Second Tierra Gorge Battleground.
//= - Winning Team: 3 badges
//= - Losing Team: 1 badge
//= - Winning Team: 3 badges (5 if VIP)
//= - Losing Team: 1 badge (3 if VIP)
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated 'waitingroom' to support required zeny/lvl. [Kisuka]
//= 1.2 Removed MaxLvl check in waitingrooms.
//= 1.3 Label standardization. [Euphy]
//= 1.4 Added GM management function. [Euphy]
//= 1.5 Added VIP features and created a reward function. [Euphy]
//============================================================
// Waiting Room NPCs
@ -683,88 +684,16 @@ bat_a02,348,74,3 script Croix Camp#flag19 974,{ end; }
bat_a02,53,377,3 script Guillaume Vintenar#a02_a 419,{
if (getcharid(4) == $@TierraBG2_id1) {
if ($@TierraBG2_Victory == 1) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG2_Victory == 1)
callfunc "F_BG_Badge",1,"Guillaume","Tierra";
else
callfunc "F_BG_Badge",0,"Guillaume","Tierra";
}
else {
if ($@TierraBG2_Victory == 2) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, and next time you will definitely win.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign of victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG2_Victory == 2)
callfunc "F_BG_Badge",0,"Guillaume","Tierra";
else
callfunc "F_BG_Badge",1,"Guillaume","Tierra";
}
bg_leave;
warp "bat_room",154,150;
@ -777,88 +706,16 @@ OnInit:
bat_a02,45,19,3 script Croix Vintenar#a02_b 415,{
if (getcharid(4) == $@TierraBG2_id2) {
if ($@TierraBG2_Victory == 2) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG2_Victory == 2)
callfunc "F_BG_Badge",1,"Croix","Tierra";
else
callfunc "F_BG_Badge",0,"Croix","Tierra";
}
else {
if ($@TierraBG2_Victory == 1) {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,1; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
else {
set .@your_medal,countitem(7828);
set .@medal_gap, 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,3; //BF_Badge1
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7828,.@medal_gap; //BF_Badge1
}
}
if ($@TierraBG2_Victory == 1)
callfunc "F_BG_Badge",0,"Croix","Tierra";
else
callfunc "F_BG_Badge",1,"Croix","Tierra";
}
bg_leave;
warp "bat_room",154,150;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Masao
//===== Current Version: =====================================
//= 1.2
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -12,6 +12,7 @@
//= 1.0 Converted from the official script.
//= 1.1 Optimized. [Euphy]
//= 1.2 Moved spawns and warps (by Masao) to this file. [Euphy]
//= 1.3 Added VIP features. [Euphy]
//============================================================
// Entrance NPCs
@ -62,26 +63,66 @@ prontera,132,125,4 script Bossnia Staff#1 908,{
mes "Although you know the place, you want to go in...";
mes "Good, I will send you there.";
mes "But after you went there, don't hold";
mes "a grudge against me. Also it costs 5,000 zeny.";
next;
if (Zeny > 4999) {
mes "[Riss]";
mes "Would you really like to take the challenge?";
mes "Ok, just choose the course.";
// If the VIP system is enabled, players pay a Reset Stone for 5 entrances (with a choice of warps).
// If it's disabled, players pay 5,000z per entrance.
if (getserverdef(VAR_VIP_SCRIPT)) {
mes "a grudge against me. It'll cost you 1 Reset Stone for 5 access.";
next;
set .@i, select("First","Second","Third","Fourth");
mes "[Riss]";
mes "Take care, boy~";
mes "Don't hold a grudge against me.";
close2;
set Zeny, Zeny - 5000;
warp "bossnia_0"+.@i,rand(202,204),rand(202,204);
end;
if (bossnia_event > 0) {
set .@type,1;
mes "Remaining access: "+bossnia_event;
} else if (countitem(6320)) {
set .@type,2;
mes "Do you want to go?";
} else {
mes "You don't have a ticket now.....";
mes "So come to me again with a Reset Stone later.";
close;
}
next;
if(select("Enter:Leave") == 2)
close;
set .@i, select("First:Second:Third:Fourth");
switch(select("Warp 1:Warp 2:Warp 3:Warp 4")) {
case 1: set .@x,31; set .@y,208; break;
case 2: set .@x,31; set .@y,31; break;
case 3: set .@x,208; set .@y,31; break;
case 4: set .@x,208; set .@y,208; break;
}
if (.@type == 1)
set bossnia_event, bossnia_event-1;
else {
delitem 6320,1; //Premium_Reset_Stone
set bossnia_event,4;
}
specialeffect2 EF_MAXPOWER;
warp "bossnia_0"+.@i,.@x,.@y;
close;
} else {
mes "a grudge against me. Also it costs 5,000 zeny.";
next;
if (Zeny > 4999) {
mes "[Riss]";
mes "Would you really like to take the challenge?";
mes "Ok, just choose the course.";
next;
set .@i, select("First:Second:Third:Fourth");
mes "[Riss]";
mes "Take care, boy~";
mes "Don't hold a grudge against me.";
close2;
set Zeny, Zeny - 5000;
warp "bossnia_0"+.@i,rand(202,204),rand(202,204);
end;
} else {
mes "[Riss]";
mes "You don't have enough money...";
mes "Come back when you have at least 5,000 zeny.";
close;
}
}
mes "[Riss]";
mes "You don't have enough money...";
mes "Come back when you have at least 5,000 zeny.";
close;
}
geffen,124,169,4 duplicate(Bossnia Staff#1) Bossnia Staff#2 908
payon,165,150,4 duplicate(Bossnia Staff#1) Bossnia Staff#3 908

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Gepard
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -18,9 +18,11 @@
//= until we got a client/packet based password support [Lupus]
//= 1.4 Added Veins Cool Event Corp. Staff. [L0ne_W0lf]
//= 1.5 Cool Event Corp staff is now more iRO like. [L0ne_W0lf]
//= 1.6 Wrote a basic function and added VIP features. [Euphy]
//============================================================
hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
//callfunc "F_CoolEventCorp","<menu>","<location>","<save map>",<x>,<y>,"<warp map>";
function script F_CoolEventCorp {
cutin "zonda_01",2;
mes "[Cool Event Corp. Staff]";
mes "Welcome to Cool Event Corp.";
@ -29,15 +31,15 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "for quality service. So how";
mes "may I assist you today?";
next;
switch(select("Save:Use Storage:Rent a Pushcart:Storage Password Service:Cancel")){
switch(select(getarg(0))) {
case 1:
mes "[Cool Event Corp. Staff]";
mes "Your Respawn Point";
mes "has been saved here";
mes "in the village of Hugel.";
mes getarg(1)+".";
mes "Thank you for using the";
mes "Cool Event Corp. service~";
savepoint "hugel",96,155;
savepoint getarg(2),getarg(3),getarg(4);
close2;
break;
case 2:
@ -69,13 +71,48 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
openstorage;
break;
case 3:
mes "Please choose";
mes "your destination.";
next;
if (getserverdef(VAR_VIP_SCRIPT) && !vip_status(1))
set .@cost,4400;
else
set .@cost,2200;
if (select(getarg(5)+" -> "+.@cost+" z:Cancel") == 1) {
if ((countitem(7060) != 0) || (Zeny >= .@cost)) {
if (countitem(7060) != 0) {
delitem 7060,1; //Warp_Free_Ticket
}
else {
set Zeny,Zeny-.@cost;
}
if (getarg(5) == "Veins") warp "veins",205,101;
else if (getarg(5) == "Rachel") warp "rachel",115,125;
cutin "",255;
end;
}
else {
mes "[Cool Event Corp. Staff]";
mes "I'm sorry, but you don't have";
mes "enough zeny for the Teleport";
mes "Service. The fee to teleport";
mes "to "+getarg(5)+" is "+.@cost+" zeny.";
}
}
close2;
break;
case 4:
mes "[Cool Event Corp. Staff]";
if(BaseClass != Job_Merchant){
mes "I'm sorry, but the";
mes "Pushcart rental service";
mes "is only available to Merchants,";
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
if (checkre(0))
mes "is only available to Merchant classes.";
else {
mes "is only available to Merchants,";
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
}
close2;
break;
}
@ -95,7 +132,7 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
break;
}
if(countitem(7061)){
delitem 7061,1;
delitem 7061,1; //Cart_Free_Ticket
setcart;
close2;
break;
@ -118,10 +155,10 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
}
close2;
break;
case 4:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and remoes cutins
case 5:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and removes cutins
case 6:
default:
mes "[Cool Event Corp. Staff]";
mes "Cool Event Corp. is always";
@ -136,287 +173,23 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
end;
}
hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
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,{
cutin "zonda_01",2;
mes "[Cool Event Corp. Staff]";
mes "Welcome to Cool Event Corp.";
mes "Our staff is always working";
mes "to surpass your expactations";
mes "for quality service. So how";
mes "may I assist you today?";
next;
switch(select("Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel")){
case 1:
mes "[Cool Event Corp. Staff]";
mes "Your Respawn Point";
mes "has been saved here";
mes "in the town of Rachel.";
mes "Thank you for using the";
mes "Cool Event Corp. service~";
savepoint "rachel",113,137;
close2;
break;
case 2:
mes "[Cool Event Corp. Staff]";
if(basicskillcheck() && getskilllv("NV_BASIC") < 6){
mes "I'm sorry, but you";
mes "need the Novice's";
mes "Basic Skill Level 6 to";
mes "use the Storage Service.";
close2;
break;
}
if(Zeny < 40){
mes "I'm sorry, but you don't";
mes "have enough Zeny to use";
mes "the Storage Service. Our";
mes "Storage access fee is 40 Zeny.";
close2;
break;
}
set Zeny, Zeny - 40;
mes "Let me open your personal";
mes "storage for you right away.";
mes "Thanks for supporting Cool";
mes "Event Corp. by using our";
mes "services. Have a good day~";
callfunc("F_CheckKafCode"); //check your storage password, if set
close2;
openstorage;
break;
case 3:
mes "Please choose";
mes "your destination.";
next;
if (select("Veins -> 2200 z:Cancel") == 1) {
if ((countitem(7060) != 0) || (Zeny >= 2200)) {
if (countitem(7060) != 0) {
delitem 7060,1;
}
else {
set Zeny,Zeny-2200;
}
warp "veins",205,101;
cutin "",255;
end;
}
else {
mes "[Cool Event Corp. Staff]";
mes "I'm sorry, but you don't have";
mes "enough zeny for the Teleport";
mes "Service. The fee to teleport";
mes "to Rachel is 2200 zeny.";
}
}
close2;
break;
case 4:
mes "[Cool Event Corp. Staff]";
if(BaseClass != Job_Merchant){
mes "I'm sorry, but the";
mes "Pushcart rental service";
mes "is only available to Merchants,";
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
close2;
break;
}
if(getskilllv("MC_PUSHCART") == 0){
mes "You can only rent a cart after";
mes "learning the Pushcart Skill.";
close2;
break;
}
if(checkcart() == 1){
mes "You already have";
mes "a Pushcart equipped.";
mes "Unfortunately, we can't";
mes "rent more than one to";
mes "each customer at a time.";
close2;
break;
}
if(countitem(7061)){
delitem 7061,1;
setcart;
close2;
break;
}
mes "The Pushcart rental";
mes "fee is 800 Zeny. Would";
mes "you like to rent a Pushcart?";
next;
if(select("Rent a Pushcart:Cancel") == 1){
if(Zeny < 800){
mes "[Cool Event Corp. Staff]";
mes "I'm sorry, but you";
mes "don't have enough";
mes "Zeny to pay the Pushcart";
mes "rental fee of 800 Zeny.";
} else {
set Zeny, Zeny - 800;
setcart;
}
}
close2;
break;
case 5:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and remoes cutins
case 6:
default:
mes "[Cool Event Corp. Staff]";
mes "Cool Event Corp. is always";
mes "striving to provide the best";
mes "services for our customers.";
mes "Help us become the best by";
mes "providing us with your opinions";
mes "and honest feedback. Thank you.";
close2;
}
cutin "", 255;
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,{
cutin "zonda_01",2;
mes "[Cool Event Corp. Staff]";
mes "Welcome to Cool Event Corp.";
mes "Our staff is always working";
mes "to surpass your expactations";
mes "for quality service. So how";
mes "may I assist you today?";
next;
switch(select("Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel")){
case 1:
mes "[Cool Event Corp. Staff]";
mes "Your Respawn Point";
mes "has been saved here";
mes "in the town of Veins.";
mes "Thank you for using the";
mes "Cool Event Corp. service~";
savepoint "veins",204,103;
close2;
break;
case 2:
mes "[Cool Event Corp. Staff]";
if(basicskillcheck() && getskilllv("NV_BASIC") < 6){
mes "I'm sorry, but you";
mes "need the Novice's";
mes "Basic Skill Level 6 to";
mes "use the Storage Service.";
close2;
break;
}
if(Zeny < 40){
mes "I'm sorry, but you don't";
mes "have enough Zeny to use";
mes "the Storage Service. Our";
mes "Storage access fee is 40 Zeny.";
close2;
break;
}
set Zeny, Zeny - 40;
mes "Let me open your personal";
mes "storage for you right away.";
mes "Thanks for supporting Cool";
mes "Event Corp. by using our";
mes "services. Have a good day~";
callfunc("F_CheckKafCode"); //check your storage password, if set
close2;
openstorage;
break;
case 3:
mes "Please choose";
mes "your destination.";
next;
if (select("Rachel -> 2200 z:Cancel") == 1) {
if ((countitem(7060) != 0) || (Zeny >= 2200)) {
if (countitem(7060) != 0) {
delitem 7060,1;
}
else {
set Zeny,Zeny-2200;
}
warp "rachel",115,125;
cutin "",255;
end;
}
else {
mes "[Cool Event Corp. Staff]";
mes "I'm sorry, but you don't have";
mes "enough zeny for the Teleport";
mes "Service. The fee to teleport";
mes "to Rachel is 2200 zeny.";
}
}
close2;
break;
case 4:
mes "[Cool Event Corp. Staff]";
if(BaseClass != Job_Merchant){
mes "I'm sorry, but the";
mes "Pushcart rental service";
mes "is only available to Merchants,";
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
close2;
break;
}
if(getskilllv("MC_PUSHCART") == 0){
mes "You can only rent a cart after";
mes "learning the Pushcart Skill.";
close2;
break;
}
if(checkcart() == 1){
mes "You already have";
mes "a Pushcart equipped.";
mes "Unfortunately, we can't";
mes "rent more than one to";
mes "each customer at a time.";
close2;
break;
}
if(countitem(7061)){
delitem 7061,1;
setcart;
close2;
break;
}
mes "The Pushcart rental";
mes "fee is 800 Zeny. Would";
mes "you like to rent a Pushcart?";
next;
if(select("Rent a Pushcart:Cancel") == 1){
if(Zeny < 800){
mes "[Cool Event Corp. Staff]";
mes "I'm sorry, but you";
mes "don't have enough";
mes "Zeny to pay the Pushcart";
mes "rental fee of 800 Zeny.";
close2;
} else {
set Zeny, Zeny - 800;
setcart;
}
}
close2;
break;
case 5:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and remoes cutins
case 6:
default:
mes "[Cool Event Corp. Staff]";
mes "Cool Event Corp. is always";
mes "striving to provide the best";
mes "services for our customers.";
mes "Help us become the best by";
mes "providing us with your opinions";
mes "and honest feedback. Thank you.";
close2;
}
cutin "", 255;
callfunc "F_CoolEventCorp",
"Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel",
"in the town of Veins","veins",204,103,"Rachel";
end;
}

View File

@ -5,7 +5,7 @@
//= Darlskies, Darkchild, Syrus22, Lupus, kobra_k88 (2.0)
//= L0ne_W0lf
//===== Current Version: =====================================
//= 6.7
//= 6.8
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -62,6 +62,7 @@
//= 6.5 Optimized. [Joseph]
//= 6.6 Added Warp Points / View Points Function. [Joseph]
//= 6.7 Added Rune Knight Kafra. [Euphy]
//= 6.8 Updated some functions and added VIP features. [Euphy]
//============================================================
//=== Main Function ========================================================
@ -340,9 +341,13 @@ function script F_KafCart {
mes "[Kafra Employee]";
mes "I'm sorry, but the";
mes "Pushcart rental service";
mes "is only available to Merchants,";
mes "Blacksmiths, Master Smiths,";
mes "Alchemists and Biochemists.";
if (checkre(0))
mes "is only available to Merchant classes.";
else {
mes "is only available to Merchants,";
mes "Blacksmiths, Master Smiths,";
mes "Alchemists and Biochemists.";
}
return 1;
}
// Make sure the invoking character does not have a cart already
@ -355,6 +360,12 @@ function script F_KafCart {
mes "each customer at a time.";
return 1;
}
// Check if the player has the Pushcart skill
else if(getskilllv("MC_PUSHCART") == 0) {
mes "[Kafra Employee]";
mes "You can only rent a cart after learning the \"Push Cart\" skill.";
return 1;
}
// Consume "Free Ticket for the Cart Service" if available.
// Do not consume if in Guild castle.
if(countitem(7061) > 0 && getarg(0) != 2) delitem 7061,1;
@ -591,7 +602,7 @@ function script F_KafSet {
cleararray @viewpY[0],"",getarraysize(@viewpY);
if (strnpcinfo(4) == "prontera") {
setarray @wrpD$[0], "Izlude", "Geffen", "Payon", "Morroc", "Orc Dungeon", "Alberta";
setarray @wrpP[0], 600, 1200, 1200, 1200, 1200, 1800;
setarray @wrpP[0], 600, 1200, 1200, 1200, 1700, 1800;
setarray @viewpX[0], 151, 29, 282, 152;
setarray @viewpY[0], 29, 207, 200, 326;
} else if (strnpcinfo(4) == "alberta") {
@ -610,7 +621,7 @@ function script F_KafSet {
setarray @wrpP[0], 1200, 1200;
} else if (strnpcinfo(4) == "geffen") {
setarray @wrpD$[0], "Prontera", "Al De Baran", "Orc Dungeon", "Mjolnir Dead Pit";
setarray @wrpP[0], 1200, 1200, 1200, 1700;
setarray @wrpP[0], 1200, 1200, 1700, 1700;
setarray @viewpX[0], 120, 203;
setarray @viewpY[0], 62, 123;
} else if (strnpcinfo(4) == "izlude") {
@ -636,8 +647,15 @@ function script F_KafSet {
setarray @wrpD$[0], "Izlude", "Geffen", "Payon", "Morroc", "Alberta";
setarray @wrpP[0], 600, 1200, 1200, 1200, 1800;
}
// VIP pricing varies across the regional servers; this is most practical.
if (getserverdef(VAR_VIP_SCRIPT) && !vip_status(1)) {
for (set .@i, 0; .@i < getarraysize(@wrpD$); set .@i, .@i + 1)
setd "@wrpP["+.@i+"]",getd("@wrpP["+.@i+"]") * 2;
}
for (set .@i, 0; .@i < getarraysize(@wrpD$); set .@i, .@i + 1)
setd "@wrpC$["+.@i+"]",getd("@wrpD$["+.@i+"]")+" -> "+getd("@wrpP["+.@i+"]");
setd "@wrpC$["+.@i+"]",getd("@wrpD$["+.@i+"]")+" -> "+getd("@wrpP["+.@i+"]")+" z";
setd "@wrpC$["+getarraysize(@wrpC$)+"]","Cancel";
return;
}

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -25,6 +25,7 @@
//= 1.4a Added 'disable_items' command. [Euphy]
//= 1.4b Fixed coordinates. [Euphy]
//= 1.5 Some official script updates. [Euphy]
//= 1.6 Added VIP features. [Euphy]
//============================================================
payon,157,146,6 script Suhnbi#cash 85,{
@ -100,10 +101,23 @@ payon,157,146,6 script Suhnbi#cash 85,{
close;
S_RefineValidate:
set .@price, getarg(2);
// If the VIP system is enabled, the prices for non-VIP players are considerably higher.
if (getserverdef(VAR_VIP_SCRIPT) && !vip_status(1)) {
switch(getarg(0)){
case 0: set .@price, .@price * 10; break;
case 1: set .@price, .@price * 40; break;
case 2: set .@price, .@price * 50; break;
case 3: set .@price, .@price * 2; break;
case 4: set .@price, .@price * 2; break;
}
}
mes "[Suhnbi]";
if (getarg(0))
mes "You want to refine a level " + getarg(0) + " weapon?";
mes "To refine that, you'll need to have one ^ff9999" + getitemname(getarg(1)) + "^000000 and " + getarg(2) + " zeny.";
mes "To refine that, you'll need to have one ^ff9999" + getitemname(getarg(1)) + "^000000 and " + .@price + " zeny.";
mes "Would you like to continue?";
next;
if(select("Yes:No") == 1) {
@ -147,9 +161,9 @@ S_RefineValidate:
}
}
}
if (countitem(getarg(1)) > 0 && Zeny > getarg(2)) {
if (countitem(getarg(1)) > 0 && Zeny > .@price) {
delitem getarg(1),1;
set Zeny, Zeny - getarg(2);
set Zeny, Zeny - .@price;
return;
}
mes "[Suhnbi]";

View File

@ -3,64 +3,19 @@
//===== By: ==================================================
//= Syrus22 (1.1) dafide18 (1.4) Skotlex (1.5)
//===== Current Version: =====================================
//= 3.3
//= 3.4
//===== Compatible With: =====================================
//= Any Athena Version
//===== Description: =========================================
//= Refining NPCs and Metal Salesmen.
//===== Additional Comments: =================================
//= 1.0 by A bunch of people!
//= Syrus22 - Completely redid the script using functions... also
//= added the option for auto safe refining and multiple refining.
//= 1.1 Negative input bug fixed [Lupus]
//= 1.2 Added additional reparimen in morroc and payon. Added
//= Christopher the blacksmith in Geffen. Edited some dialogue [kobra_k88]
//= 1.3 New Payon Locations [Darkchild]
//= Corrected zeny subtraction thx to jpnmania77.[kobra_k88]
//= 1.3a Temporary corrected an exploit. Need to check sources
//= to fully fix bug [Shinigami]
//= Fixed repairman prices [shadowlady]
//= Fixed bug that skips requirements thanks to sir_loon [massdriller]
//= Fixed itemid error thanks to -Vitamin- [massdriller]
//= 1.4 check again item in refining procedure to avoid
//= hacker that can change item [dafide18]
//= 1.5 Fixed crashing due to badly used callfunc's [Skotlex]
//= Lupus, don't rollback this important fix again! >.<
//= 1.5a Corrected an unneeded callfunc, fixed the anti-bot
//= exploit ruining the safe refine loop. [Skotlex]
//= 1.5b Fixed Spelling mistakes. [Nexon]
//= 1.6 Replaced all breaks for ends as per the new script engine [Skotlex]
//= 1.7 Added Einbroch Refiners (Custom names ^^;) and a duplicated BS Shop. [Poki#3]
//= 1.8 Added Lighthalzen Refiners (Custom names again ^^;) [Poki#3]
//= 1.8a Fixed wrong indication thanks to NeoSaro [Lupus]
//= 1.9 Rewrote repairman, removed the Steel from repair cost [DracoRPG]
//= 2.0 Fixed missed equppment presence check. Thx2 Coltaro [Lupus]
//= 2.0a Added weight checks thanks to Neouni [Playtester]
//= 2.0b Fixed the names of Lighthalzen and Einbroch refiners thanks to Maud_Dib [Kargha]
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Changed name from "Emvertacon" to "Emveretarcon". [Samuray22]
//= Thanks to Barron-Monster.
//= 2.2b Changed name from "Pharacon" to "Phracon". [Samuray22]
//= Thanks to Barron-Monster.
//= 2.3 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 2.4 Updated Refiner function. cleaner, and less dated. [L0ne_w0lf]
//= 2.5 Rather large update to the refiner and merchants. :D [L0ne_W0lf]
//= 2.6 Fixed a few bugs with creating pure stones. [L0ne_W0lf]
//= 2.7 Refiner function accepts additional paramater. [L0ne_W0lf]
//= 0 = No special features; 1 = new refining features
//= Updated Repairmen and function. No longer shows menu.
//= 2.7a A couple touch-ups to the repairman function. [L0ne_w0lf]
//= 2.8 Changed the nonexistent variable .@matname$ for getitemname(.@material). (bugreport:2340) [Samuray22]
//= 2.8 Added proper Blacksmith Supplier to Einroch. [L0ne_W0lf]
//= Updated dated features comment to reflect new usage.
//= 2.8a Small bugfix. (bugreport:2418) [Paradox924X]
//= 2.9 Moved Morroc repairman to Morroc Ruins. [L0ne_W0lf]
//= 3.0 Updated several NPC names and locations. [Xantara]
//= Added WoE map Refiners.
//= 3.1 Added the new refinement & Ore creation NPC's for +11 and above Refinement. [Masao]
//= 3.2 Moved some scripts to Renewal file, other minor changes. [Euphy]
//= 3.2a Added 'disable_items' command. [Euphy]
//= 3.3 Some official script updates. [Euphy]
//= 3.4 Added VIP features. [Euphy]
//============================================================
// Christopher: Geffen Blacksmith
@ -657,35 +612,48 @@ function script refinemain {
switch(getequipweaponlv(.@part)){
case 0: //Refine Armor
set .@price,2000;
set .@material,985;
set .@material,985; //Elunium
set .@safe,4;
break;
case 1: //Refine Level 1 Weapon
set .@price,50;
set .@material,1010;
set .@safe,7;
set .@material,1010; //Phracon
set .@safe,7;
break;
case 2: //Refine Level 2 Weapon
set .@price,200;
set .@material,1011;
set .@safe,6;
set .@material,1011; //Emveretarcon
set .@safe,6;
break;
case 3: //Refine Level 3 Weapon
set .@price,5000;
set .@material,984;
set .@safe,5;
set .@material,984; //Oridecon
set .@safe,5;
break;
case 4: //Refine Level 4 Weapon
set .@price,20000;
set .@material,984;
set .@safe,4;
set .@material,984; //Oridecon
set .@safe,4;
break;
case 5: //Refine other stuff?
set .@price,2000;
set .@material,985;
set .@safe,4;
set .@material,985; //Elunium
set .@safe,4;
break;
}
// If the VIP system is enabled, the prices for non-VIP players are considerably higher.
if (getserverdef(VAR_VIP_SCRIPT) && !vip_status(1)) {
switch(getequipweaponlv(.@part)) {
case 0: set .@price, .@price * 10; break;
case 1: set .@price, .@price * 40; break;
case 2: set .@price, .@price * 50; break;
case 3: set .@price, .@price * 2; break;
case 4: set .@price, .@price * 2; break;
case 5: set .@price, .@price * 10; break;
}
}
if(.@features != 1) {
mes "[" + getarg(0) + "]";
mes "To refine this I need";
@ -1269,3 +1237,54 @@ function script repairmain {
close;
}
}
//============================================================
// Old changelog
//============================================================
//= 1.0 by A bunch of people!
//= Syrus22 - Completely redid the script using functions... also
//= added the option for auto safe refining and multiple refining.
//= 1.1 Negative input bug fixed [Lupus]
//= 1.2 Added additional reparimen in morroc and payon. Added
//= Christopher the blacksmith in Geffen. Edited some dialogue [kobra_k88]
//= 1.3 New Payon Locations [Darkchild]
//= Corrected zeny subtraction thx to jpnmania77.[kobra_k88]
//= 1.3a Temporary corrected an exploit. Need to check sources
//= to fully fix bug [Shinigami]
//= Fixed repairman prices [shadowlady]
//= Fixed bug that skips requirements thanks to sir_loon [massdriller]
//= Fixed itemid error thanks to -Vitamin- [massdriller]
//= 1.4 check again item in refining procedure to avoid
//= hacker that can change item [dafide18]
//= 1.5 Fixed crashing due to badly used callfunc's [Skotlex]
//= Lupus, don't rollback this important fix again! >.<
//= 1.5a Corrected an unneeded callfunc, fixed the anti-bot
//= exploit ruining the safe refine loop. [Skotlex]
//= 1.5b Fixed Spelling mistakes. [Nexon]
//= 1.6 Replaced all breaks for ends as per the new script engine [Skotlex]
//= 1.7 Added Einbroch Refiners (Custom names ^^;) and a duplicated BS Shop. [Poki#3]
//= 1.8 Added Lighthalzen Refiners (Custom names again ^^;) [Poki#3]
//= 1.8a Fixed wrong indication thanks to NeoSaro [Lupus]
//= 1.9 Rewrote repairman, removed the Steel from repair cost [DracoRPG]
//= 2.0 Fixed missed equppment presence check. Thx2 Coltaro [Lupus]
//= 2.0a Added weight checks thanks to Neouni [Playtester]
//= 2.0b Fixed the names of Lighthalzen and Einbroch refiners thanks to Maud_Dib [Kargha]
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Changed name from "Emvertacon" to "Emveretarcon". [Samuray22]
//= Thanks to Barron-Monster.
//= 2.2b Changed name from "Pharacon" to "Phracon". [Samuray22]
//= Thanks to Barron-Monster.
//= 2.3 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 2.4 Updated Refiner function. cleaner, and less dated. [L0ne_w0lf]
//= 2.5 Rather large update to the refiner and merchants. :D [L0ne_W0lf]
//= 2.6 Fixed a few bugs with creating pure stones. [L0ne_W0lf]
//= 2.7 Refiner function accepts additional paramater. [L0ne_W0lf]
//= 0 = No special features; 1 = new refining features
//= Updated Repairmen and function. No longer shows menu.
//= 2.7a A couple touch-ups to the repairman function. [L0ne_w0lf]
//= 2.8 Changed the nonexistent variable .@matname$ for getitemname(.@material). (bugreport:2340) [Samuray22]
//= 2.8 Added proper Blacksmith Supplier to Einroch. [L0ne_W0lf]
//= Updated dated features comment to reflect new usage.
//= 2.8a Small bugfix. (bugreport:2418) [Paradox924X]
//= 2.9 Moved Morroc repairman to Morroc Ruins. [L0ne_W0lf]
//============================================================

View File

@ -3,15 +3,16 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.7
//= 1.8
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Used explicitly in the Item Database for Cash shop items
//= Used for Cash shop items:
//= - Kafra Card
//= - Giant Fly Wing
//= - Neuralizer
//= - Dungeon Teleport Scroll
//= Also included are functions related to the VIP system.
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
//= F_CashPartyCall Optimized by Trancid.
@ -24,6 +25,7 @@
//= 1.5 Neuralizer is no longer consumed upon failure. [Euphy]
//= 1.6 Updated Teleport functions and added Curious_Snowball. [Euphy]
//= 1.7 Added Dungeon Teleport Scroll II maps. [Euphy]
//= 1.8 Added VIP function. [Euphy]
//============================================================
// Kafra Card
@ -41,7 +43,6 @@ function script F_CashStore {
return;
}
// Giant Fly Wing
//============================================================
// - Warp party leader to random spot on the map.
@ -301,3 +302,35 @@ function script F_Snowball {
}
end;
}
// VIP Functions
//============================================================
function script VIP_Third_Class {
if (!vip_status(1)) {
mes "[Voice from nowhere]";
mes "Access to Premium content is only available to those who possess a certain amount of Reset Stones.";
next;
if (countitem(6320) < 1) {
mes "[Voice from nowhere]";
mes "In order to change to third class, you must bring 1 ^0000CCReset Stone^000000 or have a Premium account.";
//mes "Please visit our iShop to purchase the ^0000CCReset Stone^000000.";
close;
} else {
mes "[Voice from nowhere]";
mes "Would you like to participate in this quest for 1 ^0000CCReset Stone^000000?";
next;
switch(select("Yes:No")) {
case 1:
mes "[Voice from nowhere]";
mes "Good luck, adventurer.";
delitem 6320,1; //Premium_Reset_Stone
break;
case 2:
mes "[Voice from nowhere]";
mes "Very well.";
close;
}
}
}
return;
}

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -12,6 +12,8 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//= Unsure if this is on kRO, so disabled for now.
//= 1.1 Added iRO VIP features. [Euphy]
//= The function is located in re/quests/eden/eden_vip.txt.
//============================================================
prontera,98,121,4 script Acolyte#Prtclear 90,{
@ -19,6 +21,10 @@ prontera,98,121,4 script Acolyte#Prtclear 90,{
mes "Hello there, adventurer.";
mes "I've been studying magic from all over Rune-Midgard to upgrade what I believe to be one of the greatest skills available to the acolyte class.";
next;
if (is_function("VIP_iRO_Acolyte"))
callfunc "VIP_iRO_Acolyte","[Keiki]","Juno";
mes "[Keiki]";
mes "I am the one and only Acolyte that has attained the Level 10 Warp Portal skill!";
emotion e_dots,1;
@ -40,7 +46,6 @@ prontera,98,121,4 script Acolyte#Prtclear 90,{
next;
setarray .@towns$[0], "Izlude", "Geffen", "Payon", "Morroc", "Alberta", "Al De Baran", "Comodo", "Umbala", "Juno";
setarray .@maps$[0], "izlude", "geffen", "payon", "morocc", "alberta", "aldebaran", "comodo", "umbala", "yuno";
setarray .@cost[0], 600, 1200, 1200, 1200, 1800, 2200, 2200, 2200, 1800;
set .@size, getarraysize(.@towns$);
@ -84,6 +89,10 @@ yuno,142,184,6 script Acolyte#Junoclear 90,{
mes "Hello, adventurer.";
mes "My companion Keiki and I have discovered a way to increase our warp portal abilities.";
next;
if (is_function("VIP_iRO_Acolyte"))
callfunc "VIP_iRO_Acolyte","[Isalei]","Prontera";
mes "[Isalei]";
mes "Though I have not mastered up to the level that she has, I have been able to attain Level 5.";
emotion e_dots,1;
@ -103,7 +112,6 @@ yuno,142,184,6 script Acolyte#Junoclear 90,{
next;
setarray .@towns$[0], "Einbroch", "Lighthalzen", "Hugel", "Rachel", "Prontera";
setarray .@maps$[0], "einbroch", "lighthalzen", "hugel", "rachel", "prontera";
setarray .@cost[0], 2200, 2200, 2200, 2200, 1800;
set .@size, getarraysize(.@towns$);
@ -113,7 +121,7 @@ yuno,142,184,6 script Acolyte#Junoclear 90,{
if (.@i == .@size)
close;
if (Zeny < .@cost[.@i]) {
mes "[Isalei]";
mes "[Isalei]";
mes "I'm sorry, but you don't have";
mes "enough zeny for the Teleport";
mes "Service. The fee to teleport";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.4
//= 1.5
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -22,10 +22,26 @@
//= 1.3 Changed permanent global variables to temporary ones. [Euphy]
//= Added GM NPCs (commented).
//= 1.4 Added GM management function. [Euphy]
//= 1.5 Added Marriage Covenant item and VIP features. [Euphy]
//============================================================
prt_church,97,100,4 script Wedding Staff#w 71,{
cutin "wedding_marry01",2;
if (countitem(6026) == 0) {
// If the VIP system is enabled:
// - Non-VIP players must use a Marriage Covenant to get married.
// - VIP players may either pay the Zeny fee or use a Marriage Covenant.
if (getserverdef(VAR_VIP_SCRIPT) && !vip_status(1)) {
mes "[Marry Happy]";
mes "Sorry but you can't get married right now.";
mes "The wedding is only available for subscribed players.";
mes "But if you have a ^FF0000Marriage Covenant^000000, then you'll be able to get married!";
goto L_End;
}
} else
set .@covenant,1;
if (Upper == 2) {
mes "[Marry Happy]";
mes "Hello~";
@ -93,7 +109,6 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
mes "life with, you might want to pop the question. I hope everyone";
mes "finds their perfect match~";
break;
case 2:
mes "[Marry Happy]";
mes "The first part of the";
@ -115,7 +130,7 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
mes "speak to the Bishop and tell";
mes "him the name of her groom.";
mes "If these names are correctly";
mes "told to the Biship, they will";
mes "told to the Bishop, they will";
mes "be able to exchange rings.";
next;
mes "[Marry Happy]";
@ -181,24 +196,40 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
mes "submit your application.";
mes "I'll see you later, adventurer~";
break;
case 3:
cutin "wedding_marry02",2;
if (getserverdef(VAR_VIP_SCRIPT)) {
mes "[Marry Happy]";
mes "^FF0000Wait!^000000";
mes "^FF0000If your account in not a premium, you must have a Marriage Covenant to get married.^000000";
mes "^FF0000Please check the current state of your account, and the one of your lover, before register for a wedding.^000000";
next;
}
if (Sex) {
mes "[Marry Happy]";
mes "So you'd like to get married?";
mes "As a groom, you need to prepare";
mes "^3377FF1 Tuxedo^000000 and pay ^3377FF1,300,000 zeny^000000.";
mes "Brides have to provide their own Wedding Dresses and pay a fee";
mes "of 1,200,000 zeny.";
}
else {
if (.@covenant) {
mes "^3377FF1 Tuxedo^000000 and give me your ^3377FF1 Marriage Covenant^000000.";
mes "Brides have to provide their own Wedding Dresses and pay a fee";
mes "of 1,200,000 zeny or also bring a Marriage Covenant.";
} else {
mes "^3377FF1 Tuxedo^000000 and pay ^3377FF1,300,000 zeny^000000.";
mes "Brides have to provide their own Wedding Dresses and pay a fee";
mes "of 1,200,000 zeny.";
}
} else {
mes "[Marry Happy]";
mes "So you'd like to get married?";
mes "As a bride, you need to prepare";
mes "1 Wedding Dress and pay a fee";
mes "of 1,200,000 zeny. Grooms must";
mes "bring a Tuxedo and pay 1,300,000 zeny to get married.";
if (.@covenant) {
mes "^3377FF1 Wedding Dress^000000 and give me your ^3377FFMarriage Covenant^000000.";
mes "Grooms must bring a Tuxedo and pay";
mes "1,300,000 zeny or also bring a Marriage Covenant.";
} else {
mes "^3377FF1 Wedding Dress^000000 and pay a fee of 1,200,000 zeny. Grooms must";
mes "bring a Tuxedo and pay 1,300,000 zeny to get married.";
}
}
next;
mes "[Marry Happy]";
@ -259,33 +290,13 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
mes "back after you find it, okay?";
goto L_End;
}
else if (Sex) {
if (Zeny < 1300000) {
mes "[Marry Happy]";
mes "I'm sorry, but you don't";
mes "have the 1,300,000 zeny";
mes "that all grooms must pay";
mes "for the wedding ceremony.";
mes "Did you misplace your money?";
goto L_End;
}
else if (countitem(7170) < 1) {
mes "[Marry Happy]";
mes "Where's your Tuxedo?";
mes "You absolutely have to";
mes "wear it during the wedding";
mes "ceremony! Find it, bring it";
mes "to me, and then we can finally";
mes "begin the wedding, okay?";
goto L_End;
}
}
else if (Sex == 0) {
if (Zeny < 1200000) {
if (countitem(6026) == 0 && Zeny < 1200000) {
mes "[Marry Happy]";
mes "I'm sorry, but all brides";
mes "must pay the 1,200,000";
mes "zeny fee to proceed with the";
mes "zeny fee or bring a Marriage";
mes "Covenant to proceed with the";
mes "wedding ceremony. Perhaps";
mes "you could ask your partner";
mes "to help you with the funds?";
@ -302,6 +313,28 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
goto L_End;
}
}
else if (Sex == 1) {
if (countitem(6026) == 0 && Zeny < 1300000) {
mes "[Marry Happy]";
mes "I'm sorry, but you don't";
mes "have the 1,300,000 zeny";
mes "or the Marriage Covenant";
mes "that all grooms must pay";
mes "for the wedding ceremony.";
mes "Did you misplace your money?";
goto L_End;
}
else if (countitem(7170) < 1) {
mes "[Marry Happy]";
mes "Where's your Tuxedo?";
mes "You absolutely have to";
mes "wear it during the wedding";
mes "ceremony! Find it, bring it";
mes "to me, and then we can finally";
mes "begin the wedding, okay?";
goto L_End;
}
}
mes "[Marry Happy]";
mes "Well, it looks like you";
mes "have everything ready.";
@ -346,26 +379,32 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
emotion e_lv;
next;
mes "[Marry Happy]";
if (Sex) {
mes "Since you're the groom,";
mes "you need to speak to the";
mes "Bishop first. When you're";
mes "finished, it will be your";
mes "bride's turn to speak to";
mes "Bishop Vomars.";
set Zeny, Zeny-1300000;
delitem 7170,1; //Tuxedo
}
else {
if (Sex == 0) {
mes "Since you're the bride,";
mes "you need to wait for the";
mes "groom to speak to Bishop";
mes "Vomars first. When he's";
mes "finished, it'll be your turn";
mes "to speak to Bishop Vomars.";
set Zeny, Zeny-1200000;
if (.@covenant)
delitem 6026,1; //Marriage_Covenant
else
set Zeny, Zeny-1200000;
delitem 2338,1; //Wedding_Dress
}
else {
mes "Since you're the groom,";
mes "you need to speak to the";
mes "Bishop first. When you're";
mes "finished, it will be your";
mes "bride's turn to speak to";
mes "Bishop Vomars.";
if (.@covenant)
delitem 6026,1; //Marriage_Covenant
else
set Zeny, Zeny-1300000;
delitem 7170,1; //Tuxedo
}
delitem 2613,1; //Diamond_Ring
set wedding_sign,1;
goto L_End;
@ -378,7 +417,6 @@ prt_church,97,100,4 script Wedding Staff#w 71,{
mes "me so that you can apply,";
mes "okay? Have a good day~";
break;
case 4:
cutin "wedding_marry02",2;
donpcevent "Single Army#Prontera::OnEnable";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.3
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -14,9 +14,10 @@
//= 1.1 Fixed Zeny not being removed for payment. [Kisuka]
//= 1.2 Updated dialog, added Ice Cream Maker. [L0ne_W0lf]
//= 1.3 Moved Alberta NPC to pre-re/re paths. [Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
// Brasilis Transportation
// Brasilis Transportation :: brasilis_trans
//============================================================
/* Pre-Renewal coordinates: alberta,247,115,3 */
alberta,246,82,3 script Crewman#bra2 100,{
@ -26,22 +27,28 @@ alberta,246,82,3 script Crewman#bra2 100,{
next;
mes "[Crewman]";
mes "We recently found a new ocean route to get there easily.";
mes "It's just 10,000 zeny for a round trip! So do you want to go?";
if (getserverdef(VAR_VIP_SCRIPT)) {
set .@cost, vip_status(1)?1000:10000;
mes "It's just 10,000 zeny for a round trip, and 1,000 for VIP! So do you want to go?"; //custom translation (VIP)
} else {
set .@cost,10000;
mes "It's just 10,000 zeny for a round trip! So do you want to go?";
}
next;
switch(select("Take me to Brasilis!:I'll stay here.")) {
case 1:
if (Zeny > 9999) {
if (Zeny < .@cost) {
mes "[Crewman]";
mes "Cool~!! Let's go~!";
set Zeny, Zeny-10000;
close2;
warp "brasilis",314,60;
end;
mes "I said "+(.@cost/1000)+",000 zeny.";
close;
}
else {
mes "[Crewman]";
mes "I said 10,000 zeny.";
close;
mes "Cool~!! Let's go~!";
set Zeny, Zeny-.@cost;
close2;
warp "brasilis",314,60;
end;
}
case 2:
mes "[Crewman]";
@ -71,7 +78,7 @@ brasilis,316,57,3 script Crewman#bra1 100,{
}
}
// Generic Brasilis NPCs
// Generic Brasilis NPCs :: brazil_tre
//============================================================
brasilis,155,165,3 script Signpost#bra1 858,{
mes ":: Art Museum ::";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Gennosuke Kouga, Muad_Dib
//===== Current Version: =====================================
//= 1.3
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -14,24 +14,31 @@
//= 1.1 Standardized. [Euphy]
//= 1.2 Fixed Zeny check. [Joseph]
//= 1.3 Updated to match the official script. [Lemongrass/Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
// Dewata Transportation
// Dewata Transportation :: dewata_trans
//============================================================
alberta,212,202,4 script Dewata Sailor#alberta 536,{
mes "[Dewata Sailor]";
mes "Do you want to visit ^8B4513Dewata Island^000000?";
mes "With it's dazzling waves and charming views it's a great place to relax.";
mes "The transit fee is 10,000 Zeny.";
mes "With its dazzling waves and charming vistas it's a great place to relax.";
if (getserverdef(VAR_VIP_SCRIPT)) {
set .@cost, vip_status(1)?1000:10000;
mes "The transit fee is 10,000 Zeny and 1,000 for VIP.";
} else {
set .@cost,10000;
mes "The transit fee is 10,000 Zeny.";
}
next;
switch(select("Yes!:No.")) {
case 1:
if (Zeny >= 10000) {
if (Zeny >= .@cost) {
mes "[Dewata Sailor]";
mes "^8B4513Dewata^000000 is a beautiful and peaceful island country.";
mes "Have a nice trip~";
close2;
set Zeny, Zeny - 10000;
set Zeny, Zeny - .@cost;
warp "dewata",232,53;
end;
} else {
@ -69,7 +76,7 @@ dewata,229,49,6 script Alberta Sailor#dewata 536,{
}
}
// Generic Dewata NPCs
// Generic Dewata NPCs :: dewata_npc
//============================================================
dewata,221,237,5 script Young Man#dew-1 536,{
mes "[Fruit Fancier]";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//= 1.1 Added GM management NPC. [Euphy]
//= 1.2 Added VIP features. [Euphy]
//============================================================
ma_scene01,174,179,4 script Taho 541,{
@ -474,10 +475,10 @@ OnMobSpawn:
erasequest 12279;
mes "[Taho]";
mes "This was found from Bakonawa's corpse. It would be better if you take this.";
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6499,7; //Ancient_Grudge
// else
// getitem 6499,5; //Ancient_Grudge
else
getitem 6499,5; //Ancient_Grudge
getexp 0,100000;
next;
}

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//= 1.1 Added GM management function. [Euphy]
//= 1.2 Added VIP features. [Euphy]
//============================================================
// Instance Creation
@ -160,10 +161,10 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 569,{
erasequest 9224;
setquest 9223;
getexp 500000,0;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6499,7; //Ancient_Grudge
// else
// getitem 6499,5; //Ancient_Grudge
else
getitem 6499,5; //Ancient_Grudge
close2;
cutin "",255;
end;

View File

@ -4,7 +4,7 @@
//= L0ne_W0lf
//= Credits: Gepard
//===== Current Version: =====================================
//= 1.9
//= 2.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -24,6 +24,7 @@
//= 1.7a Moved warps to separate file. [Euphy]
//= 1.8 Bug fixes and corrections. [Euphy]
//= 1.9 Added GM management function. [Euphy]
//= 2.0 Added VIP features. [Euphy]
//============================================================
prt_church,103,88,3 script Praying Minister#arch 60,{
@ -60,6 +61,12 @@ prt_church,103,88,3 script Praying Minister#arch 60,{
mes "You can't change jobs without using all your skill points. Please use all of your skill points before applying to change jobs~";
close;
}
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_arch,1;
setquest 2187;
next;
}
mes "[Praying Minister]";
mes "In front of the Almighty God Odin,";
mes "there shall be no person smarter than him,";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN r16945+
//===== Description: =========================================
@ -18,6 +18,7 @@
//= 1.3 Added missing OnMyMobDead labels. [Euphy]
//= 1.4 Added missing labels. [Joseph]
//= 1.5 Added GM management function. [Euphy]
//= 1.6 Added VIP features. [Euphy]
//============================================================
que_job01,75,96,3 script Guild Member#3rdgc01 997,{
@ -77,6 +78,12 @@ que_job01,75,96,3 script Guild Member#3rdgc01 997,{
next;
switch(select("I'll do it.:Give me time to think.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_3rd_gc, 3;
setquest 7101;
next;
}
mes "[Ahcart]";
mes "Ok, to Veins.";
mes "I'll contact them.";
@ -124,6 +131,12 @@ que_job01,75,96,3 script Guild Member#3rdgc01 997,{
next;
switch(select("I'll do it.:I'm not ready.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_3rd_gc, 3;
setquest 7101;
next;
}
mes "[Ahcart]";
mes "Ok, to Veins.";
mes "I'll contact them.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.2
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//= 1.0 First Version. [Masao]
//= 1.1 Fixed the Door NPC [JayPee].
//= 1.2 Updated script. [Euphy]
//= 1.3 Added VIP features. [Euphy]
//============================================================
yuno,129,156,3 script Chainheart 923,{
@ -217,6 +218,12 @@ yuno,129,156,3 script Chainheart 923,{
}
if (BaseJob == Job_Blacksmith) {
if (BaseLevel > 98 && JobLevel > 49 && SkillPoint == 0) {
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job__mechanic,1;
setquest 10090;
next;
}
mes "At a glance, you, seem to be a very versatile person on dealing with various things.";
mes "You look quite skilled.";
mes "You can be the one.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.6
//= 1.7
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -21,6 +21,7 @@
//= 1.4 Some optimization. [Euphy]
//= 1.5 Updated script, optimized. [Euphy]
//= 1.6 Added GM management function. [Euphy]
//= 1.7 Added VIP features. [Euphy]
//============================================================
tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
@ -66,6 +67,12 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
mes "It looks like you have";
mes "enough experience.";
next;
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_ranger01,1;
setquest 8254;
next;
}
mes "[Survival Instructor, Rescue]";
mes "Good.";
mes "First of all, let me tell you the job change qualifications to be a Ranger.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf, Muad_Dib
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -17,6 +17,7 @@
//= 1.4 Fixed a few bugs. [Euphy]
//= 1.4a Moved Kafra to main file. [Euphy]
//= 1.5 Added GM management function. [Euphy]
//= 1.6 Added VIP features. [Euphy]
//============================================================
prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
@ -78,6 +79,12 @@ prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
mes "Of course, I would only accept you if you are one hundred percent sure of your conviction to become a Rune Knight.";
close;
case 2:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_rune_edq,1;
setquest 3200;
next;
}
mes "[Rune Knight Manuel]";
mes "You're sure now?";
mes "Let me send a dispatch to my comrades that you are willing to join our ranks.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib, Gepard & L0ne_W0lf
//===== Current Version: =====================================
//= 1.4
//= 1.5
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -20,6 +20,7 @@
//= 1.3a Added temporary coordinate fix #distorted_space_1-1. [Euphy]
//= 1.3b Added official coordinates. [Euphy]
//= 1.4 Added GM management function. [Euphy]
//= 1.5 Added VIP features. [Euphy]
//============================================================
- script #distorted_space_ -1,{
@ -162,6 +163,12 @@ function script F_Warlock {
next;
switch(select("What do I need to do?:Cancel.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_wl,2;
setquest 11106;
next;
}
mes "[Master Egnoloria]";
mes "Are you serious?";
mes "You hunger for power don't you human.";
@ -580,6 +587,12 @@ spl_in02,80,108,5 script Guild Master#Warlock 465,{
next;
switch(select("How can I be a Warlock?:Cancel.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_wl,2;
setquest 11106;
next;
}
mes "[Master Egnoloria]";
mes "Are you serious?";
mes "You hunger for power don't you human.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib, Aeomin
//===== Current Version: =====================================
//= 1.3a
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -15,6 +15,7 @@
//= 1.2 Updated dialogue. Credits to Muad_Dib. [Joseph]
//= 1.3 Updated script, optimized. [Euphy]
//= 1.3a Moved warps to separate file. [Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
alde_alche,35,186,5 script Alchemist Union Member 805,{
@ -52,6 +53,12 @@ alde_alche,35,186,5 script Alchemist Union Member 805,{
next;
switch(select("Of course, I want to meet a Geneticist.:I don't want to meet a Geneticist.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_gen,1;
setquest 2215;
next;
}
mes "[Alchemist Union Member]";
mes "Wise choice!";
mes "The infamous Geneticist 'Devries'.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.3
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -14,6 +14,7 @@
//= 1.1 Fix the checking of requirements before job change to Minstel [JayPee]
//= 1.2 Optimized. [Euphy]
//= 1.3 Updated script. [Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
alberta,196,133,4 script Bard#job_min 486,{
@ -116,6 +117,12 @@ alberta,196,133,4 script Bard#job_min 486,{
mes "See you later~";
close;
}
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_min,1;
setquest 11135;
next;
}
mes "["+strcharinfo(0)+"]";
mes "Ok, I will.";
set job_min,1;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.2
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//= 1.0 First Version. [brAthena]
//= 1.1 Updated script. [Euphy]
//= 1.2 Added GM management function. [Euphy]
//= 1.3 Added VIP features. [Euphy]
//============================================================
prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
@ -109,6 +110,12 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
next;
switch(select("I want to know more.:Stop talking.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_royal,1;
setquest 12090;
next;
}
mes "[Heinrich]";
mes "You are impetuous.";
next;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.3
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -14,6 +14,7 @@
//= 1.1 Standardized. [Euphy]
//= 1.2 Updated dialogue. [Joseph]
//= 1.3 Updated to official script. [Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
morocc,156,70,3 script Girl#sc00 93,3,3,{
@ -194,6 +195,12 @@ in_rogue,379,101,3 script Scary Man#sc03 810,{
mes "I don't care for people like you. I just deal with the extraordinary.";
close;
} else if (job_sha == 1) {
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_sha,2;
setquest 7160;
next;
}
mes "[Urupa]";
mes "We give a quiz and nobody has yet to solve it.";
mes "You want it to be solved?";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
//= 1.2
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//= 1.0 First Version. [Masao]
//= 1.1 Cleaning. [Euphy]
//= 1.2 Updated script, optimized. [Euphy]
//= 1.3 Added VIP features. [Euphy]
//============================================================
gef_tower,102,34,5 script Merito 742,{
@ -110,6 +111,12 @@ gef_tower,102,34,5 script Merito 742,{
next;
switch(select("I will take the test.:I'll do it later.")) {
case 1:
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_soc,2;
setquest 12096;
next;
}
mes "[Merito]";
mes "Okay. ";
mes "Then I'll hand it over to Karacas who is on the 4th floor. He will guide you through the process of the test.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib, Gepard
//===== Current Version: =====================================
//= 1.3
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -14,10 +14,20 @@
//= 1.1 Removed disablenpc which causes players stucked in waitingroom. [Joseph]
//= 1.2 Updated script, optimized. [Euphy]
//= 1.3 Added GM management function. [Euphy]
//= 1.4 Added VIP features. [Euphy]
//============================================================
ve_in,237,125,0 script King Crab#job_shu 107,{
if (job_shu == 0) {
if (BaseJob == Job_Monk && BaseLevel >= 99 && JobLevel >= 50) {
set .@job_check,1;
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_shu,1;
setquest 11155;
next;
}
}
mes "[King Crab]";
mes "Khh ha ha ha ha ha ha.";
mes "That little rookie was knocked out by my one blow!";
@ -26,7 +36,7 @@ ve_in,237,125,0 script King Crab#job_shu 107,{
mes "Those arrogant fellows deserve a bitter lesson.";
mes "How dare a little rookie attack you, boss!";
next;
if (BaseJob != Job_Monk || BaseLevel < 99 || JobLevel < 50) {
if (.@job_check) {
mes "[King Crab]";
mes "Khhha ha ha ha ha ha!!!!";
mes "One more cup of beer, here!!!";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib, Meyraw
//===== Current Version: =====================================
//= 1.4
//= 1.5
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -15,6 +15,7 @@
//= 1.2 Fixed an endless loop in dialogue.
//= 1.3 Fixed a typo and added checkquest. [Joseph]
//= 1.4 Updated script, optimized. [Euphy]
//= 1.5 Added VIP features. [Euphy]
//============================================================
xmas,162,209,5 script Aspiring Wanderer, Soy 714,{
@ -265,6 +266,12 @@ xmas,132,143,5 script Performance Manager#wnd 713,{
mes "You are so cold-hearted....";
close;
}
if (getserverdef(VAR_VIP_SCRIPT)) {
callfunc "VIP_Third_Class";
set job_wan,2;
setquest 2218;
next;
}
mes "[Performance Manager]";
mes "I would grab them by their collars if I could!";
mes "I would tell them Why are you spoiling the performance? but for now, dealing with the angry sponsors is hard enough... Oh, no!";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
//= 1.5
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -19,6 +19,7 @@
//= 1.4 Fixed checkquest to check quest accordingly. [Joseph]
//= 1.4a Added 'npcskill' command. [Euphy]
//= 1.5 Replaced with the official kRO scripts. [Euphy]
//= 1.6 Added VIP features. [Euphy]
//============================================================
// Main NPCs
@ -948,19 +949,20 @@ L_Services:
next;
// VIP System messages.
mes "[Kafra Employee]";
mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of items in Storage.";
next;
/*
mes "[Kafra Employee]";
mes "There are a maximum of 300 Inventory Slots in Kafra Storage, meaning you can have up to 300 different kinds of items in Storage.";
next;
mes "[Kafra Employee]";
mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is 600!";
mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
next;
*/
if (getserverdef(VAR_MIN_STORAGE) != getserverdef(VAR_MAX_STORAGE)) {
mes "[Kafra Employee]";
mes "There are a maximum of "+getserverdef(VAR_MIN_STORAGE)+" Inventory Slots in Kafra Storage, meaning you can have up to "+getserverdef(VAR_MIN_STORAGE)+" different kinds of items in Storage.";
next;
mes "[Kafra Employee]";
mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is "+getserverdef(VAR_MAX_STORAGE)+"!";
mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
next;
} else {
mes "[Kafra Employee]";
mes "There are a maximum of "+getserverdef(VAR_MAX_STORAGE)+" Inventory Slots in Kafra Storage, meaning you can have up to "+getserverdef(VAR_MAX_STORAGE)+" different kinds of items in Storage.";
next;
}
mes "[Kafra Employee]";
mes "This Storage is shared by every character on one account.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= -SkittleNugget-
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -12,6 +12,7 @@
//===== Additional Comments: =================================
//= 1.0 First version.
//= 1.1 Edited and added more NPCs, lots of placeholders. [Euphy]
//= 1.2 Added VIP NPCs and features. [Euphy]
//============================================================
// Acolyte Warper (part of other/acolyte_warp.txt)
@ -21,6 +22,10 @@ moc_para01,14,32,5 script Aperture#acolytewarp 90,{
mes "Hello there, adventurer.";
mes "I've been studying magic from all over Rune-Midgard to upgrade what I believe to be one of the greatest skills available to the acolyte class.";
next;
if (is_function("VIP_iRO_Acolyte"))
callfunc "VIP_iRO_Acolyte","[Aperture]","Prontera";
mes "[Aperture]";
mes "I am the one and only Acolyte that has attained the Level 10 Warp Portal skill!";
emotion e_dots,1;
@ -90,6 +95,131 @@ moc_para01,14,32,5 script Aperture#acolytewarp 90,{
}
}
function script VIP_iRO_Acolyte {
if (!vip_status(1)) {
mes getarg(0);
mes "But, my full powers are only available to those who have are VIPs.";
mes "I can still offer you a warp to "+getarg(1)+" though.";
next;
switch(select(getarg(0)+" -> 1800z:Cancel")) {
case 1:
if (Zeny < 1800) {
mes getarg(0);
mes "I'm sorry, but you don't have";
mes "enough zeny for the Teleport";
mes "Service. The fee to teleport";
mes "to "+getarg(1)+" is 1,800 zeny.";
close;
}
specialeffect2 EF_READYPORTAL;
specialeffect2 EF_TELEPORTATION;
specialeffect2 EF_PORTAL;
next;
set Zeny, Zeny - 1800;
if (getarg(1) == "Juno")
warp "yuno",158,125;
else
warp "prontera",116,72;
close;
case 2:
close;
}
}
return;
}
// Primo d'Buffer, VIP stat bonuses
//============================================================
moc_para01,26,15,3 script Primo d'Buffer 790,{
mes "[Primo d'Buffer]";
mes "Hello adventurer, you look like you are itching to get out there and save the world!";
if (!vip_status(1)) {
mes "I can also tell that you haven't been blessed with '^6666ffVIP Status^000000'.";
next;
mes "[Primo d'Buffer]";
mes "My orders are to help out any Adventurer marked as VIP with special Buffs!";
mes "Currently I will give you ^ff0000+7 to all of your Stats for 30 minutes^000000 if you are VIP.";
close;
}
mes "I can also tell that you have been blessed with '^007FFFVIP Status^000000'.";
next;
mes "[Primo d'Buffer]";
mes "That is awesome!";
mes "Here is +7 to all your stats for 30 minutes to help you on your journey. Just come back when you need to refill your stats!";
close2;
sc_start SC_FOOD_STR_CASH,1200000,7;
sc_start SC_FOOD_AGI_CASH,1200000,7;
sc_start SC_FOOD_VIT_CASH,1200000,7;
sc_start SC_FOOD_DEX_CASH,1200000,7;
sc_start SC_FOOD_INT_CASH,1200000,7;
sc_start SC_FOOD_LUK_CASH,1200000,7;
end;
}
// Clearchus, VIP mercenary rentals
//============================================================
moc_para01,53,30,3 script Clearchus 470,{
if (checkquest(62238,PLAYTIME) > -1 && checkquest(62238,PLAYTIME) < 2) {
mes "You must wait for the timer to finish before you can hire a new mercenary.";
close;
}
mes "[Clearchus]";
mes "Greetings young adventurer! I represent the Midgardian Mercenary Mission.";
next;
mes "[Clearchus]";
mes "We provide training to aspiring mercenaries by pairing them with adventurers such as yourself.";
next;
mes "[Clearchus]";
mes "Our organization is 10,000 strong! Now let me see if you are registered for this service.";
next;
if (!vip_status(1)) {
mes "[Clearchus]";
mes "Unfortunately it appears that you are not VIP, please get VIP so that you can use this service. You can get a temporary VIP access by talking to Gramps at the Eden Group Headquarters.";
next;
mes "[Clearchus]";
mes "Vip is a very useful tool for adventurers to have, giving access to extra Kafra Services, discounted warps, exclusive content, and use of Primo d'Buffer. If an adventurer has full vip they even get an Exp, Drops, and storage boost!";
close;
}
mes "[Clearchus]";
mes "Your name is on the list.";
next;
mes "[Clearchus]";
mes "What kind of skill set are you looking for in a mercenary?";
next;
switch(select("Swordsman:Archer:Lancer")) {
case 1:
set .@base_id,12163; //SwordMercenary_Scroll
break;
case 2:
set .@base_id,12153; //Bow_Mercenary_Scroll
break;
case 3:
set .@base_id,12173; //SpearMercenary_Scroll
break;
}
if (BaseLevel < 11) set .@i,0;
else if (BaseLevel < 21) set .@i,1;
else if (BaseLevel < 31) set .@i,2;
else if (BaseLevel < 41) set .@i,3;
else if (BaseLevel < 51) set .@i,4;
else if (BaseLevel < 61) set .@i,5;
else if (BaseLevel < 71) set .@i,6;
else if (BaseLevel < 81) set .@i,7;
else if (BaseLevel < 91) set .@i,8;
else set .@i,9;
mes "[Clearchus]";
mes "I have just the mercenary in mind!";
next;
mes "[Clearchus]";
mes "Have fun now, ya hear?";
getitem .@base_id + .@i,1;
setquest 62238;
close;
}
// Carrot & Red Potion Traders
//============================================================
moc_para01,166,51,3 script Phelix#edco 85,{

View File

@ -3,7 +3,7 @@
//===== By ===================================================
//= L0ne_W0lf
//===== Version ==============================================
//= 1.2a
//= 1.3
//===== Compatible With ======================================
//= rAthena SVN
//===== Description ==========================================
@ -19,6 +19,7 @@
//= 1.1 Hydra Ball (12408)
//= 1.2 Optimization. [Euphy]
//= 1.2a Added 'consumeitem' command. [Euphy]
//= 1.3 Added VIP features and fixed some EXP values. [Euphy]
//============================================================
// Lost Puppies :: dogdog.sc
@ -50,7 +51,10 @@ brasilis,297,307,5 script Angelo#br 50,{
mes "Oh, thank you. You found all of 3 puppies.";
mes "Thanks a lot.";
mes "I hope this is useful to you. hoho.";
getexp 50000,0;
if (getserverdef(VAR_VIP_SCRIPT) && vip_status(1))
getexp 75000,0;
else
getexp 50000,0;
erasequest 9031;
setquest 9032;
specialeffect2 EF_ASSUMPTIO;
@ -451,7 +455,10 @@ brasilis,187,162,5 script Candy Maker 476,{
set brazil_gua,11;
completequest 2200;
getitem 12414,1; //Guarana_Candy
getexp 700000,100000;
if (getserverdef(VAR_VIP_SCRIPT) && vip_status(1))
getexp 105000,15000;
else
getexp 70000,10000;
close;
}
else if (brazil_gua == 11) {
@ -1089,7 +1096,10 @@ brasilis,203,286,3 script Botanist Karmen#bra 893,{
mes "The water lily must truly be a lucky flower. hahaha";
set brazil_regia,10;
completequest 2207;
getexp 500000,100000;
if (getserverdef(VAR_VIP_SCRIPT) && vip_status(1))
getexp 75000,15000;
else
getexp 50000,10000;
close;
}
else {
@ -2797,7 +2807,10 @@ bra_in01,206,188,1 script Open Manhole#todunbra 844,{
set brazil_ghost,8;
//completequest 2208;
completequest 60355;
getexp 900000,0;
if (getserverdef(VAR_VIP_SCRIPT) && vip_status(1))
getexp 135000,0;
else
getexp 90000,0;
disablenpc "Ghost#bra_end";
close;
}

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -22,6 +22,7 @@
//= 0.5 Added "Bakonawa Extermination" quest. [Euphy]
//= 1.0 Added "Nurse in Port Malaya" and "Pintados Festival" quests. [Euphy]
//= 1.1 Added GM management function and NPC. [Euphy]
//= 1.2 Added VIP features. [Euphy]
//============================================================
// Cautious Village & Daily Quests :: hi_malaya
@ -152,10 +153,10 @@ malaya,266,76,3 script Rodel the Guard#malaya 570,4,4,{
next;
mes "[Rodel the Guard]";
mes "I think there will be more Jejeling hunts in the future. Please join us again next time.";
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
erasequest 7404;
setquest 7405;
@ -705,10 +706,10 @@ malaya,169,350,5 script Imelda#malaya 475,{
erasequest 7374;
erasequest 7379;
setquest 7375;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (rand(1))
$malayaNames$[0] = strcharinfo(0);
@ -743,10 +744,10 @@ malaya,169,350,5 script Imelda#malaya 475,{
delitem 6502, 6; // Silver_Cross
erasequest 7380;
setquest 7381;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
close;
} else {
@ -811,10 +812,10 @@ malaya,169,350,5 script Imelda#malaya 475,{
setquest 7375;
erasequest 7374;
erasequest 7379;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (rand(1))
$malayaNames$[0] = strcharinfo(0);
@ -1113,10 +1114,10 @@ malaya,181,353,5 script Old Man Nardo#malaya 574,{
delitem 6503, 5; // Soul_Protection
setquest 7378;
erasequest 7377;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[2] = strcharinfo(0);
@ -1727,10 +1728,10 @@ malaya,295,171,3 script Collection Dealer Woeon 582,{
delitem 6498, countitem(6498); //Jejellopy
setquest 7392;
erasequest 7391;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
set .@memo_name, rand(1,3);
if (!rand(3))
@ -1961,10 +1962,10 @@ malaya,119,217,3 script Blacksmith Pandoi 538,{
delitem 6508, 10; //Silver_Bracelet
setquest 7394;
erasequest 7393;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[1] = strcharinfo(0);
@ -2373,10 +2374,10 @@ malaya,326,68,2 script Pedro the Sailor 100,{
set malaya_diwata, 6;
erasequest 7399;
setquest 7401;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[0] = strcharinfo(0);
@ -2436,10 +2437,10 @@ malaya,326,68,2 script Pedro the Sailor 100,{
mes "I think you kind of like doing it.";
setquest 7401;
erasequest 7403;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[0] = strcharinfo(0);
@ -2927,10 +2928,10 @@ ma_fild01,239,253,3 script Dhong the Guard 570,{
delitem 6505, 10; // Purified_Bone
setquest 7408;
erasequest 7407;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(0, 2))
$malayaNames$[2] = strcharinfo(0);
@ -3023,10 +3024,10 @@ ma_fild01,200,190,3 script Maries#malaya 579,{
mes "Thank you for delivering those precious shirts to my children.";
setquest 7390;
erasequest 7389;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[2] = strcharinfo(0);
@ -3262,10 +3263,10 @@ ma_fild02,241,39,5 script Good Capre Budidai 572,{
mes "This is a blessing for friends. Hey hey hey~";
setquest 7410;
erasequest 7409;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497, 2; // Lesser_Agimat
// else
// getitem 6497, 1; // Lesser_Agimat
else
getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
if (!rand(3))
$malayaNames$[1] = strcharinfo(0);
@ -4235,10 +4236,6 @@ ma_in01,47,101,3 script Totoy#buwaya 577,7,7,{
setquest 2279;
close;
} else if (malaya_buwaya == 13) {
// if (IsPremiumPcCafe == 10)
.@amount = 10;
// else
// .@amount = 5;
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait!! -";
mes "- You have too many items on you. -";
@ -4263,7 +4260,10 @@ ma_in01,47,101,3 script Totoy#buwaya 577,7,7,{
mes "[Dog]";
mes "Woof woof woof!!!!";
set malaya_buwaya,14;
getitem 6497,5; //Lesser_Agimat
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497,10; //Lesser_Agimat
else
getitem 6497,5; //Lesser_Agimat
disablenpc "Dog#buwaya_totoi";
erasequest 2279;
setquest 2280;
@ -4689,10 +4689,6 @@ malaya,290,340,3 script Guard Leader#buwaya 571,{
mes "There is no shame in rejecting this request.";
erasequest 2281;
} else if (.@hunting == 2) {
// if (IsPremiumPcCafe == 10)
.@amount = 10;
// else
// .@amount = 5;
mes "[Guard Leader]";
mes "Can't believe you really got rid of Buwaya!";
mes "You aren't just any ordinary youth, aren't you? People of Port Malaya can now sleep at night.";
@ -4700,7 +4696,10 @@ malaya,290,340,3 script Guard Leader#buwaya 571,{
mes "[Guard Leader]";
mes "Good work.";
erasequest 2281;
getitem 6497, .@amount; //Lesser_Agimat
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497,10; //Lesser_Agimat
else
getitem 6497,5; //Lesser_Agimat
getexp 0,600000;
} else {
mes "[Guard Leader]";
@ -5222,10 +5221,10 @@ malaya,285,332,4 script Old Legend Teller#bako1 574,{
mes "Please get rid of this monster for us.";
erasequest 1179;
set malaya_bakona1,7;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6499,5; //Ancient_Grudge
// else
// getitem 6499,3; //Ancient_Grudge
else
getitem 6499,3; //Ancient_Grudge
getexp 500000,200000;
close;
}
@ -5742,10 +5741,10 @@ malaya,283,265,4 script Village Chief#bako2 580,{
erasequest 1184;
setquest 1185;
set malaya_bakona2,6;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 12700,7; //Insideout_Shirt
// else
// getitem 12700,5; //Insideout_Shirt
else
getitem 12700,5; //Insideout_Shirt
close;
} else if (malaya_bakona2 == 6) {
mes "[Village Chief]";
@ -5848,10 +5847,10 @@ malaya,283,265,4 script Village Chief#bako2 580,{
erasequest 1193;
set malaya_bakona2,15;
getexp 1000000,600000;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 6497,7; //Lesser_Agimat
// else
// getitem 6497,5; //Lesser_Agimat
else
getitem 6497,5; //Lesser_Agimat
close;
} else if (malaya_bakona2 == 15) {
mes "[Village Chief]";
@ -6132,10 +6131,10 @@ malaya,289,364,4 script Young Fortune Teller 583,{
erasequest 1186;
setquest 1187;
set malaya_bakona2,8;
// if (IsPremiumPcCafe == 10)
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1))
getitem 12699,7; //Tikbalang_Belt
// else
// getitem 12699,5; //Tikbalang_Belt
else
getitem 12699,5; //Tikbalang_Belt
close;
} else {
mes "[Young Fortune Teller]";
@ -6750,13 +6749,13 @@ L_Warp:
}
L_Reward:
// if (IsPremiumPcCafe == 10) {
if (!getserverdef(VAR_VIP_SCRIPT) || vip_status(1)) {
getitem 6499,5; //Ancient_Grudge
getitem 6497,10; //Lesser_Agimat
// } else {
// getitem 6499,3; //Ancient_Grudge
// getitem 6497,5; //Lesser_Agimat
// }
} else {
getitem 6499,3; //Ancient_Grudge
getitem 6497,5; //Lesser_Agimat
}
getitem 617,1; //Old_Violet_Box
getexp 1000000,0;
return;

View File

@ -74,6 +74,13 @@
/// Uncomment to enable VIP system.
//#define VIP_ENABLE
/// Enable VIP script changes? (requires VIP_ENABLE)
/// The primary effects of this are restrictions on non-VIP players, such as requiring
/// a Reset Stone to change into third classes, paying more for equipment upgrades, and
/// so forth. Note that the changes are based on euRO, not iRO.
#define VIP_SCRIPT 0
#ifdef VIP_ENABLE
#define MIN_STORAGE 300 // Default number of storage slots.
#define MIN_CHARS 3 // Default number of characters per account.
@ -88,7 +95,6 @@
#if (MIN_CHARS + MAX_CHAR_VIP + MAX_CHAR_BILLING) > MAX_CHARS
#error "Config of MAX_CHARS is invalid"
#endif
#define VIP_SCRIPT 0 //enable or disable scripts (require vip_enable)
/**
* No settings past this point

View File

@ -18011,6 +18011,7 @@ BUILDIN_FUNC(getserverdef) {
case 8: script_pushint(st,MAX_GUILD_STORAGE); break;
case 9: script_pushint(st,MAX_BG_MEMBERS); break;
case 10: script_pushint(st,VIP_SCRIPT); break;
case 11: script_pushint(st,MIN_STORAGE); break;
default:
ShowWarning("buildin_getserverdef: unknown type %d.\n", type);
script_pushint(st,0);
@ -18019,12 +18020,12 @@ BUILDIN_FUNC(getserverdef) {
return 0;
}
#ifdef VIP_ENABLE
/* Returns various information about a player's VIP status.
* vip_status <type>,{"<character name>"};
* Note: VIP System needs to be enabled.
*/
BUILDIN_FUNC(vip_status) {
#ifdef VIP_ENABLE
TBL_PC *sd;
char *vip_str = (char *)aMalloc(24*sizeof(char));
time_t now = time(NULL);
@ -18039,10 +18040,10 @@ BUILDIN_FUNC(vip_status) {
return 0;
switch(type) {
case 0: // Get VIP status.
case 1: // Get VIP status.
script_pushint(st, pc_isvip(sd));
break;
case 1: // Get VIP expire date.
case 2: // Get VIP expire date.
if (pc_isvip(sd)) {
time_t viptime = (time_t)sd->vip.time;
strftime(vip_str, 24, "%Y-%m-%d %H:%M", localtime(&viptime));
@ -18051,7 +18052,7 @@ BUILDIN_FUNC(vip_status) {
} else
script_pushint(st, 0);
break;
case 2: // Get remaining time.
case 3: // Get remaining time.
if (pc_isvip(sd)) {
time_t viptime = (time_t)sd->vip.time;
strftime(vip_str, 24, "%Y-%m-%d %H:%M", localtime(&viptime - now));
@ -18061,9 +18062,13 @@ BUILDIN_FUNC(vip_status) {
script_pushint(st, 0);
break;
}
#else
script_pushint(st, 0);
#endif
return 0;
}
#ifdef VIP_ENABLE
/* Adds or removes VIP time in minutes.
* vip_time <time>,{"<character name>"};
* If time < 0 remove time, else add time.
@ -18705,8 +18710,8 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(is_clientver,"ii?"),
BUILDIN_DEF(getserverdef,"i"),
BUILDIN_DEF2(montransform, "transform", "vii????"), // Monster Transform [malufett/Hercules]
#ifdef VIP_ENABLE
BUILDIN_DEF(vip_status,"i?"),
#ifdef VIP_ENABLE
BUILDIN_DEF(vip_time,"i?"),
#endif
BUILDIN_DEF(bonus_script,"si???"),