Jump to content

Question

11 answers to this question

Recommended Posts

Posted · Hidden by Patskie, January 21, 2014 - No reason given
Hidden by Patskie, January 21, 2014 - No reason given


Edit--

Posted


prontera,184,177,5 script Refine Master 851,{

mes .npc$;

mes "Hello there!";

mes "I can refine your items,";

mes "without fail if you have";

mes "the correct refinement deed,";

mes "and "+.price+" "+.cost$+".";

emotion e_no1,0; next;

if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; }

if(getd(.cost$)<.price) { mes .npc$; mes "You don't have enough "+.cost$+". You need "+(.price-getd(.cost$))+" more."; close; }

mes .npc$;

mes "Which equipment would you like to refine?"; next;

while(set(.@a,.@a+1)<=.e_len) {

if(getequipid(.@a)>-1)

set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.@a))+"^000000]:";

else set .@menu$, .@menu$+"^adb4be"+.eqp$[.@a-1]+"- [Empty]^000000:";

}

select(.@menu$);

set .@eq_loc, @menu;

set .@eq_itm, getequipid(.@eq_loc);

if(.@eq_itm<0) {

mes .npc$;

mes "Hmm, I don't think you have anything equipped there.";

close;

}

if(!getequipisenableref(.@eq_loc)) {

mes .npc$;

mes "I'm sorry but it seem that item cannot be refined...";

close;

}

set .@menu$, "";

set .@a, -1;

while(set(.@a,.@a+1)<getarraysize(.en_deed))

if(getiteminfo(.en_deed[.@a],2)>-1)

if(set(.@c,countitem(.en_deed[.@a]))) {

set .@menu$, .@menu$+getitemname(.en_deed[.@a])+" - x"+.@c+":";

set .@b,.@b+1; set .@item[.@b], .en_deed[.@a];

}

if(.@menu$=="") {

mes .npc$;

mes "Hmm, you don't seem to have any refinement deeds(tickets).";

close;

}

mes .npc$;

mes "Please, choose the ^314a34Weapon or Armor refine deed^000000 you want to use."; next;

select(.@menu$);

set .@itm, .@item[@menu];

set .@itm_n$, getitemname(.@itm);

set .@a, 4;

if(.@eq_loc!=4&&getiteminfo(getequipid(.@eq_loc),2)!=4) {

if(compare(.@itm_n$,"Weapon")) {

mes .npc$;

mes "You may only use Weapon deeds on weapons..";

emotion e_ag,0;

close;

}

} else {

if(compare(.@itm_n$,"Armor")) {

mes .npc$;

mes "You may only use Armor deeds on armor equipment..";

emotion e_ag,0;

close;

}

}

set .@eqrf, getequiprefinerycnt(.@eq_loc);

while(set(.@a,.@a+1))

if(compare(.@itm_n$,""+.@a))

break;

if(.@a<=.@eqrf) {

mes .npc$;

mes "I'm sure you don't want to waste a";

mes "deed by refining that to a lesser";

mes "or equal value.";

emotion e_swt,0;

close;

}

mes .npc$;

mes "Great.";

mes "as you wish!";

mes "i have my own special way to";

mes "refine..."; sleep2 1000;

misceffect 901;

misceffect 101;

mes "......Kaboom!";

next;

delitem .@itm,1;

setd(.cost$,getd(.cost$)-.price);

set .@crd0, getequipcardid(.@eq_loc,0); set .@crd1, getequipcardid(.@eq_loc,1);

set .@crd2, getequipcardid(.@eq_loc,2); set .@crd3, getequipcardid(.@eq_loc,3);

delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@crd0, .@crd1, .@crd2, .@crd3;

getitem2 .@eq_itm, 1, 1, .@a, 0, .@crd0, .@crd1, .@crd2, .@crd3;

emotion e_no1,0;

mes .npc$;

mes "All done!";

equip .@eq_itm;

close;

//NPC Constants

OnInit:

//=-=-=-=-=-=-=Configuration=-=-=-=-=-=-=

set .npc$ , "[^0000FFRefine Master^000000]"; // NPC Name

