fixed storage access w/o password trough Cool Corp. Staff. Yup. We don't have packet/client based Storage password yet. So fixed it due to many complains.

Also added cutins into Cool Evnt.Staff NPC

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11159 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
Lupus 2007-09-10 05:33:07 +00:00
parent dab25c6b7b
commit 4d5c7cc604
3 changed files with 104 additions and 38 deletions

View File

@ -1,5 +1,10 @@
Date Added
======
2007/09/10
* Fixed Kafra Storage Exploit via Cool Event Co. Storage. Added password protection to C.E.C NPC [Lupus]
Note: We use script based storage password due to lack of Packet/Client Storage Password Support.
There were many complains from those servers that use extra password protection from account rippers
- Added cutins to Cool Event Co. Staff
2007/09/09
* Uncommented Cursed Abbey spawns [Playtester]
2007/09/08

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Gepard
//===== Current Version: =====================================
//= 1.2
//= 1.3
//===== Compatible With: =====================================
//= eAthena
//===== Description: =========================================
@ -14,10 +14,13 @@
//= 1.1 Optimized, fixed a conditional bug [Lupus]
//= 1.1a Redo back. It wasn't a bug [Lupus]
//= 1.2 Added Rachel Cool Event Corp. Staff [Playtester]
//= 1.3 Added cutins, closed Kafra Password exploit
//= until we got a client/packet based password support [Lupus]
//============================================================
hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
cutin "zonda_01",2;
mes "[Cool Event Corp. Staff]";
mes "Welcome to Cool Event Corp.";
mes "Our staff is always working";
@ -26,7 +29,7 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "may I assist you today?";
next;
switch(select("Save:Use Storage:Rent a Pushcart:Cancel")){
switch(select("Save:Use Storage:Rent a Pushcart:Storage Password Service:Cancel")){
case 1:
mes "[Cool Event Corp. Staff]";
mes "Your Respawn Point";
@ -36,7 +39,9 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Cool Event Corp. service~";
emotion e_thx;
savepoint "hugel",96,155;
close;
close2;
cutin "", 255;
end;
case 2:
mes "[Cool Event Corp. Staff]";
if(basicskillcheck() && getskilllv(1) < 6){
@ -45,7 +50,9 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Basic Skill Level 6 to";
mes "use the Storage Service.";
emotion e_sry;
close;
close2;
cutin "", 255;
end;
}
if(Zeny < 40){
mes "I'm sorry, but you don't";
@ -53,7 +60,9 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "the Storage Service. Our";
mes "Storage access fee is 40 Zeny.";
emotion e_cash;
close;
close2;
cutin "", 255;
end;
}
set Zeny, Zeny - 40;
set RESRVPTS, RESRVPTS + 4;
@ -62,9 +71,13 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
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;
cutin "", 255;
end;
case 3:
mes "[Cool Event Corp. Staff]";
if(BaseClass != Job_Merchant){
@ -74,12 +87,16 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
emotion e_sry;
close;
close2;
cutin "", 255;
end;
}
if(getskilllv(39) == 0){
mes "You can only rent a cart after";
mes "learning the Pushcart Skill.";
close;
close2;
cutin "", 255;
end;
}
if(checkcart() == 1){
mes "You already have";
@ -87,12 +104,16 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Unfortunately, we can't";
mes "rent more than one to";
mes "each customer at a time.";
close;
close2;
cutin "", 255;
end;
}
if(countitem(7061)){
delitem 7061,1;
setcart;
close;
close2;
cutin "", 255;
end;
}
mes "The Pushcart rental";
mes "fee is 800 Zeny. Would";
@ -106,16 +127,25 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Zeny to pay the Pushcart";
mes "rental fee of 800 Zeny.";
emotion e_cash;
close;
close2;
cutin "", 255;
end;
} else {
set Zeny, Zeny - 800;
set RESRVPTS, RESRVPTS + 80;
setcart;
close;
close2;
cutin "", 255;
end;
}
}
close;
close2;
cutin "", 255;
end;
case 4:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and remoes cutins
case 5:
default:
mes "[Cool Event Corp. Staff]";
mes "Cool Event Corp. is always";
@ -124,12 +154,15 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 874,{
mes "Help us become the best by";
mes "providing us with your opinions";
mes "and honest feedback. Thank you.";
close;
close2;
cutin "", 255;
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";
@ -138,7 +171,7 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "may I assist you today?";
next;
switch(select("Save:Use Storage:Rent a Pushcart:Cancel")){
switch(select("Save:Use Storage:Rent a Pushcart:Storage Password Service:Cancel")){
case 1:
mes "[Cool Event Corp. Staff]";
mes "Your Respawn Point";
@ -148,7 +181,9 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Cool Event Corp. service~";
emotion e_thx;
savepoint "rachel",113,137;
close;
close2;
cutin "", 255;
end;
case 2:
mes "[Cool Event Corp. Staff]";
if(basicskillcheck() && getskilllv(1) < 6){
@ -157,7 +192,9 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Basic Skill Level 6 to";
mes "use the Storage Service.";
emotion e_sry;
close;
close2;
cutin "", 255;
end;
}
if(Zeny < 40){
mes "I'm sorry, but you don't";
@ -165,7 +202,9 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "the Storage Service. Our";
mes "Storage access fee is 40 Zeny.";
emotion e_cash;
close;
close2;
cutin "", 255;
end;
}
set Zeny, Zeny - 40;
set RESRVPTS, RESRVPTS + 4;
@ -186,12 +225,16 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Blacksmiths, White Smiths,";
mes "Alchemists and Creators.";
emotion e_sry;
close;
close2;
cutin "", 255;
end;
}
if(getskilllv(39) == 0){
mes "You can only rent a cart after";
mes "learning the Pushcart Skill.";
close;
close2;
cutin "", 255;
end;
}
if(checkcart() == 1){
mes "You already have";
@ -199,12 +242,16 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Unfortunately, we can't";
mes "rent more than one to";
mes "each customer at a time.";
close;
close2;
cutin "", 255;
end;
}
if(countitem(7061)){
delitem 7061,1;
setcart;
close;
close2;
cutin "", 255;
end;
}
mes "The Pushcart rental";
mes "fee is 800 Zeny. Would";
@ -218,16 +265,25 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Zeny to pay the Pushcart";
mes "rental fee of 800 Zeny.";
emotion e_cash;
close;
close2;
cutin "", 255;
end;
} else {
set Zeny, Zeny - 800;
set RESRVPTS, RESRVPTS + 80;
setcart;
close;
close2;
cutin "", 255;
end;
}
}
close;
close2;
cutin "", 255;
end;
case 4:
callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp.");
//the function closes msg and remoes cutins
case 5:
default:
mes "[Cool Event Corp. Staff]";
mes "Cool Event Corp. is always";
@ -236,6 +292,8 @@ rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 874,{
mes "Help us become the best by";
mes "providing us with your opinions";
mes "and honest feedback. Thank you.";
close;
close2;
cutin "", 255;
end;
}
}

