Jump to content

mrlongshen

Members
  • Content Count

    1126
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by mrlongshen


  1. Actually, there's no such thing as "go back to lvl 1". There's only a jobchange to novice or novice_high, which makes you automatically go back to lvl 1/1.

    You can therefor add a base lvl and job lvl up command after the jobchange to make player return to the desired lvl. On the other hand, they'll have to reuse all their points (stats and skills) manually.

    Oh I see, let me test change if, if cant, can you help me?


  2. Based on dastgir script, how to modified, when rebirth its not reset the level and job to 1, for level back to 175, and for job back to 120. how to modified it? this is the script...

     

    /*
    CREATE TABLE IF NOT EXISTS `rebirth_system` (
      `char_id` int(11) NOT NULL default '0',
      `name` varchar(24) NOT NULL DEFAULT 'NULL',
      `rebirth_no` mediumint(6) NOT NULL default '0',
      `master_rebirth` mediumint(6)  NOT NULL default '0',
      PRIMARY KEY  (`char_id`)
    ) ENGINE=MyISAM;
    
    ---------------------------------------------------------
    --			By Dastgir								-----
    --			Version 1.5								-----
    ---------------------------------------------------------
    */
    florian,141,172,5	script	Rebirth	4_M_LGTGRAND,{
    function deleteItem;		// Deletes Required Items
    function CheckItemNeed;		// Shows the Required Items
    function getItemReward;		// Gives the Reward
    
    	mes "^11E6D0[Rebirth System]^000000";
    	mes strcharinfo(0)+", How may I help you?";
    	switch( select( "^777777~ Ranking:~ Rebirth:~ Information:~ Reset Stat:~ Cancel"+((getgmlevel()>=.GMLevel)?":~ Reset Ranking":"")+"^000000" ) ) {
    		case 1:
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			mes "Rankings:";
    			query_sql "SELECT `name`,`rebirth_no`,`master_rebirth` FROM `rebirth_system` ORDER BY `master_rebirth` DESC, `rebirth_no` DESC LIMIT "+.list,@name$,@rebirth_no,@master_rebirth;
    			if(getarraysize(@name$)==0){mes "^F20808 No Records Found ^000000"; close;}
    			mes "Format:";
    			mes "^0814F2[Character Name]^000000 - ^B308F2[Rebirths]^000000 - ^B303F2[Master_Rebirth]^000000";
    			for (.@i=0; .@i < getarraysize(@name$); .@i++){
    				mes (.@i+1) +".) ^0814F2["+ @name$[.@i] +"]^000000 - ^B308F2["+ @rebirth_no[.@i] +"]^000000 - ^B303F2["+ @master_rebirth[.@i] +"]^000000";
    			}
    			deletearray @name$[0],.list; deletearray @rebirth_no[0],.list; deletearray @master_rebirth[0],.list;
    			close;
    		case 2:
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			if (.MasterRebirth>0 && rebirth_no >= .MasterRebirth){
    				mes "You can Do Master Rebirth too.";
    				mes "Master rebirth allows you to earn some more powerful items.";
    				mes "On doing Master Rebirth, you will lose "+ .MasterRebirth +" Rebirths";
    				if (.MaxRebirth[1]){ mes "You can do "+ .MaxRebirth[1] +" Master Rebirths Only"; }
    				@rebirth_type = select("Do Standard Rebirth:Do Master Rebirth");
    				next;
    				mes "^11E6D0[Rebirth System]^000000";
    			}else{
    				@rebirth_type = 1;
    			}
    			if ((@rebirth_type==1 && .MaxRebirth[0] > 0 && rebirth_no >= .MaxRebirth[0]) || (@rebirth_type==2 && .MaxRebirth[1] > 0 && master_rebirth >= .MaxRebirth[1]) ){
    				mes "You have Reached the Maximum Number of "+ ( (@rebirth_type==2)?"Master":"" ) +" Rebirths("+ ( (@rebirth_type==2)?master_rebirth:rebirth_no ) +")";
    				close;
    			}
    			.@eac = eaclass();
    			.@can_rebirth = false;
    			for (.@i=0; .@i<getarraysize(.add_jobs); .@i++){
    				if (Class==.add_jobs[.@i]){
    					.@can_rebirth = true;
    					break;
    				}
    			}
    			if (!.@can_rebirth){
    				.@can_rebirth = true;
    				setarray .@jobcheck[0],EAJL_2,EAJL_2_1,EAJL_2_2,EAJL_UPPER,EAJL_BABY,EAJL_THIRD;
    				for (.@i = 0; .@i < getarraysize(.@jobcheck); .@i++)
    					if ((.job_rebirth&.@jobcheck[.@i])){
    						if (!(.@eac&.@jobcheck[.@i])){
    							if ((.@i == 1 || .@i == 2) && .@pass == true)
    								continue;
    							.@can_rebirth = false;
    							break;
    						}
    						if (.@i == 0)
    							.@pass = true;
    					}
    						
    			}
    			if( NextJobExp || NextBaseExp ) {
    				mes "You must be Max BaselLevel/Joblevel to Rebirth.";
    				close;
    			}else if( !.@can_rebirth ){
    				if (.job_rebirth&EAJL_BABY)
    					.@job$ = "Baby ";
    				if (.job_rebirth&EAJL_THIRD)
    					.@job$ = .@job$+"Third";
    				else if (.job_rebirth&EAJL_2_1 || .job_rebirth&EAJL_2_2)
    					.@job$ = .@job$+"Second";
    				else if (.job_rebirth&EAJL_UPPER)
    					.@job$ = .@job$+"1-1";
    				mes "You need to be "+ ((.job_rebirth&EAJL_UPPER)?"Trans":"") +" "+ .@job$ +" Job";
    				close;
    			}
    
    			mes "Items need :";
    			CheckItemNeed(@rebirth_type);
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			deleteItem(@rebirth_type);
    			break;
    		case 3:
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			switch(.reset_opt){
    				case 1:
    				case 2:
    					mes "Your BaseLevel,JobLevel"+ ((.reset_opt==1)?",Skills,StatPoints And Status":" And SkillPoints") +" will be Reset.";
    					break;
    				case 3:	
    				case 4:				
    					mes "You will be Changed to "+ ((.reset_opt==3)?"Base":"Job") +"Level 1 with JobLevel and Skills/Status Unaffected";
    					break;
    			}
    			if (.job_rebirth&EAJL_BABY)
    				.@job$ = "Baby ";
    			if (.job_rebirth&EAJL_THIRD)
    				.@job$ = .@job$+"Third";
    			else if (.job_rebirth&EAJL_2_1 || .job_rebirth&EAJL_2_2)
    				.@job$ = .@job$+"Second";
    			else if (.job_rebirth&EAJL_UPPER)
    				.@job$ = .@job$+"1-1";
    			mes "You Should be "+ ((.job_rebirth&EAJL_UPPER)?"Trans":"") +" "+ .@job$ +" Job to be able to Rebirth.";
    			if (.job_rebirth&EAJL_UPPER)
    				.@trans = 1;
    			if (.StatusN){ mes "You Get "+ .StatusN +" Extra Status point for every Rebirth"; }
    			if (.ResetJob==2 || (.ResetJob==1 && !.@trans) || .@can_rebirth){ mes "You will become Novice Upon rebirth"; }
    			else if ((.ResetJob==1 && .@trans) || (.ResetJob==3)){ mes "You will become High Novice Upon rebirth"; }
    			else{ mes "Your Job will not change upon rebirth"; }
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			mes "For Rebirth, you may need some items.";
    			CheckItemNeed(1,1);
    			if (.MasterRebirth > 0){
    				next;
    				mes "^11E6D0[Rebirth System]^000000";
    				mes "Upon Reaching "+ .MasterRebirth +" Rebirths, you can do Master Rebirth";
    				if (.MaxRebirth[1]){ mes "You can do "+ .MaxRebirth[1] +" Master Rebirths Only"; }
    				if (.StatusM){ mes "You Get "+ ((.StatusM)-(.StatusN * .MasterRebirth)) +" Extra Status point than Normal Rebirth for every Master Rebirth"; }
    				mes "Master Rebirth Allows you to earn some powerful items.";
    				next;
    				mes "^11E6D0[Rebirth System]^000000";
    				mes "For Master Rebirth, you may need some items.";
    				CheckItemNeed(2,1);
    			}
    			close;
    		case 4:
    			mes "[Reset Stats]";
    			mes "Reset Stats: "+ .ResetStat +"z";
    			mes "Continue?";
    			if (select("~ Yes, Reset Stat", "No, I don't want to reset") == 2)
    				close;
    			next;
    			mes "[Reset Stats]";
    			if (Zeny < .ResetStat) {
    				mes "Sorry, you don't have enough Zeny.";
    				close;
    			}
    			Zeny -= .ResetStat;
    			resetstatus;
    			StatusPoint = StatusPoint + (.StatusM * master_rebirth) + (.StatusN * rebirth_no);
    			mes "There you go!";
    			close;
    		case 5:
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			mes "Bye.";
    			close;
    		case 6:
    			next;
    			mes "^11E6D0[Rebirth System]^000000";
    			mes "Are you sure you want to reset Ranking?";
    			mes "Once done, Action cannot be reverted.";
    			if (select("Yes, Reset the Ranking:No, Let me think again.")==2){
    				next;
    				mes "^11E6D0[Rebirth System]^000000";
    				mes "Thank you for using my service.";
    				close;
    			}
    			next;
    			query_sql "TRUNCATE TABLE `rebirth_system`";
    			query_sql "DELETE FROM `char_reg_num_db` WHERE `key`='rebirth_no' OR `key`='master_rebirth'";
    			query_sql "SELECT `account_id` from `char` where `online`=1", .@account_id;
    			for (.@i=0; .@i < getarraysize(.@account_id); .@i++){
    				if (attachrid(.@account_id[.@i])){
    					if (rebirth_no){ rebirth_no = 0; }
    					if (master_rebirth){ master_rebirth = 0; }
    				}
    			}
    			deletearray .@account_id[0],getarraysize(.@account_id);
    			mes "^11E6D0[Rebirth System]^000000";
    			mes "Ranker Reset.";
    			close;
    			
    	}
    	if (@rebirth_type==1){rebirth_no += 1;}
    	else{master_rebirth += 1; rebirth_no = rebirth_no - .MasterRebirth; }
    	switch(.ResetJob){
    		case 1: 
    			if (!Upper){
    				jobchange Job_Novice; break;
    			}
    		case 3: jobchange Job_Novice_High; break;
    		case 2: jobchange Job_Novice; break;
    		default: break;
    	
    	}
    	resetlvl(.reset_opt);
    	if (.reset_ss&1){resetstatus;}
    	if (.reset_ss&2){resetskill;}
    	query_sql "INSERT INTO `rebirth_system` (`char_id`,`name`,`rebirth_no`,`master_rebirth`) VALUES ("+getcharid(0)+",'"+strcharinfo(0)+"',"+rebirth_no+","+master_rebirth+") ON DUPLICATE KEY UPDATE `rebirth_no`="+rebirth_no+", `master_rebirth`="+master_rebirth+" ";
    	getItemReward(@rebirth_type);
    	if (.StatusN || .StatusM){
    		StatusPoint = StatusPoint + (.StatusM * master_rebirth) + (.StatusN * rebirth_no);
    	}
    	mes "^11E6D0[Rebirth System]^000000";
    	mes "You have taken Rebirth.";
    	if (@rebirth_type==1){
    		announce "[ Rebirth system ] : "+ strcharinfo(0) +" rebirth for the "+ rebirth_no +" time !", 0;
    	}else{
    		announce "[ Rebirth system ] : "+ strcharinfo(0) +" has done Master rebirth for "+ master_rebirth +" time !", 0;
    	}
    	close;
    
    function deleteItem {
    	for (.@i=0 ; .@i < .size_item; .@i += 3 ){
    		if ( !( getarg(0)&(.item_req[.@i+2]) ) ){continue;}
    		delitem .item_req[.@i], ( .item_req[ .@i+1 ] );
    	}
    	return;
    }
    
    function CheckItemNeed {
    	if ( Weight > 20000 ) {
    		mes "You must reduce your weight to 2000 to do Rebirth.";
    		close;
    	}
    	.@error = 0;
    	for (.@i=0 ; .@i < .size_item; .@i += 3 ){
    		if ( !( getarg(0)&(.item_req[.@i+2]) ) ){continue;}
    		if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] ) {
    			mes "You Require [^ff0000"+countitem( .item_req[.@i] )+" / "+ .item_req[.@i+1] +"^000000] ^112FD9"+getitemname( .item_req[.@i] )+"^000000";
    			.@error = 1;
    		}else{
    			mes "You Require [^00ff00"+countitem( .item_req[.@i] )+" / "+ .item_req[.@i+1] +"^000000] ^112FD9"+getitemname( .item_req[.@i] )+"^000000";
    		}
    	}
    	if (.@error && !getarg(1,0)){close;}
    	
    	return;
    }
    
    function getItemReward {
    	for (.@i=0 ; .@i < .size_reward; .@i += 4 ){
    		if ( !( getarg(0)&( .reward[.@i+3] ) ) ) {continue;}
    		if (rand(1,10000) <= .reward[.@i+2]){
    			mes "You Got "+.reward[.@i+1]+" "+getitemname(.reward[.@i])+" ";
    			getitem .reward[.@i], .reward[ .@i+1 ];
    		}
    	}
    	next;
    	return;
    }
    
    OnInit:
    	// item required <item ID>, <number> , <1=NormalRebirth,2=MasterRebirth,3=ForBorthRebirths>
    	setarray .item_req, 674, 1, 1;
    	.size_item = getarraysize( .item_req );
    	// rewards <item ID>, <quantity>,<chance(10000=100%)>,<1=NormalRebirth,2=MasterRebirth,3=PriceForBothRebirths>
        // recalculates the chance and gives the next reward if chance is met.
    	setarray .reward, 674,	2,	10000,	1;
    	.size_reward = getarraysize( .reward );	//Do not Change This
    	.list = 10;		//Show Top x in Ranking
    	/*
    		EAJL_2_1: 2-1 Class
    		EAJL_2_2: 2-2 Class
    		EAJL_2: All Second Class
    		EAJL_UPPER: All Trans Class
    		EAJL_BABY: All Baby Class
    		EAJL_THIRD: All Third Class
    		Full List:
    			EAJL_2_1|EAJL_UPPER: Trans 2-1 Class
    			EAJL_2_2|EAJL_UPPER: Trans 2-2 Class
    			EAJL_2|EAJL_UPPER: Trans Second Class
    			
    			EAJL_BABY|EAJL_2: All Second Baby Class
    			(Same for 2_1/2_2/Upper as mentioned above)
    			
    			EAJL_THIRD|EAJL_2_1: 3-1 Class
    			EAJL_THIRD|EAJL_2_2: 3-2 Class
    			
    			EAJL_THIRD|EAJL_2_1|EAJL_UPPER: Trans 3-1 Class
    			EAJL_THIRD|EAJL_2_2|EAJL_UPPER: Trans 3-2 Class
    			EAJL_THIRD|EAJL_2|EAJL_UPPER: Trans 3rd Class
    			
    			EAJL_THIRD|EAJL_2_1|EAJL_UPPER|EAJL_BABY: Baby Trans 3-1 Class
    			... You can have any Combination of classes ...
    			
    			
    	*/
    	.job_rebirth = EAJL_THIRD|EAJL_2|EAJL_UPPER;							
    	setarray .add_jobs[0],Job_Gunslinger,				// Additional Jobs, who can rebirth
    						  Job_Soul_Linker,
    						  Job_Star_Gladiator,
    						  Job_Taekwon;
    	.ResetStat = 10000;									// Zeny needed for Resetting Stat
    	.reset_opt = 2;										// (1=Reset Base and JobLevel to 1(0 skill points and all stats to 1),2=Reset Base and JobLevel to 1(SkillPoint=0, While Skills and stats are not affected),3=Reset BaseLevel to 1, 4=Reset Job Level to 1)
    	.reset_ss = 0;										// (1=Reset Status, 2=Reset Skills, 3 = Reset Status and Skills).
    	setarray .MaxRebirth[0],175,0;						// Maximum Number of Normal Rebirth/Master Rebirth.(0=Unlimited) 
    	.ResetJob = 0;										// 0=Don't Change Job, Just Reset Level,1=Reset Job to Novice/Novice_High depending upon the job, 2=Force Reset to Novice, 3=Force Reset to Novice_High
    	.MasterRebirth = 0;								// Number of rebirths require to do Master Rebirth. (0 to disable)
    	.StatusN = 300;										// Status Point to Give at Every Normal Rebirth.
    	.StatusM = (.StatusN * .MasterRebirth) + 200;		// Status Point to Give at Every Master Rebirth. (Don't Change initial part)
    	.GMLevel = 99;										// Minimum GM Level to Reset the Ranking.
    	
    	query_sql "CREATE TABLE IF NOT EXISTS `rebirth_system` (  `char_id` int(11) NOT NULL default '0',  `name` varchar(24) NOT NULL DEFAULT 'NULL',  `rebirth_no` mediumint(6) NOT NULL default '0',  `master_rebirth` mediumint(6)  NOT NULL default '0',  PRIMARY KEY  (`char_id`)) ENGINE=MyISAM";
    	end;
    }
    

  3. There is no bug its just 30 seconds befor the event ends.

    You should change.

     

    sleep 30000; // last 30 Seconds

    To

    sleep 900000; // last 15 Minutes

     

    This wil make the event last 15 minutes instead of 30 seconds.

    ok thanks  :excl:


  4. Ahhhhhh yes I understand.

     

    1. Disable the sell function on all shop NPCs.

    2. Sell function will only be available on specific NPCs.

     

    I can't help you, sorry, but hopefully this clarifies the situation for future posters.

     

    How to disable sell function ? Source editing ? 


  5.  

     

     

    *setiteminfo(<item id>,<type>,<value>)
    
    This function will set some value of an item.
    Returns the new value on success, or -1 on fail (item_id not found or 
    invalid type).
    
    Valid types are:
    	0 - Buy Price; 1 - Sell Price; 2 - Item Type;
    	3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
    		if = 0, then monsters don't drop it at all (rare or a quest item)
    		if = 10000, then this item is sold in NPC shops only
    	4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
    	10 - slot; 11 - look; 12 - elv; 13 - wlv; 14 - view id
    
    Example:
    
    setiteminfo Stone, 6, 9990; // Stone now weighs 999.0
    

    Auch. This option need to set manual right. How about a thousand of card? So I need to put item id one by one. Any different idea that can be used for detect a card type ?

    Just loop from 4001-4999, all cards are in that range

     

    can you give simple script for example?


  6.  

    *setiteminfo(<item id>,<type>,<value>)
    
    This function will set some value of an item.
    Returns the new value on success, or -1 on fail (item_id not found or 
    invalid type).
    
    Valid types are:
    	0 - Buy Price; 1 - Sell Price; 2 - Item Type;
    	3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
    		if = 0, then monsters don't drop it at all (rare or a quest item)
    		if = 10000, then this item is sold in NPC shops only
    	4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
    	10 - slot; 11 - look; 12 - elv; 13 - wlv; 14 - view id
    
    Example:
    
    setiteminfo Stone, 6, 9990; // Stone now weighs 999.0
    

    Auch. This option need to set manual right. How about a thousand of card?


  7. Hm do you mean disable every npc that opens a shop?

     

    And you want to create one npc that is...

     

    Sorry I'm lost. Can you please clarify X_X

    Sorry for my bad explaination.

    As you know, tool dealer can buy item and sell item right. Also the weapon dealer and armor dealer and other npc.

    So I want all that npc are disable from sell item. So player just can buy item from that npc.

     

    Then another one new npc, that can sell item, means player can sell any item at it.

     

    Can you understand...


  8. Hello.

    I want to request a script that overwrite item price in ragnarok.

    For example, with this script, all monster card price range of 10k to 20k zeny.

    Also, for weapon, headgear, accessories can be customize price range for 100k to 200k zeny and for etc item, price are default to original price

×
×
  • Create New...

Important Information

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