Jump to content
  • 0

Refiner script


AinsLord

Question


  • Group:  Members
  • Topic Count:  257
  • Topics Per Day:  0.08
  • Content Count:  737
  • Reputation:   18
  • Joined:  11/21/15
  • Last Seen:  

//============================================================
//= Main Refiner Function
//============================================================
//= To allow auto safe refining/multiple refining set the
//= @features variable to 1
//============================================================
moc_ruins,130,185,4	script	refinemain	100{
	set @features,1;

	mes "[" + @name$ + "]";
	mes "I am the Armsmith... I can refine any weapon or piece of armor you choose!";
	mes "Which piece of equipment do you want to refine?";
	M_Menu:
	next;
	menu getequipname(1),PART1,getequipname(2),PART2,getequipname(3),PART3,getequipname(4),PART4,getequipname(5),PART5,
	     getequipname(6),PART6,getequipname(7),PART7,getequipname(8),PART8,getequipname(9),PART9,getequipname(10),PART10;

	//Head Gear
	PART1:
		set @part,1;
		if (getequipisequiped(1)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "Do you want me to refine your dumb brain?";
		emotion 6;
		goto M_Menu;
	//Armor
	PART2:
		set @part,2;
		if (getequipisequiped(2)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "Do you want me to melt your body with blazing heat...?";
		emotion 6;
		goto M_Menu;
	//Left Hand
	PART3:
		set @part,3;
		if (getequipisequiped(3)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "I can't make your left hand into an ultimate weapon...";
		emotion 4;
		goto M_Menu;
	//Right Hand
	PART4:
		set @part,4;
		if (getequipisequiped(4)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "I can't make your right hand into an ultimate weapon...";
		emotion 4;
		goto M_Menu;
	//Garment
	PART5:
		set @part,5;
		if (getequipisequiped(5)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "Look here... you don't have any Garments on...";
		goto M_Menu;
	//Foot Gear
	PART6:
		set @part,6;
		if (getequipisequiped(6)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "Ack!! Those are some stinky feet. I definitely can't refine those... uck!!";
		emotion 16;
		goto M_Menu;
	//Accessory1
	PART7:
		set @part,7;
		if (getequipisequiped(7)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "What do you mean by Accessory? Which One?";
		emotion 20;
		goto M_Menu;
	//Accessory2
	PART8:
		set @part,8;
		if (getequipisequiped(8)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "What do you mean by Accessory? Which One?";
		emotion 20;
		goto M_Menu;
	PART9:
		set @part,9;
		if (getequipisequiped(9)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "What do you want from me? There's nothing equipped there...";
		emotion 20;
		goto M_Menu;
	PART10:
		set @part,10;
		if (getequipisequiped(10)) goto CHECK1;
		mes "[" + @name$ + "]";
		mes "What do you want from me? There's nothing equipped there...";
		emotion 20;
		goto M_Menu;

//Check if the item is refinable...
CHECK1:
	if(getequipisenableref(@part)) goto CHECK2;
	mes "[" + @name$ + "]";
	mes "I can't work on this item...";
	close;

//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
CHECK2:
	if(getequipisidentify(@part)) goto CHECK3;
	mes "[" + @name$ + "]";
	mes "You must appraise this item first.";
	close;

//Check to see if the items is already +10
CHECK3:
	if(getequiprefinerycnt(@part) < 10) goto REFINE0;
	mes "[" + @name$ + "]";
	mes "This weapon is already at its maximum level and can no longer be refined.";
	close;

//Refine Armor
REFINE0:
	set @refineitemid, getequipid(@part); // save id of the item
	set @refinerycnt, getequiprefinerycnt(@part); //save refinery count
	if(getequipweaponlv(@part) > 0) goto REFINE1;
	set @matname$,"Elunium";
	set @material,985;
	set @price,2000;
	set @safe,4;
	if(@features == 1) goto L_refinefeatures;
	goto L_refinenormal;
//Refine Level 1 Weapon
REFINE1:
	if(getequipweaponlv(@part) > 1) goto REFINE2;
	set @matname$,"Phracon";
	set @material,1010;
	set @price,50;
	set @safe,7;
	if(@features == 1) goto L_refinefeatures;
	goto L_refinenormal;
//Refine Level 2 Weapon
REFINE2:
	if(getequipweaponlv(@part) > 2) goto REFINE3;
	set @matname$,"Emveretarcon";
	set @material,1011;
	set @price,200;
	set @safe,6;
	if(@features == 1) goto L_refinefeatures;
	goto L_refinenormal;
//Refine Level 3 Weapon
REFINE3:
	if(getequipweaponlv(@part) > 3) goto REFINE4;
	set @matname$,"Oridecon";
	set @material,984;
	set @price,5000;
	set @safe,5;
	if(@features == 1) goto L_refinefeatures;
	goto L_refinenormal;
//Refine Level 4 Weapon
REFINE4:
	set @matname$,"Oridecon";
	set @material,984;
	set @price,20000;
	set @safe,4;
	if(@features == 1) goto L_refinefeatures;
	goto L_refinenormal;

L_refinenormal:
	mes "[" + @name$ + "]";
	mes "To refine this stuff, I need ^ff9999" + @matname$ + "^000000 and the fee " + @price + " Zeny.";
	mes "Continue?";
	next;
	menu "Yes",-,"No",Lcancel;

		if (getequippercentrefinery(@part) == 100) goto L_Sub;
		mes "[" + @name$ + "]";
		mes "Hmm... Hold on! This piece of equipment has already been refined to its maximum safety level.";
		mes "I must warn you if it is refined ANYMORE, It could be DESTROYED and become USELESS!!";
		next;
		mes "["+@name$+"]";
		mes "Do you still wish you refine it? If so I will not be able to guarantee my work...";
		next;
		menu "Yes",-,"No",Lcancel1;

		L_Sub:
			if ((countitem(@material) < 1) || (Zeny < @price)) goto Lcancel2;
			set Zeny,Zeny-@price;
			delitem @material,1;

Lrefine:
	if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (not changed, why?)
	if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item
	if (getequiprefinerycnt(@part) != @refinerycnt) goto LNoFake; // hacker has changed the item
	if (getequippercentrefinery(@part) <= rand(100)) goto Lfail;
	mes "["+@name$+"]";
	mes "Clang! Clang! Clang!";
	successrefitem @part;
	next;
	mes "["+@name$+"]";
	mes "HAHA! It seems my skills haven't gotten rusty yet! Splendid... just splendid...";
	emotion 21;
	close;

Lfail:
	mes "[" + @name$ + "]";
	mes "Clang! Clang! Clang!";
	failedrefitem @part;
	next;
	mes "["+@name$+"]";
	mes "Aaahhh!! Oh no...!!";
	emotion 16;
	next;
	mes "["+@name$+"]";
	mes "Eh..Ehem... I'm sorry but the refining process ^ff0000failed^000000.";
	next;
	mes "["+@name$+"]";
	mes "I am deeply ashamed of what I've done... but I DID warn you earlier about the risks.";
	close;

LNoItem:
	mes "[" + @name$ + "]";
	mes "Look here... you don't have any Items on...";
	close;

LNoFake:
	mes "[" + @name$ + "]";
	mes "Clan... No, but Did you imagine I could be so stupid !?!";
	mes "You have changed it...";
	mes "Go out before I stun you with my Hammer!!!";
	close;

Lcancel:
	mes "[" + @name$ + "]";
	mes "You said so..Hmm so be it...";
	close;

Lcancel1:
	mes "[" + @name$ + "]";
	mes "Good Choice.";
	mes "Ah... good choice. I'd feel awful if I'd destroyed another persons piece of equipment with my own hands.";
	close;

Lcancel2:
	mes "[" + @name$ + "]";
	mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
	close;

// New Refining Functions ========================
L_refinefeatures:
	if(getequiprefinerycnt(@part) >= @safe) goto Lnosafe;
	mes "[" + @name$ + "]";
	mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
	next;
	menu "To the safe limit please.",Lsafe,"I'll decide how many times.",Lnosafe,"I've changed my mind...",Lcancel;

Lsafe:
	set @refinecnt,@safe - getequiprefinerycnt(@part);
	set @fullprice,@price * @refinecnt;
	mes "[" + @name$ + "]";
	mes "That will cost you " + @refinecnt + " " + @matname$ + " and " + @fullprice + " Zeny. Is that ok?";
	next;
	menu "Yes",-,"No...",Lcancel;
	if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
	set Zeny,Zeny - @fullprice;
	delitem @material,@refinecnt;
	goto L_refinesafe;

Lnosafe:
	mes "[" + @name$ + "]";
	mes "So how many times would you like me to refine your item?";
	next;
	input @refinecnt;
	if (@refinecnt<1) goto Lcancel3; //fixed by Lupus
	set @refinecheck,@refinecnt + getequiprefinerycnt(@part);
	if(@refinecheck > 10) goto Lcancel3;
	set @fullprice,@price * @refinecnt;
	mes "[" + @name$ + "]";
	mes "This will cost you " + @refinecnt + " " + @matname$ + " and " + @fullprice + " Zeny... Is that ok?";
	next;
	menu "Yes...",-,"No...",Lcancel;
		if(@refinecheck > @safe) goto Lwarn;
		if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
		set Zeny,Zeny - @fullprice;
		delitem @material,@refinecnt;
		goto L_refinenumber;
		end;

		Lwarn:
			set @refinecheck,@refinecheck - @safe;
			mes "[" + @name$ + "]";
			mes "This will try to refine the equipment " + @refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
			next;
			menu "Yes",-,"No...",Lcancel1;
				if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
				set Zeny,Zeny - @fullprice;
				delitem @material,@refinecnt;
				goto L_refinenumber;

Lcancel3:
	mes "[" + @name$ + "]";
	mes "I can't refine this item that many times.";
	close;

// SubFunction: Safe Refine ---------------------
L_refinesafe:
	if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (no changed, why?)
	if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item
	if (getequippercentrefinery(@part) < 100) goto LNoFake; // hacker has changed the item (it is not safe anymore)
	mes "Clang, clang!!!";
	successrefitem @part;
	emotion 21;
	set @refinecnt,@refinecnt - 1;
	next;
	if(@refinecnt == 0) goto Lend;
	goto L_refinesafe;

	Lend:
		mes "[" + @name$ + "]";
		mes "All finished... Come again soon.";
		close;
		
// SubFunction: Refine 
L_refinenumber:
	if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (no changed, why?)
	if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item
	mes "Clang, clang!!!";
	if (getequippercentrefinery(@part)<=rand(100)) goto Lfail_number;
	successrefitem @part;
	emotion 21;
	set @refinecnt,@refinecnt - 1;
	next;
	if(@refinecnt == 0) goto Lend;
	goto L_refinenumber;

	Lfail_number:
		failedrefitem @part;
		emotion 23;
		mes "[" + @name$ + "]";
		mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
		set @refinecnt,@refinecnt - 1;
		if(@refinecnt == 0) goto Lend2;
		mes "Here's the unused Zeny and Material back...";
		getitem @material,@refinecnt;
		set @fullprice,@refinecnt * @price;
		set Zeny,Zeny + @fullprice;

	Lend2:
		close;

i found it somewhere here

and i dunno whats wrong doesnt showed up on my server whats wrong?

can anyone help me please

thnx in advance

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  34
  • Topics Per Day:  0.01
  • Content Count:  386
  • Reputation:   38
  • Joined:  04/28/13
  • Last Seen:  

Shows any error on the console?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  257
  • Topics Per Day:  0.08
  • Content Count:  737
  • Reputation:   18
  • Joined:  11/21/15
  • Last Seen:  

doesnt show any

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  57
  • Reputation:   5
  • Joined:  11/19/13
  • Last Seen:  

you sure it does not show up??

have check on this map moc_ruins,130,185 ??

Link to comment
Share on other sites

  • 0

  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

dumb question, have you double check to ensure your server does loaded this script ?

 

anyway, judging from your current script shown in above ... 

  1. the header is wrong. it should be
    moc_ruins,130,185,4	script	refinemain	100,{
  2. missing a curley at the end of the script.
  3. getequipisequiped are no longer usable in latest rathena. remove it.

 

Fixed version :

https://pastebin.com/70k4rbrd

 

 

PBlfl8T.png

Link to comment
Share on other sites

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.

×
×
  • Create New...