Jump to content
  • 0
mrlongshen

All in one npc problem

Question

I try to use this script. but when I click on its, my char stuck, because its seem like the black one. cannot moving..

can someone help me ?

 

//===== rAthena Script =======================================//= All-in-One NPC//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.7//===== Description: =========================================//= A compilation of commonly-used NPC scripts.//== Includes job changer, stylist, refiner, card remover,//== coin exchanger, rentals, resetter, platinum skills,//== sex changer, identifier, healer, buffer, and repairman.//============================================================prontera,159,188,4	script	All-in-One NPC	953,{function Get_Platinum; function Equip_Menu; function Cm;	if (getarraysize(.OnClick)) {		if (.OnClick[0]) {			specialeffect2 EF_HEAL2;			percentheal 100,100;		}		if (.OnClick[1]) {			specialeffect2 EF_BLESSING; sc_start SC_BLESSING,600000,10;			specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,600000,10;		}		if (.OnClick[2])			repairall;	}	mes .n$;	set .@time, gettime(3);	mes "Good "+((.@time < 5 || .@time > 17)?"evening":((.@time < 12)?"morning":"afternoon"))+", "+strcharinfo(0)+"!";	mes "What can I do for you?";	emotion e_ho;	next;	disable_items;	switch(select(.menu$)) {	case 1:		function Job_Menu; function A_An;		mes .n$;		if (Class > 4049) {			mes "No more jobs are available.";			close;		}		if (checkfalcon() || checkcart() || checkriding() || ismounting()) {			mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding.";			close;		}		if (.SkillPointCheck && SkillPoint) {			mes "Please use all your skill points before proceeding.";			close;		}		set .@eac, eaclass();		set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);		if (.@i > 6 && .@i < 22) {			if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {				set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;				mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";				close;			}			if (Class > 21) {				mes "Switch to third class?";				next;				Job_Menu(roclass(.@eac|EAJL_THIRD));				close;			}			while(1) {				mes "Select an option.";				next;				set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");				if (.@i==3) close;				mes .n$;				mes "Are you sure?";				next;				Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));				mes .n$;			}		}		set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);		if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99;		if (Class == Job_Ninja) setarray .@exp[0],.@j1,70;		if (.@exp[0] && .ThirdClass) {			if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {				set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel;				mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";				close;			}			mes "Switch to "+jobname(.@exp[0])+"?";			next;			Job_Menu(.@exp[0]);			close;		}		if (.@eac&EAJL_2)			if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {				mes "No more jobs are available.";				close;			}		if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {			if (JobLevel < .JobReq[0])				mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class.";			else if (Class == 4001 && .LastJob && lastJob) {				mes "Switch classes now?";				next;				Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));			} else switch(Class) {				case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);				case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);				case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);				default: mes "An error has occurred."; break;			}			close;		}		if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1)			mes "No more jobs are available.";		else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1])			mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class.";		else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) {			mes "Switch classes now?";			next;			Job_Menu(lastJob+4001);		} else			Job_Menu(.@j1,.@j2);		close;		function Job_Menu {			while(1) {				if (getargcount() > 1) {					mes "Select a job.";					set .@menu$,"";					for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)						set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";					set .@menu$, .@menu$+" ~ ^777777Cancel^000000";					next;					set .@i, getarg(select(.@menu$)-1,0);					if (!.@i) close;					if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {						mes .n$;						mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";						close;					}					mes .n$;					mes "Are you sure?";					next;				} else					set .@i, getarg(0);				if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {					mes .n$;					mes "You are now "+A_An(jobname(.@i))+"!";					if (.@i==4001 && .LastJob) set lastJob, Class;					jobchange .@i;					if (.@i==4001 || .@i==4023)						resetlvl(1);					specialeffect2 EF_ANGEL2;					specialeffect2 EF_ELECTRIC;					if (.Platinum)						Get_Platinum;					close;				}				if (getargcount() == 1) return;				mes .n$;			}			end;		}		function Get_Platinum {			skill 142,1,0;			switch(BaseClass) {				case 0: if (Class !=23) skill 143,1,0; break;				case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;				case 2: skill 157,1,0; break;				case 3: skill 147,1,0; skill 148,1,0; break;				case 4: skill 156,1,0; break;				case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;				case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;				default: break;			}			switch(BaseJob) {				case 7: skill 1001,1,0; break;				case 8: skill 1014,1,0; break;				case 9: skill 1006,1,0; break;				case 10: skill 1012,1,0; skill 1013,1,0; break;				case 11: skill 1009,1,0; break;				case 12: skill 1003,1,0; skill 1004,1,0; break;				case 14: skill 1002,1,0; break;				case 15: skill 1015,1,0; skill 1016,1,0; break;				case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;				case 17: skill 1005,1,0; break;				case 18: skill 238,1,0; break;				case 19: skill 1010,1,0; break;				case 20: skill 1011,1,0; break;				default: break;			}			return;		}		function A_An {			setarray .@A$[0],"a","e","i","o","u";			set .@B$, "_"+getarg(0);			for(set .@i,0; .@i<5; set .@i,.@i+1)				if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);			return "a "+getarg(0);		}	case 2:		mes .n$;		mes "Select an option.";		next;		setarray .@Look[1],7,1,6;		set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");		set .@Revert, getlook(.@Look[.@s]);		set .@Style,1;		mes .n$;		mes "How does this look?";		while(1) {			setlook .@Look[.@s], .@Style;			message strcharinfo(0),"This is style #"+.@Style+".";			set .@menu$, " ~ Next (^0055FF"+((.@Style!=.Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";			switch(select(.@menu$)) {			case 1:				set .@Style, ((.@Style!=.Styles[.@s])?.@Style+1:1);				break;			case 2:				set .@Style, ((.@Style!=1)?.@Style-1:.Styles[.@s]);				break;			case 3:				next;				mes .n$;				mes "Choose a style between 1 - "+.Styles[.@s]+".";				input .@Style,0,.Styles[.@s];				if (!.@Style)					set .@Style, rand(1,.Styles[.@s]);				next;				mes .n$;				mes "How does this look?";				break;			case 4:				set .@Style, .@Revert;				setlook .@Look[.@s], .@Revert;				break;			}		}		close;	case 3:		function Refine_Item;		if (.EnrichedRefine) {			mes .n$;			mes "Select an option.";			next;			if (select(" ~ Normal Refiner: ~ Enriched Refiner") == 2) {				mes .n$;				mes "What do you want to refine?";				next;				Equip_Menu(1);				setarray .@Materials[0],7619,7620,7620,7620,7620;				setarray .@Safe[0],4,7,6,5,4;				set .@WLv, getequipweaponlv(@i);				mes .n$;				mes "Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);				next;				if(select(" ~ Refine item (2 * ^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ ^777777Cancel^000000") == 2)					close;				Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv], 1);				close;			}		}		mes .n$;		mes "What do you want to refine?";		next;		Equip_Menu(1);		setarray .@Materials[0],985,1010,1011,984,984;		setarray .@Safe[0],4,7,6,5,4;		set .@WLv, getequipweaponlv(@i);		set .@SafeCount, .@Safe[.@WLv]-getequiprefinerycnt(@i);		mes .n$;		mes "Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);		next;		switch(select(" ~ Refine once (^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ Refine multiple times (up to "+(10-getequiprefinerycnt(@i))+"): ~ Refine to safe limit ("+((.@SafeCount>0)?.@SafeCount+" refines":"^777777disabled^000000")+"): ~ ^777777Cancel^000000")) {		case 1:			Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 2:			input .@Refines;			if (.@Refines+getequiprefinerycnt(@i) > 10 || .@Refines < 1) {				mes .n$;				mes "Invalid number ("+.@Refines+").";			} else				Refine_Item(.@Refines, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 3:			if (.@SafeCount < 1) {				mes .n$;				mes "The item has already reached the safe limit.";			} else				Refine_Item(.@SafeCount, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 4:			close;		}		function Equip_Menu {			setarray .@pos$[1],"Upper Headgear","Armor","Left hand","Right hand","Garment","Footgear","Left Accessory","Right Accessory","Mid Headgear","Lower Headgear";			set .@menu$,"";			for (set .@i,1; .@i <= 10; set .@i,.@i+1) {				if (getequipisequiped(.@i))					set .@menu$, .@menu$+.@pos$[.@i]+" [^0055FF"+getequipname(.@i)+"^000000]";				set .@menu$, .@menu$+":";			}			set @i, select(.@menu$);			if (!getequipisequiped(@i)) {				mes .n$;				mes "Nothing is equipped there!";				close;			}			if (getarg(0)) {				if (!getequipisenableref(@i)) {					mes .n$;					mes getequipname(@i)+" cannot be refined.";					close;				}				if (getequiprefinerycnt(@i) >= 10 ) {					mes .n$;					mes "+"+getequiprefinerycnt(@i)+" "+getequipname(@i)+" cannot be refined any further.";					close;				}			}			return;		}		function Refine_Item {			mes .n$;			set .@price, getarg(0)*getarg(2);			mes "I'll need "+getarg(0)+"x "+getitemname(getarg(1))+" and "+Cm(.@price)+" Zeny.";			if (countitem(getarg(1)) < getarg(0) || Zeny < .@price) {				mes "Come back when you have the required materials.";				close;			}			if (getequiprefinerycnt(@i)+getarg(0) > getarg(3))				mes "The item will be refined above the safe limit. It may break.";			next;			if(select(" ~ ^0055FFContinue^000000: ~ ^777777Cancel^000000") == 2)				close;			mes .n$;			set .@j, getarg(0);			while(.@j) {				delitem getarg(1),1;				set Zeny, Zeny-getarg(2);				if (getarg(4,0)) {					if (getequippercentrefinery(@i) <= rand(100) && getequippercentrefinery(@i) <= rand(100)) {						mes getequipname(@i)+" broke while refining.";						failedrefitem @i;						close;					}				} else {					if (getequippercentrefinery(@i) <= rand(100)) {						mes getequipname(@i)+" broke while refining.";						failedrefitem @i;						close;					}				}				successrefitem @i;				set .@j, .@j-1;			}			mes "All done!";			close;		}		function Cm {			set .@str$, getarg(0);			for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)				set .@str$, insertchar(.@str$,",",.@i);			return .@str$;		}	case 4:		mes .n$;		if (.Prices[0])			mes "It costs "+Cm(.Prices[0])+" Zeny to remove cards.";		mes "Please select an equipment.";		next;		Equip_Menu(0);		mes .n$;		if (Zeny < .Prices[0]) {			mes "You don't have enough Zeny.";			close;		}		set .@j,getequipcardcnt(@i);		if (!.@j) {			mes "There are no cards compounded to "+getequipname(@i)+".";			close;		}		if (!checkweight(4001,(.@j+1))) {			mes "You're carrying too many items!";			close;		}		mes "Item: "+getequipname(@i);		for(set .@i,0; .@i<.@j; set .@i,.@i+1)			mes "Card "+(.@i+1)+": "+getitemname(getequipcardid(@i,.@i));		next;		if (select(" ~ Remove "+.@j+" card(s): ~ ^777777Cancel^000000") == 2)			close;		set Zeny, Zeny-.Prices[0];		successremovecards @i;		mes .n$;		mes "Cards successfully removed!";		close;	case 5:		mes .n$;		mes "Coins are worth "+Cm(.Coin[1])+" Zeny each.";		next;		switch(select(" ~ Zeny to coins: ~ Coins to Zeny: ~ Close")) {		case 1:			mes .n$;			mes "How many coins do you want?";			next;			input .@coins,0,(1000000000/.Coin[1]);			mes .n$;			if (.@coins*.Coin[1] > Zeny) {				mes "You don't have enough Zeny.";				close;			}			if (!checkweight(.Coin[0],.@coins)) {				mes "You don't have enough inventory space.";				close;			}			set Zeny, Zeny-(.Coin[1]*.@coins);			getitem .Coin[0], .@coins;			mes "Purchased "+Cm(.@coins)+" coins.";			close;		case 2:			mes .n$;			mes "How many coins do you want to trade in?";			next;			input .@coins,0,(1000000000/.Coin[1]);			mes .n$;			if (countitem(.Coin[0]) < .@coins) {				mes "You don't have that many coins!";				close;			}			if ((Zeny+(.Coin[1]*.@coins)) > 1000000000) {				mes "You have too much Zeny!";				close;			}			delitem .Coin[0], .@coins;			set Zeny, Zeny+(.Coin[1]*.@coins);			mes "Exchanged "+Cm(.@coins)+" coins.";			close;		case 3:			close;		}	case 6:		if (Zeny < .Prices[2]) {			mes .n$;			mes "It costs "+Cm(.Prices[2])+" Zeny to rent.";			close;		}		if (ismounting()) {			mes .n$;			mes "You must first remove your mount.";			close;		} else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) {			if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) {				mes .n$;				mes "Please select an option.";				next;				if(select(" ~ Falcon: ~ Warg") == 1) setfalcon;				else getitem 6124,1;			} else getitem 6124,1;		} else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv("MC_PUSHCART")) {			if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) {				mes .n$;				mes "Please select an option.";				next;				if(select(" ~ Cart: ~ Mado")==1) setcart;				else setmadogear;			} else setcart;		} else if (!checkcart() && getskilllv("MC_PUSHCART")) setcart;		else if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon;		else if (!checkriding() && getskilllv("KN_RIDING")) {			if (eaclass()&EAJ_THIRDMASK == EAJ_RUNE_KNIGHT) setdragon;			else setriding;		} else if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) setmadogear;		else {			mes .n$;			mes "You do not meet requirements to rent.";			close;		}		set Zeny, Zeny-.Prices[2];		specialeffect2 EF_TEIHIT3;		mes .n$;		mes "Here you go.";		emotion e_no1;		close;	case 7:		mes .n$;		if (.Prices[1])			mes "It costs "+Cm(.Prices[1])+" Zeny to reset stats or skills.";		mes "Please select an option.";		next;		set .@i, select(" ~ Stat reset: ~ Skill reset: ~ Cancel");		if (.@i == 3)			close;		mes .n$;		if (Zeny < .Prices[1]) {			mes "You don't have enough Zeny.";			close;		}		set Zeny, Zeny-.Prices[1];		if (.@i == 1) {			resetstatus;			mes "Stats reset!";		} else {			resetskill;			mes "Skills reset!";		}		close;	case 8:		Get_Platinum;		specialeffect2 EF_BLUECASTING;		mes .n$;		mes "Platinum skills received!";		close;	case 9:		set .@Var$, ".SexChange"+((Sex)?"F":"M");		if (getarraysize(getd(.@Var$))) {			mes .n$;			mes "To turn into a "+((Sex)?"female":"male")+" you need the following items:";			for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) {				mes " ~ "+getd(.@Var$+"["+(.@i+1)+"]")+"x "+getitemname(getd(.@Var$+"["+.@i+"]"));				if (countitem(getd(.@Var$+"["+.@i+"]")) < getd(.@Var$+"["+(.@i+1)+"]"))					set .@nreq,1;			}			if (.@nreq)				close;			next;		}		mes .n$;		mes "Do you really want to change sex?";		next;		if(select(" ~ Change into a "+((Sex)?"female":"male")+": ~ Cancel") == 1) {			if (getarraysize(getd(.@Var$))) {				for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2)					delitem getd(.@Var$+"["+.@i+"]"), getd(.@Var$+"["+(.@i+1)+"]");			}			changesex;		}		close;	case 10:		setarray .@Total[0],0,0;		getinventorylist;		mes .n$;		for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) {			if (@inventorylist_identify[.@i]) continue;			if (Zeny < .Prices[3]) {				if (!.@Total[0]) {					mes "It costs "+Cm(.Prices[3])+" Zeny to identify an item.";					close;				}				break;			}			set Zeny, Zeny-.Prices[3];			delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;			getitem @inventorylist_id[.@i],1;			setarray .@Total[0], .@Total[0]+1, .@Total[1]+.Prices[3];		}		if (!.@Total[0]) {			mes "No items identified.";			close;		}		specialeffect2 EF_REFINEOK;		mes "Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+Cm(.@Total[1])+" Zeny":"")+".";		close;	}OnInit:// --------------------- Config ---------------------	setarray .MainMenu$[0],	// Set menu options!		"Change Jobs",		// [1]		"Stylist",		// [2]		"Refiner",		// [4]		"Remove Cards",		// [8]		"Exchange Coins",	// [16]		"Rentals",		// [32]		"Reset Stats/Skills",	// [64]		"Platinum Skills",	// [128]		"Change Sex",		// [256]		"Identify All";		// [512]	set .@MenuOption,1|2|4|8|16|32|64|128|256|512;	setarray .OnClick[0],1,1,1;		// When clicked: heal [0], buff [1], repair [2] (1: yes / 0: no)	setarray .Styles[1],			// Maximum dye, hair style, and hair color		getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color");	setarray .Coin[0],674,1000000;	// Coin item ID, coin price	setarray .Prices[0],50000,10000,0,100;	// Zeny to remove cards [0], reset [1], rent [2], identify [3]	setarray .Rebirth[0],99,50;	// Minimum base level, job level to rebirth OR change to third class	setarray .JobReq[0],10,40;	// Minimum job level to turn into 1st class, 2nd class	set .ThirdClass,1;			// Enable third classes? (1: yes / 0: no)	set .SNovice,45;			// Minimum base level to turn into Super Novice	set .LastJob,1;				// Enforce linear class changes? (1: yes / 0: no)	set .SkillPointCheck,0;		// Force player to use up all skill points? (1: yes / 0: no)	set .Platinum,1;			// Get platinum skills automatically? (1: yes / 0: no)	set .EnrichedRefine,1;					// Allow enriched refiner option? (1: yes / 0: no)	setarray .RP[0],2000,50,200,5000,20000;	// Zeny for armor, lv1, lv2, lv3, lv4 refines	setarray .SexChangeF[0],2213,1,1558,1,7152,50;	// Items to turn into Female (ID,Count)	setarray .SexChangeM[0],5016,1,2241,1,1017,50;	// Items to turn into Male (ID,Count)	set .n$, "[All-in-One NPC]";	// NPC Name// --------------------------------------------------	set .menu$,"";	for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) {		if (.@MenuOption & (1<<.@i))			set .menu$, .menu$+" ~ "+.MainMenu$[.@i];		set .menu$, .menu$+":";	}	end;}

 

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

