Jump to content
  • 0

Refiner & Derefiner


Question

6 answers to this question

Recommended Posts

  • 0
Posted

prontera,155,181,5	script	Sample	4_F_KAFRA1,{
	.@eqi = select(.eqi_menu$);
	mes "it cost "+F_InsertComma(.cost[.@option])+" Zeny";
	if (getequipid(.eqi_list[.@eqi]) <= 0) {
		mes "you didnt have any equipment there.";
	}
	else if (Zeny < .cost[.@option]) {
	
	}
	else {
		.@option = select("refine", "derefine");
		Zeny -= .cost[.@option];
		if (.@option == 1) {
			successrefitem .eqi_list[.@eqi];
		}
		else {
			downrefitem .eqi_list[.@eqi];
		}
		mes "done.";
	}
	close;
	
	OnInit:
		setarray .cost, 
			10000,	// refine
			100000;	// de-refine
			
		setarray .eqi_list,
			EQI_HEAD_TOP,
			EQI_ARMOR,
			EQI_HAND_L,
			EQI_HAND_R,
			EQI_GARMENT,
			EQI_SHOES;
			
		.@size = getarraysize(.eqi_list);
		for (.@i = 0; .@i < .@size; .@i++) 
			.eqi_menu$ = .eqi_menu$ + F_getpositionname(.eqi_list[.@i]) + ":";
		end;
}

 

  • 0
Posted (edited)

who can help me to fix this?

prontera,111,64,5    script    +10 Refiner NPC    813,{
for( set .@i,1; .@i <= 6; set .@i,.@i + 1 )
    if( getequipisequiped( .@i ) ){
        if( getequipisenableref( .@i ) && getequiprefinerycnt( .@i ) <= .max_refine ){
            set .@eq_count,.@eq_count + 1;
            set .@menu$,.@menu$ + " +"+getequiprefinerycnt( .@i )+" "+getequipname( .@i ) +":";
        }else{
            set .@menu$,.@menu$ +":";
        }
    }else{
        set .@menu$,.@menu$ +":";
    }
if( !.@eq_count ){
    mes "You dont have any equipment available for refine.";
    close;
}

set .@equipment,select( .@menu$ );
set .@temp_equip,getequipid( .@equipment );

do{
    if( getequipid( .@equipment ) != .@temp_equip ){
        mes "Dont change to other equipments.";
        close;
    }
    
    set .@eq_level,getequipweaponlv( .@equipment );
    if( .@eq_level == 1 ) set .@free_refine,6;
    else if( .@eq_level == 2 ) set .@free_refine,7;
    else if( .@eq_level == 3 ) set .@free_refine,8;
    else if( .@eq_level == 4 ) set .@free_refine,9;
    else if( .@eq_level == 5 ) set .@free_refine,3;
    else if( .@eq_level == 6 ) set .@free_refine,2;
    else set .@free_refine,4;
    
    set .@refine_count,getequiprefinerycnt( .@equipment );
    
    if( .zeny_cost ){
        mes "Every Refine : ^0055FF"+callfunc( "ValueConvert",.zeny_cost )+" Zeny^000000";
        mes "De-refine : ^FF0000Free^000000";
        mes " ";
        mes "If current refine below +^FF0000"+.@free_refine+" : ^FF0000Free^000000";
        next;
    }

    set .@refine,select(( .@refine_count >= .max_refine )?"":"Refine to ^0055FF+"+( .@refine_count + 1 )+" "+getequipname( .@equipment )+"^000000",
                        ( .@refine_count < 1 )?"":"De-refine -1" );  // temporary disabled de-refine
    
    if( Zeny < .zeny_cost && .@refine == 1 ){
        message strcharinfo(0),"Dont have enough zeny.";
        break;
    }
    
    if( .@refine_count < 1 && .@refine == 2 ){
        mes "You cant de-refine this anymore.";
        break;
    }else if( .@refine_count >= .max_refine && .@refine == 1 ){
        mes "You cant refine this anymore.";
    }else{
        if( .@refine == 1 && .@refine_count >= .@free_refine )
            set Zeny,Zeny - .zeny_cost;
        switch( .@refine ){
            Case 1: successrefitem .@equipment; break;
            Case 2: downrefitem .@equipment; break;
            default: break;
        }
    }
    
    if( getequiprefinerycnt( .@equipment ) >= .max_refine ){
        mes "Max Refine Reach...";
        break;
    }
}while( 1 );
close;

OnInit:
OnWhisperGlobal:
set .zeny_cost,0;
set .max_refine,10;

waitingroom "  Refiner / DeRefiner",0;
end;
}

 

