All pastes #1513182 Raw Edit

Stuff

public text v1 · immutable
#1513182 ·published 2009-07-31 03:19 UTC
rendered paste body
//////////////////////////////////////////////////
//////////////////////////////////////////////////
////--- Player Max Level Difficulty Script ---////
//////////-------------v2.0-------------//////////
///- Written by Kutan for Anyone who wants it -///
//////////////////////////////////////////////////
//////////////////////////////////////////////////

// //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-// \\
// \\ -Main Variables included in level modification NPC- \\ \\
// //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-// \\
// \\k_lvldiff = Level Difficulty (Easy = 0; Hard = 1; Insane = 2) \\ \\
// //k_lvldiffcheck = Base Level Checkpoint (Increments of k_lvldiffnum)// \\
// \\k_lvldiffcheckj = Job Level Checkpoint (Changed per increment ^^^^)\\ \\
// //k_lvldiffnum = Level Difficulty (Easy = 0; Hard = 5; Insane = 10) // \\
// \\k_lvldiffstr$ = String for level difficulty (Easy; Hard; Insane) \\ \\
// //k_BRPOINTS = Status points to be removed from Checkpoint Reset // \\
// \\k_JRPOINTS = Skill points to be removed from Checkpoint Reset \\ \\
// //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-// \\

// ^ - Created out of boredom - ^ \\

- script checkpointmod -1,{

OnPCBaseLvUpEvent:
if (( k_lvldiff > 0 ) && ( k_lvldiffcheck == 99 ) && ( BaseLevel < 99 ))
{
set k_lvldiffcheck, 1;
set k_lvldiffcheckj, 1;
}
if (( k_lvldiff > 0 ) && (( BaseLevel % k_lvldiffnum ) == 0 ))
{
set k_lvldiffcheck, BaseLevel;
set k_lvldiffcheckj, JobLevel;
message strcharinfo(0),"Checkpoint Reached!";
}
if (( k_lvldiff > 0 ) && ( BaseLevel == 99 ) && ( !Upper ))
{
set k_lvldiffcheck, 99;
set k_lvldiffcheckj, JobLevel;
}
if (( k_lvldiff > 0 ) && ( BaseLevel == 120 ) && ( Upper ))
{
set k_lvldiffcheck, 120;
set k_lvldiffcheckj, 120;
message strcharinfo(0),"Max level reached! Congratulations! Please return to General Slickbeard for information.";
}
end;

OnPCJobLvUpEvent:
if (( k_lvldiffcheckj == 120 ) && ( JobLevel == 120 )) end;
if (( k_lvldiffcheckj < 120 ) && ( JobLevel == 120 )) set k_lvldiffcheckj, 120;
if (( BaseLevel == 120 ) && ( JobLevel < 120 )) set k_lvldiffcheckj, JobLevel;
end;

OnPCDieEvent:
if ( !k_lvldiff ) end;
if ( k_endgame ) end;
if ( !k_lvldiffcheck )
{
set k_lvldiffcheck, BaseLevel - ( BaseLevel % k_lvldiffnum );
set k_lvldiffcheckj, JobLevel - ( JobLevel % k_lvldiffnum );
}
if ( BaseLevel > k_lvldiffcheck )
{
set k_BRPOINTS, $k_STATPOINTS[BaseLevel] - $k_STATPOINTS[k_lvldiffcheck];
while (( StatusPoint >= 1 ) && ( k_BRPOINTS >= 1 ))
{
set StatusPoint, StatusPoint - 1;
set k_BRPOINTS, k_BRPOINTS - 1;
}
}
set BaseLevel, k_lvldiffcheck;
set JobLevel, k_lvldiffcheckj;
message strcharinfo(0),"So sorry, it's back to base level "+ k_lvldiffcheck +" and job level "+ k_lvldiffcheckj +". :(";
end;

OnInit:
setmapflag "new_zone01",mf_nogo;
end;

OnInterIfInitOnce:
set .@a, 1;
while ( .@a <= 120 )
{
while ( .@b <= .@a )
{
set $k_STATPOINTS[.@c], $k_STATPOINTS[.@c] + ( .@a + 14 ) / 5;
set .@b, .@b + 1;
}
set $k_STATPOINTS[.@c], $k_STATPOINTS[.@c] + 45;
set .@c, .@c + 1;
set .@a, .@a + 1;
}
set .@i, 1;
while ( .@i <= 120 )
{
while ( .@j <= .@i )
{
set $k_STATPOINTSUP[.@k], $k_STATPOINTSUP[.@k] + ( .@i + 14 ) / 5;
set .@j, .@j + 1;
}
set $k_STATPOINTSUP[.@k], $k_STATPOINTSUP[.@k] + 100;
set .@k, .@k + 1;
set .@i, .@i + 1;
}
end;
}