@seventh i see the problem is happen, on increase agility !

rathena use specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10;

then i change to specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,240000,10;

now its works like charm bro ! hahahahah awesome ! wakakkakaa

Share this post


Link to post
Share on other sites
  • 0

Normaly your char stuck when there is a "close" missing.

 

Is there any Error message when you start the server or click on the NPC?

Did it stuck directly when you click or at a special menu? 

Share this post


Link to post
Share on other sites
  • 0

Normaly your char stuck when there is a "close" missing.

 

Is there any Error message when you start the server or click on the NPC?

Did it stuck directly when you click or at a special menu? 

 

on click on the NPC sir.

its seem like directly click...

please help why this script is not working on hercules ?

Share this post


Link to post
Share on other sites
  • 0

SAME topic: http://herc.ws/board/topic/3176-how-to-fix-this-all-in-one-npc-by-euphy/

 

Please use search before creating a topic :meow:

 

 

find this 

if (.Platinum)						Get_Platinum;					close;

replace with 

if (.Platinum)						function Get_Platinum;					close; 
Edited by sevenzz23

Share this post


Link to post
Share on other sites
  • 0

 

^ LOL you don't have to google it, you can see at the upper right of this forum the search function :)

 

Hard to find the key words :P

haha ^ no problem. :no1: 

