Yudax Posted May 10, 2013 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 248 Reputation: 7 Joined: 11/27/12 Last Seen: July 21, 2016 Share Posted May 10, 2013 This script is from Sir Capuche on this topic; http://rathena.org/board/topic/82507-rebirth-system-50-rebirths/ Just a little modifications, I tried to edit the script but I cant really do it by my self so I ask for a little help from the community. What if I want the NPC to be;( 1 ) = Only 30 Rebirths ( 300stats per rebirth )( 2 ) = 1 - 15th Rebirths ---> Required Item: 1 #6024( 3 ) = 16 - 30th Rebirths, ---> Required Item: 2 #6024( 4 ) = Rewards 1 - 15th ---> 5 #6000( 5 ) = Rewards 16 - 30th ---> 10 #6000--( 6 ) = Theres a Menu "Rebirth Ranking" Thank you, I will still continue to work on the script myself but I'm having a bad time. Quote Link to comment Share on other sites More sharing options...
Yudax Posted May 30, 2013 Group: Members Topic Count: 57 Topics Per Day: 0.01 Content Count: 248 Reputation: 7 Joined: 11/27/12 Last Seen: July 21, 2016 Author Share Posted May 30, 2013 up. can someone modify the script? Quote Link to comment Share on other sites More sharing options...
Capuche Posted May 30, 2013 Group: Developer Topic Count: 10 Topics Per Day: 0.00 Content Count: 2407 Reputation: 616 Joined: 07/05/12 Last Seen: March 20 Share Posted May 30, 2013 /* CREATE TABLE IF NOT EXISTS `rebirth_system` ( `account_id` int(11) unsigned NOT NULL default '0', `name` varchar(255) NOT NULL DEFAULT 'NULL', `num_rebirth` int(11) unsigned NOT NULL default '0', `last_ip` varchar(100) NOT NULL default '', PRIMARY KEY (`account_id`) ) ENGINE=MyISAM; */ prontera,153,170,5 script Spec 833,{ 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 mes "Items need :"; displayItemneed(); next; switch( select( "^777777~ Rebirth", "~ Informations", "~ Rebirth ranking", "~ Good bye^000000" ) ) { case 1: .@eac = eaclass(); if ( num_rebirth == .reset_max ) { mes "You can only rebirth x"+ .reset_max +"."; emotion e_gasp; close; } else if( NextJobExp || NextBaseExp || !( .@eac&EAJL_2 ) || !Upper ) { mes "You must be rebirth max level/max job level."; close; } weightreq(); checkItem(); deleteItem(); break; case 2: mes "You can only rebirth ^ff0000x"+ .reset_max +"^000000. You already rebirth ^ff0000x"+ num_rebirth +"^000000."; mes "Each rebirth you get ^ff0000"+ .num_status +"^000000 status points and after ^ff0000"+ .change_reward +"^000000 rebirth, you get more items."; close; case 4: mes "Bye."; close; case 3: mes "TOP 30 of rebirth."; mes "Name - Number of rebirth"; .@size = query_sql( "select `name`, `num_rebirth` from `rebirth_system` order by `num_rebirth` desc limit 30", .@name$, .@value ); if( .@size ) { for( .@i = 0; .@i < .@size; .@i++ ) mes "^777777"+ ( .@i +1 ) +"/^000000 "+ .@name$[.@i] +": ^FF0000"+ .@value[.@i] +"^000000"; } else mes "^0000ff* the list is empty *^000000"; 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; StatusPoint = StatusPoint + .num_status * num_rebirth; 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) +" rebirth for the "+ num_rebirth +" time !", 0; close; function checkItem { if ( num_rebirth < .change_reward ) { for ( ; .@i < .size_item; .@i += 2 ) if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] ) { mes "You don't have enought "+ getitemname( .item_req[.@i] ) +". ^ff0000["+ countitem( .item_req[.@i] ) +"/"+ .item_req[ .@i+1 ] +"]^000000"; close; } } else { for ( ; .@i < .size_item2; .@i += 2 ) if ( countitem( .item_req2[.@i] ) < .item_req2[ .@i+1 ] ) { mes "You don't have enought "+ getitemname( .item_req2[.@i] ) +". ^ff0000["+ countitem( .item_req2[.@i] ) +"/"+ .item_req2[ .@i+1 ] +"]^000000"; close; } } return; } function colorItemrequired { if ( num_rebirth < .change_reward ) { if ( countitem( .item_req[ getarg(0) ] ) < .item_req[ getarg(0)+1 ] ) return "^ff0000"; return "^00ff00"; } else { if ( countitem( .item_req2[ getarg(0) ] ) < .item_req2[ getarg(0)+1 ] ) return "^ff0000"; return "^00ff00"; } } function deleteItem { if ( num_rebirth < .change_reward ) { for ( ; .@i < .size_item; .@i += 2 ) delitem .item_req[.@i], .item_req[ .@i+1 ]; } else { for ( ; .@i < .size_item2; .@i += 2 ) delitem .item_req2[.@i], .item_req2[ .@i+1 ]; } return; } function displayItemneed { if ( num_rebirth < .change_reward ) { for ( ; .@i < .size_item; .@i += 2 ) mes colorItemrequired( .@i ) +" - x"+ .item_req[ .@i+1 ] +" "+ getitemname( .item_req[.@i] ); } else { for ( ; .@i < .size_item2; .@i += 2 ) mes colorItemrequired( .@i ) +" - x"+ .item_req2[ .@i+1 ] +" "+ getitemname( .item_req2[.@i] ); } return; } function getItemReward { if ( num_rebirth < .change_reward ) { for ( ; .@i < .size_reward; .@i += 2 ) getitem .reward[.@i], .reward[ .@i+1 ]; } else { for ( ; .@i < .size_reward2; .@i += 2 ) getitem .reward2[.@i], .reward2[ .@i+1 ]; } return; } function weightreq { if ( Weight > 20000 ) { mes "You have too much items on you. Your weight will be too high after rebirth."; close; } return; } OnInit: .reset_max = 30; // how much reset max .change_reward = 15; // after 30 rebirth, change reward and item required .num_status = 300; // + X number of status points each rebirth // item required <item ID>, <number> for .change_reward < (15 here) setarray .item_req, 6024, 1; .size_item = getarraysize( .item_req ); // item required <item ID>, <number> for .change_reward > (15) setarray .item_req2, 6024, 2; .size_item2 = getarraysize( .item_req2 ); // rewards <item ID>, <number> for .change_reward < (15 here) setarray .reward, 6000, 5; .size_reward = getarraysize( .reward ); // rewards <item ID>, <number> for .change_reward > (15 here) setarray .reward2, 6000, 10; .size_reward2 = getarraysize( .reward2 ); end; } Only 30 rebirths before 15 rebirths, need 1 item ID 6024 and gain 5 items ID 6000 after 15 rebirths, need 2 item ID 6024 and gain 10 items ID 6000 each rebirth the player gained 300 status points Add a menu ranking Is that what you wanted ? Quote Link to comment Share on other sites More sharing options...
Question
Yudax
This script is from Sir Capuche on this topic;
http://rathena.org/board/topic/82507-rebirth-system-50-rebirths/
Just a little modifications, I tried to edit the script but I cant really do it by my self so I ask for a little help from the community.
What if I want the NPC to be;
( 1 ) = Only 30 Rebirths ( 300stats per rebirth )
( 2 ) = 1 - 15th Rebirths ---> Required Item: 1 #6024
( 3 ) = 16 - 30th Rebirths, ---> Required Item: 2 #6024
( 4 ) = Rewards 1 - 15th ---> 5 #6000
( 5 ) = Rewards 16 - 30th ---> 10 #6000
--
( 6 ) = Theres a Menu "Rebirth Ranking"
Thank you, I will still continue to work on the script myself but I'm having a bad time.
Link to comment
Share on other sites
2 answers 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.