- script levelcurvemod -1,{

OnPCBaseLvUpEvent:
if ( k_endgame ) end;
if ( k_BRPOINTS >= 1 )
{
while (( StatusPoint >= 1 ) && ( k_BRPOINTS >= 1 ))
{
set StatusPoint, StatusPoint - 1;
set k_BRPOINTS, k_BRPOINTS - 1;
}
}
if ( k_lvldiff == 2 ) set NextBaseExp, NextBaseExp * 5;
end;

OnPCJobLvUpEvent:
if ( k_endgame ) end;
if ( k_JRPOINTS >= 1 )
{
while (( SkillPoint >= 1 ) && ( k_JRPOINTS >= 1 ))
{
set SkillPoint, SkillPoint - 1;
set k_JRPOINTS, k_JRPOINTS - 1;
}
}
if ( k_lvldiff == 2 ) set NextJobExp, NextJobExp * 5;
end;
}

new_zone01,54,111,2 script Colonel Moose 873,{

mes "[^C06600Colonel Moose^000000]";
if ( k_notnewplayer )
{
mes "Oh, hi, what're you doing here?";
mes "...Go level or something.";
close;
}
mes "Hello there, Novice "+ strcharinfo(0) +" and welcome to ^00FF00TiRO^000000!";
mes "I'm here to tell you about the certain paths";
mes "that you may follow during your time here at TiRO";
mes "so that we may better your experience!";
next;
if ( #k_notnewplayer )
{
mes "[^C06600Colonel Moose^000000]";
mes "Oh.. Ehem, it says here that you've been here before.";
mes "In that case, do you want to hear about the difficulties again?";
next;
menu "Yeah, I forgot.",diffexplain,"No, I remember.",diffdecide;
}
mes "[^C06600Colonel Moose^000000]";
mes "It says here that this is your first time";
mes "playing on ^00FF00TiRO^000000. Would you like to";
mes "hear about the ^0000FFLevel Difficulties^000000?";
next;
menu "Yes, please.",-,"No, get on with it.",diffdecide;
diffexplain:
next;
mes "[^C06600Colonel Moose^000000]";
mes "There are 3 leveling difficulties:";
mes "^00FF001^000000) ^FFCCFFEasy^000000";
mes "This level is just the regular leveling curve";
mes "that a normal character would follow.";
mes "There are no max level bonuses nor are there";
mes "any checkpoint penalties.";
mes "This difficulty is recommended for first time players";
mes "that would like to take it easy.";
next;
mes "[^C06600Colonel Moose^000000]";
mes "^00FF002^000000) ^FF3333Hard^000000";
mes "This level uses the regular leveling curve,";
mes "but it adds a ^0000FFCheckpoint Penalty^000000.";
mes "This penalty marks every ^0000FF5 ^00FF00Base^000000 levels.";
mes "If you ^FF0000die^000000 before a checkpoint, your level";
mes "will be reset back to the previous checkpoint.";
mes "With this penalty, a bonus of ^00FF0050 ^00FF00Valor Points^000000 are added";
mes "to your character to use at certain shops for high-level items.";
mes "This difficulty is recommended for experienced players";
mes "that are looking for a challenge.";
next;
mes "[^C06600Colonel Moose^000000]";
mes "^00FF003^000000) ^CC0000Insane^000000";
mes "This level is... Well, it's ^CC0000INSANE^000000!!";
mes "I don't even want to talk about it, I'm just";
mes "going to let you know.. If you value your";
mes "sanity and your life, don't pick this one.";
mes "This difficulty is recommended for nutjobs";
mes "that are looking to spend their life killing.";
mes "^666666*On a literal note, players that follow this difficult will gain";
mes "a very high max level bonus as well as a high exp and checkpoint penalty.";
mes "Use this difficulty at your own risk.*^000000";
diffdecide:
next;
mes "[^C06600Colonel Moose^000000]";
mes "Okay, so what's it going to be?";
mes "^FFCCFFEasy^000000, ^FF3333Hard^000000, or ^CC0000Insane^000000?";
next;
set k_safetyfirst, 1;
switch( select( "I'm a wimp, Easy it is.:I'm up for a challenge, Hard it is.:^CC0000AHAHAH KILL, KILL, DIE!^000000" ))
{
case 1:
mes "[^C06600Colonel Moose^000000]";
mes "I was a newbie once, too.";
mes "Alright, I'll send you to my associate.";
mes "Have fun!";
close2;
set k_lvldiff, 0;
set k_lvldiffstr$, "Easy";
warp "prontera",157,192;
end;
case 2:
mes "[^C06600Colonel Moose^000000]";
mes "Good for you.";
mes "Trust me, you'll have fun, and you'll";
mes "be rewarded nicely in the end.";
mes "I'm going to send you to my associate.";
mes "Have fun!";
close2;
set k_lvldiff, 1;
set k_lvldiffnum, 5;
set k_lvldiffstr$, "Hard";
warp "prontera",157,192;
end;
case 3:
mes "[^C06600Colonel Moose^000000]";
mes "OH, GOD! DON'T KILL ME!";
mes "GUARDS! GET THE BASTARD THE HELL OUT OF HERE!";
mes "^0000CC*^CC0000You feel a sharp pain in the back of your head, then darkness^0000CC*^000000";
close2;
set k_lvldiff, 2;
set k_lvldiffnum, 10;
set k_lvldiffstr$, "Insane";
set HP, ( HP % ( HP / 7 )) + 1;
warp "prontera",157,192;
end;
}
}

prontera,157,193,4 script General Slickbeard 752,{

if ( !k_safetyfirst ) goto safetylabel;
if ( !k_notnewplayer ) goto safetylabel;
set .roflcontestwut1, .roflcontestwut1 + 1;
if ( .roflcontestwut1 == .roflcontestwut2 ) goto randtestwinner;
//if (( BaseLevel == 120 ) && ( !k_endgame )) goto endgamestart;
//if ( k_endgame ) goto endgameQ;
mes "[^CDAD00General Slickbeard^000000]";
mes "Ah, welcome back, "+ strcharinfo(0) +",";
if (( BaseLevel - 15 ) > k_boredlvlthing )
{
mes "wow, "+ ( BaseLevel - k_boredlvlthing ) +" new levels since your last visit!";
mes "Congratulations on being stronger.";
mes "Ehem, anyway,";
}
set boredlvlthing, BaseLevel;
multireturn:
mes "what would you like?";
next;
menu "Please, change my level difficulty!",-,"Explain everything again, please..",slicksplain,"Nevermind, talk to you later.",end;

lvldiffchange:
mes "[^CDAD00General Slickbeard^000000]";
mes "Ah, so you don't like your current setting, do you?";
mes "Well then, all I need is a nominal fee of";
mes "^0000FF5,000,000^000000 zeny and we can get this over with.";
mes "...";
if ( Zeny < 5000000 )
{
mes "Oh, wait, isn't that so sad?";
mes "you're a poor, poor newbie.";
mes "This isn't a charity, go get some money!";
close;
}
if ( Upper )
{
mes "Oh, wait, I'm sorry but I told you,";
mes "you can't be reborn and change difficulty!";
mes "There would be no challenge!";
close;
}
mes "Well?";
next;
menu "Here's your money, change me!",-,"Hrm.. Maybe later.",end;
mes "[^CDAD00General Slickbeard^000000]";
mes "Alrighty then, your current difficulty is ^0000FF"+ k_lvldiffstr$ +"^000000.";
mes "What would you like to change it to?";
next;
if ( k_lvldiff == 0 ) menu "Make it Hard.",hardchange,"Make it Insane!",insanechange;
if ( k_lvldiff == 1 ) menu "Make it Easy..",easychange,"Make it Insane!",insanechange;
if ( k_lvldiff == 2 ) menu "Make it Easy..",easychange,"Make it Hard.",hardchange;
end;

easychange:
set @k_lvldiff, 0;
set @k_lvldiffnum, 0;
set @k_lvldiffstr$, "Easy";
goto changechange;
hardchange:
set @k_lvldiff, 1;
set @k_lvldiffnum, 5;
set @k_lvldiffstr$, "Hard";
goto changechange;
insanechange:
set @k_lvldiff, 2;
set @k_lvldiffnum, 10;
set @k_lvldiffstr$, "Insane";
goto changechange;

changechange:
mes "[^CDAD00General Slickbeard^000000]";
mes "Alright, I'll just deduct that";
mes "fee right there.. Yeah, okay.";
mes "Now let's do a little switcheroo!";
next;
set zeny, zeny - 5000000;
set k_lvldiff, @k_lvldiff;
set k_lvldiffcheck, 0;
set k_lvldiffcheckj, 0;
set k_lvldiffnum, @k_lvldiffnum;
set k_lvldiffstr$, @k_lvldiffstr$;
mes "[^CDAD00General Slickbeard^000000]";
mes "Voila! You are now of "+ k_lvldiffstr$ +" difficulty!";
mes "Go out and give it a try!";
mes "Have fun, too!";
close;

safetylabel:
mes "[^CDAD00General Slickbeard^000000]";
mes "Ah, welcome, Newbie "+ strcharinfo(0) +"!";
mes "This here is your new home, and you will be";
mes "seeing more of me than you'd probably like to.";
next;
if ( #k_notnewplayer )
{
mes "[^CDAD00General Slickbeard^000000]";
mes "First off, I've been told you're";
mes "not a complete newbie on this server.";
mes "Would you still like to hear my lecture?";
next;
if ( select( "Please do.:No thanks." ) == 1 ) goto slicksplain;
else
{
mes "[^CDAD00General Slickbeard^000000]";
goto slicksplainskip;
}
}
slicksplain:
mes "[^CDAD00General Slickbeard^000000]";
mes "I'll begin by explaining a few specific things";
mes "that you would probably like to know more about:";
mes "First off, you should know that at any point";
mes "you would like to change your ^0000FFlevel difficulty^000000,";
mes "you may come to me and I will modify it.";
mes "There is of course a ^FF0000HEFTY^000000 fee for doing so,";
mes "so make sure you've chosen very wisely!";
mes "Oh, and you can't be over base level ^0000FF50^000000";
mes "or have been reborn already, that'd be too easy!";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "Secondly: you may have heard about something";
mes "that is called a ^0000FFValor Point^000000. These points are";
mes "an essential part of your max level experience.";
mes "These points allow max level players to buy much";
mes "more equipment and even stat and skill points.";
mes "These can be acquired through quests only accepted";
mes "after reaching advanced class and level 255.";
next;
if ( k_lvldiff == 0 )
{
mes "[^CDAD00General Slickbeard^000000]";
mes "Lastly: As explained earlier, you will not receive";
mes "any penalties to your experience gain or level consistency.";
mes "In addition to this, you will also not receive any";
mes "bonus ^0000FFValor Points^000000 when you reach max level.";
mes "So you're going to have to work hard for your points.";
}
if ( k_lvldiff == 1 )
{
mes "[^CDAD00General Slickbeard^000000]";
mes "Lastly: As explained earlier, you will receive some";
mes "penalties regarding ^0000FFcheckpoints^000000. After every ^0000FF5 ^00FF00Base^000000 levels,";
mes "your ^0000FFcheckpoint^000000 will be updated. If you are to die";
mes "between any of these checkpoints, your level will be reset";
mes "all the way back to the previous checkpoint.. Be careful!";
mes "Although, with penalties there must come an eventual reward;";
mes "once you've been reborn and reached maximum level,";
mes "your character will receive a large bonus of ^0000FFValor Points^000000!";
}
if ( k_lvldiff == 2 )
{
mes "[^CDAD00General Slickbeard^000000]";
mes "Lastly: As explained earlier, you will receive";
mes "a hefty penalty regarding ^0000FFcheckpoints^000000 as well as";
mes "modifications to your leveling curve. Your ^0000FFcheckpoint^000000 is set for every";
mes "^0000FF10 ^00FF00Base levels, so if you make it to 89 and die, it's back to 80!";
mes "Be extra careful!";
mes "This may seem harsh, but with a great penalty comes a great reward;";
mes "if this is really your first time here, it may seem like nothing,";
mes "but once you reach your final level after rebirth,";
mes "you will receive a ^FF0000ludicrous^000000 bonus of ^0000FFValor Points^000000!";
mes "Not to mention, ^0000FFValor Points^000000 received from quests will";
mes "be multiplied to give you an advantage for working so hard!";
}
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "Phew, good thing that's out of the way.";
if ( notnewplayer ) goto multireturn;
slicksplainskip:
mes "So! Are you ready to start leveling?!";
next;
set k_notnewplayer, 1;
set #k_notnewplayer, 1;
if ( select( "Yes!:Nope.." ) == 1 )
{
mes "[^CDAD00General Slickbeard^000000]";
mes "Great!";
mes "I like your ambition, kid.";
mes "Off ye' go into the wilderness!";
}
else
{
mes "[^CDAD00General Slickbeard^000000]";
mes "Uh.. What?";
mes "Well isn't that a crying shame.";
mes "...";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "^FF0000I DON'T GIVE A FLIPPIN' FLIPPITY FLAP";
mes "IF YOU DON'T WANT TO GO!!^000000";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "Ehem, now that I've regained my composure,";
mes "get out there and have some fun!";
}
close;

//endgamestart:
// mes "[^CDAD00General Slickbeard^000000]";
// mes "Ah! Congratulations on level ^FF00001^00FF002^0000FF0^000000!";
// mes "You've passed your test!";
// mes "We need a skilled person like you to help us in our follies.";
// mes "We need you t- Wait,";
// mes "I'm getting ahead of myself.";
// next;
// set k_VPV, k_VPV + k_lvldiffnum * 10;
// message strcharinfo(0),"
// mes "[^CDAD00General Slickbeard^000000]";


//endgameQ:


randtestwinner:
mes "[^CDAD00General Slickbeard^000000]";
mes "Wow, congratulations!";
mes "You're lucky number "+ .roflcontestwut1 +"!";
mes "You're also probably pretty confused right now.";
mes "I'll explain...";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "My shitty creator, Kutan was bored while";
mes "he was in the process of writing me.";
mes "So he decided to put a random test into my being.";
mes "Now here we are.";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "Anywho, I'm sure you're asking yourself,";
mes "\"What could my reward possibly be?\"";
mes "Right?";
mes "Well, for being visitor number "+ .roflcontestwut1 +",";
mes "you will receive a bonus of "+ .roflcontestwut1 +" ^0000FFValor Points^000000!";
next;
mes "[^CDAD00General Slickbeard^000000]";
mes "You must be so excited right now,";
if (( BaseLevel < 120 ) || ( !Upper ))
{
mes "I mean, you're not at max level yet,";
mes "but this'll make it much sweeter when you are!";
goto randtestclosure;
}
mes "I'm sure you're gonna' go and buy something";
mes "very nice with these points once I let you go!";
mes "...";
randtestclosure:
mes "On that note, go and have some fun!";
close2;
set k_VPV, k_VPV + .roflcontestwut1;
set .roflcontestwut1, 0;
set .roflcontestwut2, rand(500,1000);
end;

OnInit:
set .roflcontestwut2, rand(100,200);
set .roflcontestwut1, 0;
end;
}