Edited by Emistry
Please use codebox
  • 0
Posted
38 minutes ago, Rizal Shadowx said:

who can help me to fix this?

prontera,111,64,5	script	+10 Refiner NPC	813,{
	for( set .@i,EQI_SHOES; .@i <= EQI_HAND_R; set .@i,.@i + 1 )
		if( getequipisequiped( .@i ) ){
			if( getequipisenableref( .@i ) && getequiprefinerycnt( .@i ) <= .max_refine ){
				set .@eq_count,.@eq_count + 1;
				set .@menu$,.@menu$ + " +"+getequiprefinerycnt( .@i )+" "+getequipname( .@i ) +":";
			}else{
				set .@menu$,.@menu$ +":";
			}
		}else{
			set .@menu$,.@menu$ +":";
		}
	if( !.@eq_count ){
		mes "You dont have any equipment available for refine.";
		close;
	}

	set .@equipment,select( .@menu$ ) + 1;
	set .@temp_equip,getequipid( .@equipment );

	do{
		if( getequipid( .@equipment ) != .@temp_equip ){
			mes "Dont change to other equipments.";
			close;
		}
		
		set .@eq_level,getequipweaponlv( .@equipment );
		if( .@eq_level == 1 ) set .@free_refine,6;
		else if( .@eq_level == 2 ) set .@free_refine,7;
		else if( .@eq_level == 3 ) set .@free_refine,8;
		else if( .@eq_level == 4 ) set .@free_refine,9;
		else if( .@eq_level == 5 ) set .@free_refine,3;
		else if( .@eq_level == 6 ) set .@free_refine,2;
		else set .@free_refine,4;
		
		set .@refine_count,getequiprefinerycnt( .@equipment );
		
		if( .zeny_cost ){
			mes "Every Refine : ^0055FF"+callfunc( "ValueConvert",.zeny_cost )+" Zeny^000000";
			mes "De-refine : ^FF0000Free^000000";
			mes " ";
			mes "If current refine below +^FF0000"+.@free_refine+" : ^FF0000Free^000000";
			next;
		}

		set .@refine,select(( .@refine_count >= .max_refine )?"":"Refine to ^0055FF+"+( .@refine_count + 1 )+" "+getequipname( .@equipment )+"^000000",
							( .@refine_count < 1 )?"":"De-refine -1" );  // temporary disabled de-refine
		
		if( Zeny < .zeny_cost && .@refine == 1 ){
			message strcharinfo(0),"Dont have enough zeny.";
			break;
		}
		
		if( .@refine_count < 1 && .@refine == 2 ){
			mes "You cant de-refine this anymore.";
			break;
		}else if( .@refine_count >= .max_refine && .@refine == 1 ){
			mes "You cant refine this anymore.";
		}else{
			if( .@refine == 1 && .@refine_count >= .@free_refine )
				set Zeny,Zeny - .zeny_cost;
			switch( .@refine ){
				Case 1: successrefitem .@equipment; break;
				Case 2: downrefitem .@equipment; break;
				default: break;
			}
		}
		
		if( getequiprefinerycnt( .@equipment ) >= .max_refine ){
			mes "Max Refine Reach...";
			break;
		}
	}while( 1 );
	close;

	OnInit:
		OnWhisperGlobal:
		set .zeny_cost,0;
		set .max_refine,10;

		waitingroom "  Refiner / DeRefiner",0;
		end;
}

 

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...