set .cost$ , "#CASHPOINTS";

set .price , 10000;

setarray .en_deed, 6228, 6229, 6230, 6231, 6232,

6233, 6234, 6235, 6238, 6239,

6456; // Range of IDs selected for enchanting.

setarray .eqp$ , "Upper Headgear", "Armor", "Left Hand", "Right Hand", "Garment",

"Shoes", "Accessory1", "Accessory2", "Mid Headgear", "Low Headgear";

set .e_len , getarraysize(.eqp$);

//=-=-=-=-=-=-=-=-Skorm-=-=-=-=-=-=-=-=-=

}

Posted
prontera,184,177,5	script	Refine Master	851,{
	mes .npc$;
	mes "Hello there!";
	mes "I can refine your items,";
	mes "without fail if you have";
	mes "the correct refinement deed,";
	mes "and "+.price+" "+.cost$+".";
	emotion e_no1,0; next;
	if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; }
	if(getd(.cost$)<.price) { mes .npc$; mes "You don't have enough "+.cost$+". You need "+(.price-getd(.cost$))+" more."; close; }
	
	mes .npc$;
	mes "Which equipment would you like to refine?"; next;
	while(set(.@a,.@a+1)<=.e_len) {
		if(getequipid(.@a)>-1)
			set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.@a))+"^000000]:";
		else set .@menu$, .@menu$+"^adb4be"+.eqp$[.@a-1]+"- [Empty]^000000:";
	}
		
	select(.@menu$);
	set .@eq_loc, @menu;
	set .@eq_itm, getequipid(.@eq_loc);
	if(.@eq_itm<0) {
		mes .npc$;
		mes "Hmm, I don't think you have anything equipped there.";
		close;
	}
	if(!getequipisenableref(.@eq_loc)) {
		mes .npc$;
		mes "I'm sorry but it seem that item cannot be refined...";
		close;
	}
	
	set .@menu$, "";
	set .@a, -1;
	while(set(.@a,.@a+1)<getarraysize(.en_deed))
		if(getiteminfo(.en_deed[.@a],2)>-1)
			if(set(.@c,countitem(.en_deed[.@a]))) {
				set .@menu$, .@menu$+getitemname(.en_deed[.@a])+" - x"+.@c+":";
				set .@b,.@b+1; set .@item[.@b], .en_deed[.@a];
			}
			
	if(.@menu$=="") {
		mes .npc$;
		mes "Hmm, you don't seem to have any refinement deeds(tickets).";
		close;
	}

	mes .npc$;
	mes "Please, choose the ^314a34Weapon or Armor refine deed^000000 you want to use."; next;
	select(.@menu$);
	set .@itm, .@item[@menu];
	set .@itm_n$, getitemname(.@itm);
	set .@a, 4;
	
	if(.@eq_loc!=4&&getiteminfo(getequipid(.@eq_loc),2)!=4) {
		if(compare(.@itm_n$,"Weapon")) {
			mes .npc$;
			mes "You may only use Weapon deeds on weapons..";
			emotion e_ag,0;
			close;
		}
	} else {
		if(compare(.@itm_n$,"Armor")) {
			mes .npc$;
			mes "You may only use Armor deeds on armor equipment..";
			emotion e_ag,0;
			close;
		}
	}
	set .@eqrf,	getequiprefinerycnt(.@eq_loc);
	while(set(.@a,.@a+1))
		if(compare(.@itm_n$,""+.@a))
			break;

	if(.@a<=.@eqrf) {
		mes .npc$;
		mes "I'm sure you don't want to waste a";
		mes "deed by refining that to a lesser";
		mes "or equal value.";
		emotion e_swt,0;
		close;
	}
		
	
	mes .npc$;
	mes "Great.";
	mes "as you wish!";
	mes "i have my own special way to";
	mes "refine..."; sleep2 1000;
	misceffect 901;
	misceffect 101;
	mes "......Kaboom!";
	next;
	
	delitem .@itm,1;
	setd(.cost$,getd(.cost$)-.price);
	set .@crd0, getequipcardid(.@eq_loc,0); set .@crd1, getequipcardid(.@eq_loc,1);
	set .@crd2, getequipcardid(.@eq_loc,2); set .@crd3, getequipcardid(.@eq_loc,3);
	delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@crd0, .@crd1, .@crd2, .@crd3;
	getitem2 .@eq_itm, 1, 1, .@a, 0, .@crd0, .@crd1, .@crd2, .@crd3;
	emotion e_no1,0;
	mes .npc$;
	mes "All done!";
	equip .@eq_itm;
	close;