View File

@ -5,7 +5,7 @@
//= Darlskies, Darkchild, Syrus22, Lupus, kobra_k88 (2.0)
//= L0ne_W0lf
//===== Current Version: =====================================
//= 5.9
//= 6.0
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
@ -54,6 +54,8 @@
//= Thanks to Barron-Monster for pointing out the issues.
//= 5.8 Fixed another double name being shown when "saving" [L0ne_W0lf]
//= 5.9 Fixed the Kafra Welcome message for guilds. Thanks Barron-Monster. [L0ne_W0lf]
//= 6.0 Closed Kafra Password exploit in Cool Event Corp. Storages until we got a client/packet based password support.
//= Added 2 args into F_SetKafCode to fit it in Cool Evnt Co. NPC [Lupus]
//============================================================
@ -504,7 +506,7 @@ function script F_KafInfo {
goto sM_Menu;
sM_KafCode:
callfunc("F_SetKafCode");
callfunc("F_SetKafCode","[Kafra Employee]","Kafra Services");
sM_End:
return;
@ -564,8 +566,9 @@ function script F_CheckKafCode {
}
// Set / Change / Clear Storage Password Function ====================
// getarg(0) = NPC Name, getarg(1) = Company Name
function script F_SetKafCode {
mes "[Kafra Employee]";
mes getarg(0);
if(#kafra_code) {
mes "Your storage is protected with a password. What would you do now?";
next;
@ -573,14 +576,14 @@ function script F_SetKafCode {
"Remove storage password -> 1000z",M_CLEAR,
"Cancel",M_END;
} else {
mes "Kafra Services proudly presents you a new service:";
mes ""+getarg(1)+" proudly presents you a new service:";
mes "Additional storage protection with a password.";
next;
menu "Set new password -> 5000z",M_SET,
"Cancel",M_END;
}
mes "[Kafra Employee]";
mes getarg(0);
mes "At first, please enter your ^0000FFold password^000000.";
set @code,callfunc("F_EntKafCode");
if(@code==0 || @code != #kafra_code-getcharid(3)-1337) {
@ -591,7 +594,7 @@ function script F_SetKafCode {
next;
M_SET:
mes "[Kafra Employee]";
mes getarg(0);
mes "Now enter your ^FF0000new password^000000 to protect your storage from thieves.";
set @code,callfunc("F_EntKafCode");
if(@code==0) {
@ -600,19 +603,19 @@ M_SET:
goto M_END;
}
next;
mes "[Kafra Employee]";
mes getarg(0);
if(Zeny < 5000) goto L_ZENY;
set Zeny,Zeny-5000;
set RESRVPTS, RESRVPTS + (5000/50);
//set RESRVPTS, RESRVPTS + (5000/50); //hardcoded password doesn't add pts
set #kafra_code,@code+getcharid(3)+1337;
mes "You've protected your storage with a secret password.";
mes "Thank you for using Kafra Services.";
mes "Thank you for using "+getarg(1)+".";
emotion e_thx;
goto M_END;
M_CLEAR:
mes "[Kafra Employee]";
mes getarg(0);
mes "Please, enter your password before its removal.";
set @code,callfunc("F_EntKafCode");
if(@code==0) {
@ -621,14 +624,14 @@ M_CLEAR:
goto M_END;
}
next;
mes "[Kafra Employee]";
mes getarg(0);
if(Zeny < 1000) goto L_ZENY;
set Zeny,Zeny-1000;
set RESRVPTS, RESRVPTS + (1000/50);
//set RESRVPTS, RESRVPTS + (1000/50); //hardcoded password doesn't add pts
if(@code == #kafra_code-getcharid(3)-1337) {
set #kafra_code,0;
mes "You've successfully cleared your storage password.";
mes "Thank you for using Kafra Services.";
mes "Thank you for using "+getarg(1)+".";
emotion e_thx;
} else {
mes "Wrong password. We won't return your 1000z.";