Share this post


Link to post
Share on other sites
  • 0

 

 

^ LOL you don't have to google it, you can see at the upper right of this forum the search function :)

 

Hard to find the key words :P

haha ^ no problem. :no1:

bro. still same. cannot use buffer :(

Share this post


Link to post
Share on other sites
  • 0

use the script on the link that I already provide then apply the solution in that script..

 

or use this 

//===== rAthena Script =======================================//= All-in-One NPC//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.7//===== Description: =========================================//= A compilation of commonly-used NPC scripts.//== Includes job changer, stylist, refiner, card remover,//== coin exchanger, rentals, resetter, platinum skills,//== sex changer, identifier, healer, buffer, and repairman.//============================================================prontera,148,174,6	script	All-in-One NPC	953,{function Get_Platinum; function Equip_Menu; function Cm;	if (getarraysize(.OnClick)) {		if (.OnClick[0])			repairall;	}	mes .n$;	set .@time, gettime(3);	mes "Good "+((.@time < 5 || .@time > 17)?"evening":((.@time < 12)?"morning":"afternoon"))+", "+strcharinfo(0)+"!";	mes "What can I do for you?";	emotion e_ho;	next;	disable_items;	switch(select(.menu$)) {	case 1:		function Job_Menu; function A_An;		mes .n$;		if (Class > 4049) {			mes "No more jobs are available.";			close;		}		if (checkfalcon() || checkcart() || checkriding() || ismounting()) {			mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding.";			close;		}		if (.SkillPointCheck && SkillPoint) {			mes "Please use all your skill points before proceeding.";			close;		}		set .@eac, eaclass();		set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);		if (.@i > 6 && .@i < 22) {			if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {				set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;				mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";				close;			}			if (Class > 21) {				mes "Switch to third class?";				next;				Job_Menu(roclass(.@eac|EAJL_THIRD));				close;			}			while(1) {				mes "Select an option.";				next;				set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");				if (.@i==3) close;				mes "[Job Master]";				mes "Are you sure?";				next;				Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));				mes "[Job Master]";			}		}		set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);		if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99;		if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0],.@j1,70;		if (.@exp[0] && .ThirdClass) {			if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {				set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel;				mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";				close;			}			mes "Switch to "+jobname(.@exp[0])+"?";			next;			Job_Menu(.@exp[0]);			close;		}		if (.@eac&EAJL_2)			if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {				mes "No more jobs are available.";				close;			}		if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {			if (JobLevel < .JobReq[0])				mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class.";			else if (Class == 4001 && .LastJob && lastJob) {				mes "Switch classes now?";				next;				Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));			} else switch(Class) {				case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);				case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);				case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);				default: mes "An error has occurred."; break;			}			close;		}		if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1)			mes "No more jobs are available.";		else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1])			mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class.";		else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) {			mes "Switch classes now?";			next;			Job_Menu(lastJob+4001);		} else			Job_Menu(.@j1,.@j2);		close;		function Job_Menu {			while(1) {				if (getargcount() > 1) {					mes "Select a job.";					set .@menu$,"";					for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)						set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";					set .@menu$, .@menu$+" ~ ^777777Cancel^000000";					next;					set .@i, getarg(select(.@menu$)-1,0);					if (!.@i) close;					if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {						mes "[Job Master]";						mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";						close;					}					mes .n$;					mes "Are you sure?";					next;				} else					set .@i, getarg(0);				if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {					mes .n$;					mes "You are now "+A_An(jobname(.@i))+"!";						if (.@i==4001 && .LastJob) set lastJob, Class;					jobchange .@i;						if (.@i==4001 || .@i==4023) resetlvl(1);					specialeffect2 338; specialeffect2 432;						if (.Platinum == 1) Get_Platinum;					close;				}				if (getargcount() == 1) return;				mes .n$;			}			end;		}		function Get_Platinum {			skill 142,1,0;			switch(BaseClass) {				case 0: if (Class !=23) skill 143,1,0; break;				case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;				case 2: skill 157,1,0; break;				case 3: skill 147,1,0; skill 148,1,0; break;				case 4: skill 156,1,0; break;				case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;				case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;				default: break;			}			switch(BaseJob) {				case 7: skill 1001,1,0; break;				case 8: skill 1014,1,0; break;				case 9: skill 1006,1,0; break;				case 10: skill 1012,1,0; skill 1013,1,0; break;				case 11: skill 1009,1,0; break;				case 12: skill 1003,1,0; skill 1004,1,0; break;				case 14: skill 1002,1,0; break;				case 15: skill 1015,1,0; skill 1016,1,0; break;				case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;				case 17: skill 1005,1,0; break;				case 18: skill 238,1,0; break;				case 19: skill 1010,1,0; break;				case 20: skill 1011,1,0; break;				default: break;			}			return;		}		function A_An {			setarray .@A$[0],"a","e","i","o","u";			set .@B$, "_"+getarg(0);			for(set .@i,0; .@i<5; set .@i,.@i+1)				if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);			return "a "+getarg(0);}	case 2:		mes .n$;		mes "Select an option.";		next;		setarray .@Look[1],7,1,6;		set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");		set .@Revert, getlook(.@Look[.@s]);		set .@Style,1;		mes .n$;		mes "How does this look?";		while(1) {			setlook .@Look[.@s], .@Style;			message strcharinfo(0),"This is style #"+.@Style+".";			set .@menu$, " ~ Next (^0055FF"+((.@Style!=.Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";			switch(select(.@menu$)) {			case 1:				set .@Style, ((.@Style!=.Styles[.@s])?.@Style+1:1);				break;			case 2:				set .@Style, ((.@Style!=1)?.@Style-1:.Styles[.@s]);				break;			case 3:				next;				mes .n$;				mes "Choose a style between 1 - "+.Styles[.@s]+".";				input .@Style,0,.Styles[.@s];				if (!.@Style)					set .@Style, rand(1,.Styles[.@s]);				next;				mes .n$;				mes "How does this look?";				break;			case 4:				set .@Style, .@Revert;				setlook .@Look[.@s], .@Revert;				break;			}		}		close;	case 3:		function Refine_Item;		if (.EnrichedRefine) {			mes .n$;			mes "Select an option.";			next;			if (select(" ~ Normal Refiner: ~ Enriched Refiner") == 2) {				mes .n$;				mes "What do you want to refine?";				next;				Equip_Menu(1);				setarray .@Materials[0],7619,7620,7620,7620,7620;				setarray .@Safe[0],4,7,6,5,4;				set .@WLv, getequipweaponlv(@i);				mes .n$;				mes "Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);				next;				if(select(" ~ Refine item (1 * ^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ ^777777Cancel^000000") == 2)					close;				Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv], 1);				close;			}		}		mes .n$;		mes "What do you want to refine?";		next;		Equip_Menu(1);		setarray .@Materials[0],985,1010,1011,984,984;		setarray .@Safe[0],4,7,6,5,4;		set .@WLv, getequipweaponlv(@i);		set .@SafeCount, .@Safe[.@WLv]-getequiprefinerycnt(@i);		mes .n$;		mes "Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);		next;		switch(select(" ~ Refine once (^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ Refine multiple times (up to "+(20-getequiprefinerycnt(@i))+"): ~ Refine to safe limit ("+((.@SafeCount>0)?.@SafeCount+" refines":"^777777disabled^000000")+"): ~ ^777777Cancel^000000")) {		case 1:			Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 2:			input .@Refines;			if (.@Refines+getequiprefinerycnt(@i) > 20 || .@Refines < 1) {				mes .n$;				mes "Invalid number ("+.@Refines+").";			} else				Refine_Item(.@Refines, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 3:			if (.@SafeCount < 1) {				mes .n$;				mes "The item has already reached the safe limit.";			} else				Refine_Item(.@SafeCount, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);			close;		case 4:			close;		}		function Equip_Menu {			setarray .@pos$[1],"Upper Headgear","Armor","Left hand","Right hand","Garment","Footgear","Left Accessory","Right Accessory","Mid Headgear","Lower Headgear";			set .@menu$,"";			for (set .@i,1; .@i <= 20; set .@i,.@i+1) {				if (getequipisequiped(.@i))					set .@menu$, .@menu$+.@pos$[.@i]+" [^0055FF"+getequipname(.@i)+"^000000]";				set .@menu$, .@menu$+":";			}			set @i, select(.@menu$);			if (!getequipisequiped(@i)) {				mes .n$;				mes "Nothing is equipped there!";				close;			}			if (getarg(0)) {				if (!getequipisenableref(@i)) {					mes .n$;					mes getequipname(@i)+" cannot be refined.";					close;				}				if (getequiprefinerycnt(@i) >= 20 ) {					mes .n$;					mes "+"+getequiprefinerycnt(@i)+" "+getequipname(@i)+" cannot be refined any further.";					close;				}			}			return;		}		function Refine_Item {			mes .n$;			set .@price, getarg(0)*getarg(2);			mes "I'll need "+getarg(0)+"x "+getitemname(getarg(1))+" and "+Cm(.@price)+" Zeny.";			if (countitem(getarg(1)) < getarg(0) || Zeny < .@price) {				mes "Come back when you have the required materials.";				close;			}			if (getequiprefinerycnt(@i)+getarg(0) > getarg(3))				mes "The item will be refined above the safe limit. It may downgraded the refine.";			next;			if(select(" ~ ^0055FFContinue^000000: ~ ^777777Cancel^000000") == 2)				close;			mes .n$;			set .@j, getarg(0);			while(.@j) {				delitem getarg(1),1;				set Zeny, Zeny-getarg(2);				if (getarg(4,0)) {					if (getequippercentrefinery(@i) <= rand(100) && getequippercentrefinery(@i) <= rand(100)) {						mes getequipname(@i)+" downgraded while refining.";						downrefitem @i;						close;					}				} else {					if (getequippercentrefinery(@i) <= rand(100)) {						mes getequipname(@i)+" downgraded while refining.";						downrefitem @i;						close;					}				}				successrefitem @i;				set .@j, .@j-1;			}			mes "All done!";			close;		}		function Cm {			set .@str$, getarg(0);			for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)				set .@str$, insertchar(.@str$,",",.@i);			return .@str$;		}	case 4:		mes .n$;		if (.Prices[0])			mes "It costs "+Cm(.Prices[0])+" Zeny to remove cards.";		mes "Please select an equipment.";		next;		Equip_Menu(0);		mes .n$;		if (Zeny < .Prices[0]) {			mes "You don't have enough Zeny.";			close;		}		set .@j,getequipcardcnt(@i);		if (!.@j) {			mes "There are no cards compounded to "+getequipname(@i)+".";			close;		}		if (!checkweight(4001,(.@j+1))) {			mes "You're carrying too many items!";			close;		}		mes "Item: "+getequipname(@i);		for(set .@i,0; .@i<.@j; set .@i,.@i+1)			mes "Card "+(.@i+1)+": "+getitemname(getequipcardid(@i,.@i));		next;		if (select(" ~ Remove "+.@j+" card(s): ~ ^777777Cancel^000000") == 2)			close;		set Zeny, Zeny-.Prices[0];		successremovecards @i;		mes .n$;		mes "Cards successfully removed!";		close;	case 5:		mes .n$;		mes "Coins are worth "+Cm(.Coin[1])+" Zeny each.";		next;		switch(select(" ~ Zeny to coins: ~ Coins to Zeny: ~ Close")) {		case 1:			mes .n$;			mes "How many coins do you want?";			next;			input .@coins,0,(1000000000/.Coin[1]);			mes .n$;			if (.@coins*.Coin[1] > Zeny) {				mes "You don't have enough Zeny.";				close;			}			if (!checkweight(.Coin[0],.@coins)) {				mes "You don't have enough inventory space.";				close;			}			set Zeny, Zeny-(.Coin[1]*.@coins);			getitem .Coin[0], .@coins;			mes "Purchased "+Cm(.@coins)+" coins.";			close;		case 2:			mes .n$;			mes "How many coins do you want to trade in?";			next;			input .@coins,0,(1000000000/.Coin[1]);			mes .n$;			if (countitem(.Coin[0]) < .@coins) {				mes "You don't have that many coins!";				close;			}			if ((Zeny+(.Coin[1]*.@coins)) > 1000000000) {				mes "You have too much Zeny!";				close;			}			delitem .Coin[0], .@coins;			set Zeny, Zeny+(.Coin[1]*.@coins);			mes "Exchanged "+Cm(.@coins)+" coins.";			close;		case 3:			close;		}	case 6:		if (Zeny < .Prices[2]) {			mes .n$;			mes "It costs "+Cm(.Prices[2])+" Zeny to rent.";			close;		}		if (ismounting()) {			mes .n$;			mes "You must first remove your mount.";			close;		} else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) {			if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) {				mes .n$;				mes "Please select an option.";				next;				if(select(" ~ Falcon: ~ Warg") == 1) setfalcon;				else getitem 6124,1;			} else getitem 6124,1;		} else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv("MC_PUSHCART")) {			if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) {				mes .n$;				mes "Please select an option.";				next;				if(select(" ~ Cart: ~ Mado")==1) setcart;				else setmadogear;			} else setcart;		} else if (!checkcart() && getskilllv("MC_PUSHCART")) setcart;		else if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon;		else if (!checkriding() && getskilllv("KN_RIDING")) {			if (eaclass()&EAJ_THIRDMASK == EAJ_RUNE_KNIGHT) setdragon;			else setriding;		} else if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) setmadogear;		else {			mes .n$;			mes "You do not meet requirements to rent.";			close;		}		set Zeny, Zeny-.Prices[2];		specialeffect2 EF_TEIHIT3;		mes .n$;		mes "Here you go.";		emotion e_no1;		close;	case 7:		mes .n$;		if (.Prices[1])			mes "It costs "+Cm(.Prices[1])+" Zeny to reset stats or skills.";		mes "Please select an option.";		next;		set .@i, select(" ~ Stat reset: ~ Skill reset: ~ Cancel");		if (.@i == 3)			close;		mes .n$;		if (Zeny < .Prices[1]) {			mes "You don't have enough Zeny.";			close;		}		set Zeny, Zeny-.Prices[1];		if (.@i == 1) {			resetstatus;			mes "Stats reset!";		} else {			resetskill;			mes "Skills reset!";		}		close;	case 8:		Get_Platinum;		specialeffect2 EF_BLUECASTING;		mes .n$;		mes "Platinum skills received!";		close;	case 9:		set .@Var$, ".SexChange"+((Sex)?"F":"M");		if (getarraysize(getd(.@Var$))) {			mes .n$;			mes "To turn into a "+((Sex)?"female":"male")+" you need the following items:";			for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) {				mes " ~ "+getd(.@Var$+"["+(.@i+1)+"]")+"x "+getitemname(getd(.@Var$+"["+.@i+"]"));				if (countitem(getd(.@Var$+"["+.@i+"]")) < getd(.@Var$+"["+(.@i+1)+"]"))					set .@nreq,1;			}			if (.@nreq)				close;			next;		}		mes .n$;		mes "Do you really want to change sex?";		next;		if(select(" ~ Change into a "+((Sex)?"female":"male")+": ~ Cancel") == 1) {			if (getarraysize(getd(.@Var$))) {				for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2)					delitem getd(.@Var$+"["+.@i+"]"), getd(.@Var$+"["+(.@i+1)+"]");			}			changesex;		}		close;	case 10:		setarray .@Total[0],0,0;		getinventorylist;		mes .n$;		for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) {			if (@inventorylist_identify[.@i]) continue;			if (Zeny < .Prices[3]) {				if (!.@Total[0]) {					mes "It costs "+Cm(.Prices[3])+" Zeny to identify an item.";					close;				}				break;			}			set Zeny, Zeny-.Prices[3];			delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;			getitem @inventorylist_id[.@i],1;			setarray .@Total[0], .@Total[0]+1, .@Total[1]+.Prices[3];		}		if (!.@Total[0]) {			mes "No items identified.";			close;		}		specialeffect2 EF_REFINEOK;		mes "Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+Cm(.@Total[1])+" Zeny":"")+".";		close;	}OnInit:// --------------------- Config ---------------------	setarray .MainMenu$[0],	// Set menu options!		"Change Jobs",		// [1]		"Stylist",		// [2]		"Refiner",		// [4]		"Remove Cards",		// [8]		"Exchange Coins",	// [16]		"Rentals",		// [32]		"Reset Stats/Skills",	// [64]		"Platinum Skills",	// [128]		"Change Sex",		// [256]		"Identify All";		// [512]	set .@MenuOption,1|2|4|8|16|32|64|128|256|512;	setarray .OnClick[0],1,1,1;		// When clicked: heal [0], buff [1], repair [2] (1: yes / 0: no)	setarray .Styles[1],			// Maximum dye, hair style, and hair color		getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color");	setarray .Coin[0],674,1000000;	// Coin item ID, coin price	setarray .Prices[0],50000,10000,0,100;	// Zeny to remove cards [0], reset [1], rent [2], identify [3]	setarray .Rebirth[0],99,50;	// Minimum base level, job level to rebirth OR change to third class	setarray .JobReq[0],10,40;	// Minimum job level to turn into 1st class, 2nd class	set .ThirdClass,1;		// Enable third classes? (1: yes / 0: no)	set .SNovice,45;		// Minimum base level to turn into Super Novice	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)	set .Platinum,1;		// Get platinum skills automatically? (1: yes / 0: no)	set .EnrichedRefine,1;					// Allow enriched refiner option? (1: yes / 0: no)	setarray .RP[0],2000,50,200,5000,20000;	// Zeny for armor, lv1, lv2, lv3, lv4 refines	setarray .SexChangeF[0],2213,1,1558,1,7152,50;	// Items to turn into Female (ID,Count)	setarray .SexChangeM[0],5016,1,2241,1,1017,50;	// Items to turn into Male (ID,Count)	set .n$, "[All-in-One NPC]";	// NPC Name// --------------------------------------------------	set .menu$,"";	for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) {		if (.@MenuOption & (1<<.@i))			set .menu$, .menu$+" ~ "+.MainMenu$[.@i];		set .menu$, .menu$+":";	}	end;} 
Edited by sevenzz23

Share this post


Link to post
Share on other sites
  • 0

use the script on the link that I already provide then apply the solution in that script..

 

why i cant use the latest one ?

THe link you provide me is no buffer sir. huhu

Share this post


Link to post
Share on other sites
  • 0

Anybody know how adjust safe limit on refining? Currrently its set to 4. How to change to 8?

 

I change the 1st @Safe 4 to 8 still item breaks at +5

 

Equip_Menu(1);

setarray .@Materials[0],985,1010,1011,984,984;

setarray .@Safe[0],4,7,6,5,4;

 

 

I know this line is resposible for the success rate and it's random.

if (getequippercentrefinery(@i) <= rand(100)) {

mes getequipname(@i)+" downgraded while refining.";

downrefitem @i;

close;

 

 

How to change to safe upgrade up to +8

Edited by Hadeszeus

Share this post


Link to post
Share on other sites
  • 0

what script you use? if you use refine.txt search for this line 

	case 0: 	//Refine Armor		set .@price,2000;		set .@material,985;		set .@safe,4;  <-- change to 8		break;	case 1: 	//Refine Level 1 Weapon		set .@price,50;		set .@material,1010;		set .@safe,7; 		break;	case 2: 	//Refine Level 2 Weapon		set .@price,200;		set .@material,1011;		set .@safe,6; 		break;	case 3: 	//Refine Level 3 Weapon		set .@price,5000;		set .@material,984;		set .@safe,5; 		break;	case 4: 	//Refine Level 4 Weapon		set .@price,20000;		set .@material,984;		set .@safe,4; //<-- Change to 8		break;	case 5: 	//Refine other stuff?		set .@price,2000;		set .@material,985;		set .@safe,4; 		break;

Share this post


Link to post
Share on other sites
  • 0

Mhalicot, on 29 Jan 2014 - 19:26, said:

 

what script you use? if you use refine.txt search for this line

	case 0: 	//Refine Armor		set .@price,2000;		set .@material,985;		set .@safe,4;  <-- change to 8		break;	case 1: 	//Refine Level 1 Weapon		set .@price,50;		set .@material,1010;		set .@safe,7; 		break;	case 2: 	//Refine Level 2 Weapon		set .@price,200;		set .@material,1011;		set .@safe,6; 		break;	case 3: 	//Refine Level 3 Weapon		set .@price,5000;		set .@material,984;		set .@safe,5; 		break;	case 4: 	//Refine Level 4 Weapon		set .@price,20000;		set .@material,984;		set .@safe,4; //<-- Change to 8		break;	case 5: 	//Refine other stuff?		set .@price,2000;		set .@material,985;		set .@safe,4; 		break;

I want to use All In One NPC but only the Refiner part. But im having a problem on the safe limit of that script, even after changing @Safe from 4 to 8 item still break at 5 to 8. Can you help me figure it out? I want the Enriched Refiner and the percentage features. :(

Edited by Hadeszeus

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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