//NPC Constants
	OnInit:
		//=-=-=-=-=-=-=Configuration=-=-=-=-=-=-=
		set      .npc$  ,	"[^0000FFRefine Master^000000]"; // NPC Name
		set      .cost$ ,	"#CASHPOINTS";
		set      .price ,	10000;
		setarray .en_deed,	6228, 6229, 6230, 6231, 6232,
							6233, 6234, 6235, 6238, 6239,
							6456;     // Range of IDs selected for enchanting.
		setarray .eqp$  ,	"Upper Headgear", "Armor", "Left Hand", "Right Hand", "Garment",
		                	"Shoes", "Accessory1", "Accessory2", "Mid Headgear", "Low Headgear";
		set      .e_len ,	getarraysize(.eqp$);
		//=-=-=-=-=-=-=-=-Skorm-=-=-=-=-=-=-=-=-=
}

i try this master can you change you +7 only master this imba /heh  Lets say i have this item 6230 then i want to ups any part of  my equipment or shoes to +7 limit and max

 

master this item for weapon only? 6230 

Posted

that's why I keep telling .... use CONSTANT ....

2 reasons for using constant ...

1. it makes the script has higher readability

2. if somehow the developer updates the script engine, it less likely that your script getting bugs due to revision update

I change the no.4 into IT_WEAPON

[paste=3bzgwiq4fpx3]

Posted

that's why I keep telling .... use CONSTANT ....

2 reasons for using constant ...

1. it makes the script has higher readability

2. if somehow the developer updates the script engine, it less likely that your script getting bugs due to revision update

I change the no.4 into IT_WEAPON

[paste=3bzgwiq4fpx3]

 

 

@Annie i've tested the script and this one pops out.

[Debug]: Source (NPC): Refine Master at prontera (127,86)
[Info]: Saved char 150009 - [ Admin ] Yoona shi ~ : inventory status.
Posted

Honestly the scripted worked unmodified for me and others whom I shared it with.

 

Annie, question...

 

In my most recent version of this script I have....

if(.@menu$=="")

You changed it to...

if( !getstrlen(.@menu$) )

It just seems like that would be slower because it's 2 actions instead of one but really it accomplishes the same thing.

Posted (edited)

Honestly the scripted worked unmodified for me and others whom I shared it with.

there is a very recent change about item type 4 & 5

http://rathena.org/board/topic/90738-itemtype-update-read-this-very-important/

if your script has been using IT_WEAPON instead of 4, your script won't get broken

because now IT_WEAPON is 5

 

Annie, question...

 

In my most recent version of this script I have....

if(.@menu$=="")
You changed it to...

if( !getstrlen(.@menu$) )
It just seems like that would be slower because it's 2 actions instead of one but really it accomplishes the same thing.
nope, there are certain things that you need to many people doesn't know about crappy rathena script engine

http://rathena.org/board/topic/74164-h-please-edit-this/?p=155835

its true that I called up C_LNOT + BUILDIN_FUNC(getstrlen), 2 functions

but its still way cleaner than C_EQ, because this command run through 3 functions

1. run through a while loop in char* parse_subexpr ...

2. then it check the left and right value is both string or not in char* parse_variable ...

3. then only use strcmp to compare both value in op_2str

EDIT:

prontera,158,184,5	script	kjfhksdfjs	100,{
//	set .@dummy$, ""; // variable is not set
	if ( !strcmp( .@dummy$ , "" ) )
		dispbottom "correct";
	else
		dispbottom "wrong";
	end;
}
seems like working fine too O.o Edited by AnnieRuru

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...