Jump to content
  • 0
Sign in to follow this  
Holiness

Rebirth System modification

Question

Hello,

 

I'm currently using this script:

 

 

prontlegend,195,210,6  script  [Rebirth] Rebirther  465,{

  function checkItem;      // check if player have all item required
function colorItemrequired;  // color the text. Red : not enough item, green otherwise
function deleteItem;    // delete all items required
function displayItemneed;  // display all items need at start
function getItemReward;    // give the items reward
function weightreq;      // check if your current weight is highter than weight high novice


 .@eac = eaclass();
 if ( num_rebirth == .reset_max ) {
   mes "[Rebirther]";
   mes "You can start the Rebirth Process only "+ .reset_max +". times.";
   emotion e_gasp;
   close;
 }
 else if( NextJobExp || NextBaseExp || ( !( .@eac&EAJL_2 ) || !Upper ) ) {
   mes "[Rebirther]";
   mes "Your Base Level must be ^ff0000255^000000, while your Job Level ^ff0000120^000000.";
   close;
 }
 
 mes "[Rebirther]";
 mes "Welcome...";
 mes "I am the ^FF0000Rebirther^000000, what do you want me to do?";
 next;

 switch( select( "^777777~ Rebirth", "~ Information", "~ Nothing^000000" ) ) {
   case 1:
     mes "[Rebirther]";
     mes "You'll need the following items:";
     mes " ";
     displayItemneed();
     mes " ";
     mes "^ff0000You can get the 17Carat Diamond by using the Mining System^000000.";
     mes "Use @go Manuk and talk to the ^777777Miner Renter^000000.";
     next;
     weightreq();
     checkItem();
     deleteItem();
     break;
   case 2:
     mes "[Rebirther]";
     mes "You can only start the Rebirth Process ^ff0000"+ .reset_max +"^000000 times.";
     mes "^008800You have started it^000000 ^ff0000"+ num_rebirth +"^000000 ^008800time(s)^000000.";
     next;
     mes "[Rebirther]";
     mes "Whenever you complete a Rebirth Process, you get ^ff0000"+ .num_status +"^000000 Status Points and once you complete the ^ff000065th^000000 one, you obtain the awesome and legendary ^ff0000Dragon Set^000000.";
     mes "Only the best players can have it.";
     close;
   case 3:
     mes "[Rebirther]";
     mes "Bye ~";
     close;
 }
 num_rebirth += 1;
 if ( Upper ) {  // just in case the user change the setting...
   lastJob = roclass( .@eac&EAJ_UPPERMASK );
   jobchange Job_Novice_High;
 }
 else
   jobchange Job_Novice;
 resetlvl 1;
 if ( num_rebirth < .change_reward )
   StatusPoint = StatusPoint + .num_status * num_rebirth;
 else
   getItemReward();
 query_sql "insert into `rebirth_system` values ( "+ getcharid(3) +", '"+ escape_sql( strcharinfo(0) ) +"', '"+ num_rebirth +"', '"+ getcharip() +"' ) on duplicate key update `num_rebirth` = `num_rebirth` +1";
 announce "[Rebirth System]: "+ strcharinfo(0) +" has started the Rebirth Process number "+ num_rebirth +"!", 0;
 close;



function checkItem {
 for ( ; .@i < .size_item; .@i += 2 )
   if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] + num_rebirth ) {
     mes "[Rebirther]";
     mes "You do not have enough "+ getitemname( .item_req[.@i] ) +". ^ff0000["+ countitem( .item_req[.@i] ) +"/"+ ( .item_req[ .@i+1 ] + num_rebirth ) +"]^000000";
     close;
   }
 if ( num_rebirth >= .change_reward )
   if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) ) {
     mes "[Rebirther]";
     mes "You do not have enough "+ getitemname( .add_item_req[0] ) +". ^ff0000["+ countitem( .add_item_req[0] ) +"/"+ ( .add_item_req[1] + num_rebirth - .change_reward ) +"]^000000";
     close;
   }
 return;
}

function colorItemrequired {
 if ( countitem( .item_req[ getarg(0) ] ) < .item_req[ getarg(0)+1 ] + num_rebirth ) return "^ff0000";
 return "^00ff00";
}

function deleteItem {
 for ( ; .@i < .size_item; .@i += 2 )
   delitem .item_req[.@i], ( .item_req[ .@i+1 ] + num_rebirth );
 if ( num_rebirth >= .change_reward )
   delitem .add_item_req[0], ( .add_item_req[1] + num_rebirth - .change_reward );
 return;
}

function displayItemneed {
 for ( ; .@i < .size_item; .@i += 2 )
   mes colorItemrequired( .@i ) +" - ["+ ( .item_req[ .@i+1 ] + num_rebirth ) +"] "+ getitemname( .item_req[.@i] );
 if ( num_rebirth >= .change_reward ) {
   if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) )
     .@color$ = "^ff0000";
   else
     .@color$ = "^00ff00";
   mes .@color$ +"- "+ ( .add_item_req[1] + ( num_rebirth - .change_reward ) ) +" "+ getitemname( .add_item_req[0] );
 }
 return;
}

function getItemReward {
 for ( ; .@i < .size_reward; .@i += 2 )
   getitem .reward[.@i], .reward[ .@i+1 ];
 return;
}

function weightreq {
 if ( Weight > 20000 ) {
   mes "[Rebirther]";
   mes "^ff0000You are carrying too many items. After rebirth, your weight will be very low and you might drop some items^ff0000.";
   close;
 }
 return;
}

OnInit:
 .reset_max = 65;    // how much reset max
 .change_reward = 64;  // after 30 rebirth, change reward
 .num_status = 50;    // + X number of status points

// item required <item ID>, <number>
 setarray .item_req, 6024, 10,
           501, 5,
           502, 2,
           503, 3;
 .size_item = getarraysize( .item_req );

// additionnal items after rebirth >> .change_reward
// <item ID>, <number>
 setarray .add_item_req, 601, 1;

// rewards <item ID>, <number>
 setarray .reward, 25256, 1, 25257, 1, 25259, 1, 25258, 1, 25260, 1, 25261, 1, 25262, 1;
 .size_reward = getarraysize( .reward );
 end;
}


I would like to let Ninja and Gunslinger use it, however it seems a little bit hard.
I tried to add (Class == 24 && Class == 25) and it would work if it weren't for the fact that whenever I rebirth using a Ninja or a Gunslinger I get 8k points (approximately) instead of 50.

Is there a solution?

NOTE: The script is very useful and well organized. You can get it and use it according to your liking!

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.