Jump to content
  • 0
MikZ

QUEST SHOP NPC

Question

Hello! Help me with this one,

Im trying have tcg trader, but i can't seem to use the same item like tcg as reward on choices 2~6.
How can i apply this? please help me.. thank you!

Heres the script.

 

//===== rAthena Script =======================================//= Euphy's Quest Shop//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.6b//===== Compatible With: =====================================//= rAthena SVN r16862+//===== Description: =========================================//= A dynamic quest shop based on Lunar's, with easier config.//= Includes support for multiple shops & cashpoints.//= Item Preview script by ToastOfDoom.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.2 Added category support.//= 1.3 More options and fixes.//= 1.4 Added debug settings.//= 1.5 Replaced categories with shop IDs.//= 1.6 Added support for purchasing stackables.//= 1.6a Added support for previewing costumes and robes.//= 1.6b Added 'disable_items' command.//============================================================// Shop NPCs -- supplying no argument displays entire menu.//	callfunc "Donations"{,<shop ID>{,<shop ID>{,...}}};//============================================================prontera,165,173,4	script	TCG Trader#1	4_M_BIBI,{ callfunc "Donations"; }// Script Core//============================================================-	script	Donations	-1,{ function Add; function Chk; function Slot; function A_An;OnInit:	freeloop(1);// -----------------------------------------------------------//  Basic shop settings.// -----------------------------------------------------------	set .announce,0;	// Announce quest completion? (1: yes / 0: no)	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)	set .ShowZeny,1;	// Show Zeny cost, if any? (1: yes / 0: no)	set .MaxStack,100;	// Max number of quest items purchased at one time.// -----------------------------------------------------------//  Points variable -- optional quest requirement.//	setarray .Points$[0],"<variable name>","<display name>";// -----------------------------------------------------------	setarray .Points$[0],"#CASHPOINTS","Cash Points";// -----------------------------------------------------------//  Shop IDs -- to add shops, copy dummy data at bottom of file.//	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};// -----------------------------------------------------------	setarray .Shops$[1],"50 PCoins To 1 TCG","Tao Gunka to 15 TCGs","Ifrit to 30TCGs","Gloom to 45 TCGs","Thanatos to 60 TCGs","Keil to 80 TCGs";// -----------------------------------------------------------//  Quest items -- do NOT use a reward item more than once!//	Add(<shop ID>,<reward ID>,<reward amount>,//	    <Zeny cost>,<point cost>,//	    <required item ID>,<required item amount>{,...});// -----------------------------------------------------------	Add(1,20000,1,5000000,0,7539,50);	//TCG	Add(2,20000,15,5000000,0,4302,1);	//TGK 	Add(3,20000,30,5000000,0,4430,1);	//Ifrit	Add(4,20000,45,5000000,0,4408,1);	//Gloom	Add(5,20000,60,5000000,0,4397,1);	//thanatos	Add(6,20000,80,5000000,0,4403,1);	//Kiel// -----------------------------------------------------------	freeloop(0);	set .menu$,"";	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {		set .menu$, .menu$+.Shops$[.@i]+":";		npcshopdelitem "Donations"+.@i,909;	}	end;OnMenu:	set .@size, getarraysize(@i);	if (!.@size) set .@i, select(.menu$);	else if (.@size == 1) set .@i, @i[0];	else {		for(set .@j,0; .@j<.@size; set .@j,.@j+1)			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";		set .@i, @i[select(.@menu$)-1];	}	deletearray @i[0],getarraysize(@i);	if (.Shops$[.@i] == "") {		message strcharinfo(0),"An error has occurred.";		end;	}	dispbottom "Select one item at a time.";	callshop "Donations"+.@i,1;	npcshopattach "Donations"+.@i;	end;OnBuyItem:	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);	copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));	set .@q[2],.@q[1]*.@q[3];	if (!.@q[2] || .@q[2] > 30000) {		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";		end;	}	mes "[Quest Shop]";	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";	mes "Requirements:";	disable_items;	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";	next;	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);	if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))		set .@preview,1;	addtimer 1000, strnpcinfo(0)+"::OnEnd";	while(1) {		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {		case 1:			if (@qe[0]) { 				mes "[Quest Shop]";				mes "You're missing one or more quest requirements.";				close;			}			if (!checkweight(.@q[0],.@q[2])) {				mes "[Quest Shop]";				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";				close;			}			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)				delitem .@q[.@i],.@q[.@i+1]*.@q[1];			getitem .@q[0],.@q[2];			if (.announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;			specialeffect2 EF_FLOWERLEAF;			close;		case 2:			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];			break;		case 3:			close;		}	}OnEnd:	if (@qe[7]) {		changelook LOOK_HEAD_BOTTOM, @qe[3];		changelook LOOK_HEAD_TOP, @qe[4];		changelook LOOK_HEAD_MID, @qe[5];		changelook LOOK_ROBE, @qe[6];	}	deletearray @qe[0],8;	end;function Add {	if (getitemname(getarg(1)) == "null") {		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";		return;	}	setarray .@j[0],getarg(2),getarg(3),getarg(4);	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {		if (getitemname(getarg(.@i)) == "null") {			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";			return;		} else			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);	}	copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);	npcshopadditem "Donations"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);	return;}function Chk {	if (getarg(0) < getarg(1)) {		set @qe[0],1;		return "^FF0000";	} else		return "^00FF00";}function Slot {	set .@s$,getitemname(getarg(0));	switch(.ShowSlot) {		case 1: if (!getitemslots(getarg(0))) return .@s$;		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";		default: return .@s$;	}}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);}}function	script	Donations	{	deletearray @i[0],getarraysize(@i);	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)		set @i[.@i],getarg(.@i);	doevent "Donations::OnMenu";	end;}// Dummy shop data -- copy as needed.//============================================================-	shop	Donations1	-1,909:-1-	shop	Donations2	-1,909:-1-	shop	Donations3	-1,909:-1-	shop	Donations4	-1,909:-1-	shop	Donations5	-1,909:-1-	shop	Donations6	-1,909:-1
Edited by MikZ

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

If you mean TCG Shop, here it is

prontera,153,152,1	trader	TCGShop	4_F_EDEN_OFFICER,{	OnInit:	tradertype(NST_CUSTOM);	sellitem Red_Potion,2;	//Sell Red Potion for 2z	sellitem Orange_Potion;	//Sell Orange Potion with default price.	/* Add All Items to be sold here */	end;OnCountFunds:	setcurrency(countitem(TCG_Card));	end;OnPayFunds:	if( countitem(TCG_Card) < @price )		end;	delitem TCG_Card,@price;	purchaseok();	end;}

Share this post


Link to post
Share on other sites
  • 0

 

If you mean TCG Shop, here it is

prontera,153,152,1	trader	TCGShop	4_F_EDEN_OFFICER,{	OnInit:	tradertype(NST_CUSTOM);	sellitem Red_Potion,2;	//Sell Red Potion for 2z	sellitem Orange_Potion;	//Sell Orange Potion with default price.	/* Add All Items to be sold here */	end;OnCountFunds:	setcurrency(countitem(TCG_Card));	end;OnPayFunds:	if( countitem(TCG_Card) < @price )		end;	delitem TCG_Card,@price;	purchaseok();	end;}

hello, what I want is like item trader

 

like:

 

Case 1: 50 Poringcoins + 5M zeny = 1 tcg

Case 2: 1 Tao Gunka Card + 5M zeny = 10 tcg

Case 3: 1 Ifrit Card + 5M zeny = 20 tcg

Case 4: 1 Gloom card  = 30 tcg

Case 5: 1 FBH card  = 40 tcg

 

so on and so fort.. :D

Share this post


Link to post
Share on other sites
  • 0
// -------------------- Config 1 --------------------// For each shop added, copy this MSHOPX dummy data.// Write your shop names in the select() function.-    shop    MSHOP1    -1,512:-1-    shop    MSHOP2    -1,512:-1-    shop    MSHOP3    -1,512:-1-    shop    MSHOP4    -1,512:-1-    shop    MSHOP5    -1,512:-1-    shop    MSHOP6    -1,512:-1MAP,X,Y,P    script    Sample Shop    4_PORING,{    set @s, select("50 PCoins To 1 TCG","Tao Gunka to 15 TCGs","Ifrit to 30TCGs","Gloom to 45 TCGs","Thanatos to 60 TCGs","Keil to 80 TCGs");// --------------------------------------------------    message strcharinfo(0),"This shop only accepts "+getitemname(.Currency[@s])+".";    dispbottom "You have "+countitem(.Currency[@s])+" "+getitemname(.Currency[@s])+".";    callshop "MSHOP"+@s,1;    npcshopattach "MSHOP"+@s;    end;OnBuyItem:    set .@i,0;    while (.@i < getarraysize(@bought_nameid)) {        set .@j, 0;        while (.@j < getarraysize(getd(".Shop"+@s))) {            if(getd(".Shop"+@s+"["+.@j+"]") == @bought_nameid[.@i]) {                set @itemcost, (getd(".Shop"+@s+"["+(.@j+1)+"]") * @bought_quantity[.@i]);                set @totalcost, @totalcost + @itemcost;                break; }            set .@j, .@j+2; }        set .@i, .@i+1; }    if (@totalcost > countitem(.Currency[@s])) dispbottom "You don't have enough "+getitemname(.Currency[@s])+".";    else {        set .@i,0;        while (.@i < getarraysize(@bought_nameid)) {            getitem @bought_nameid[.@i], @bought_quantity[.@i];            dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";            set .@i, .@i+1; }        delitem .Currency[@s], @totalcost; }    set @totalcost, 0;    deletearray @bought_nameid[0], 128;    deletearray @bought_quantity[0], 128;    end;OnInit:// -------------------- Config 2 --------------------// Currency:  The ID of each shop currency,//    in the same order as the shops.// Shop order follows that of the select() call,//   and is formatted "ID1,Count1,ID2,Count2,..."    setarray .Currency[1],7539,4302,4430,4408,4397,4403;    setarray .Shop1[0],20000,1;    //TCG    setarray .Shop2[0],20000,15;    //TGK    setarray .Shop3[0],20000,30;    //Ifrit    setarray .Shop4[0],20000,45;    //Gloom    setarray .Shop5[0],20000,60;    //Thanatos    setarray .Shop6[0],20000,80;    //Kiel// --------------------------------------------------    set .@i,1;    while (.@i <= getarraysize(.Currency)) {        set .@j,0;        while (.@j < getarraysize(getd(".Shop"+.@i))) {            npcshopdelitem "MSHOP"+.@i,512;            npcshopadditem "MSHOP"+.@i, getd(".Shop"+.@i+"["+.@j+"]"), getd(".Shop"+.@i+"["+(.@j+1)+"]");            set .@j, .@j+2; }        set .@i, .@i+1; }    end;}
Edited by Naori

Share this post


Link to post
Share on other sites
  • 0

how you intend to give a player 5 M zeny ? if you will give 5M zeny as an item or coin, you can use this but the menu will have ugly outcome since it have long pharase, do not use in live server before you test it, i never test this script to make sure it was working as intended

 

-	script	Item Trader	-1,{	mes .@npc_name$ = "["+strnpcinfo(1)+"]";	mes "Do yo want to trade some items?";	next;	.@s = select(.menu$) -1;	.@choice = .@s * 6;	mes .@npc_name$;	mes "I can trade you...";	mes .item_list[.@choice+1]+"x "+getitemname(.item_list[.@choice])+" + "+.item_list[.@choice+3]+"x "+getitemname(.item_list[.@choice+2]);	mes "For exchange..";	mes .item_list[.@choice+5]+"x "+getitemname(.item_list[.@choice+4]);	mes " ";	mes "Do you want to?";	next;	if (select("Yes:No") == 2) {		mes .@npc_name$;		mes "All right "+callfunc("F_Bye");		close;	}	mes .@npc_name$;	if (countitem(.item_list[.@choice+4]) < .item_list[.@choice+5]) {		mes "You dont have enought item I want.";		close;	}	mes "Glad to do bussines with you";	delitem .item_list[.@choice+4], .item_list[.@choice+5];	for (.@i = .@choice; .@i < .@choice+4; .@i+=2)		getitem item_list[.@i], .item_list[.@i+1];	close;OnInit:	setarray .item_list, 7539,1, 501,1, 7227,1, // <Item ID>,<Amount>,<Item ID>,<Amount>,<Item Price>,<Amount>						 7539,2, 502,2, 7227,2,						 7539,3, 503,3, 7227,3;	.menu$ = "";	for (.@i = 0; .@i < getarraysize(.item_list); .@i+=6)		.menu$ += .item_list[.@i+1]+"x "+getitemname(.item_list[.@i])+" + "+.item_list[.@i+3]+"x "+getitemname(.item_list[.@i+2])+" = "+.item_list[.@i+5]+"x "+getitemname(.item_list[.@i+4])+":";	end;}
Edited by Litro

Share this post


Link to post
Share on other sites
  • 0

 

// -------------------- Config 1 --------------------// For each shop added, copy this MSHOPX dummy data.// Write your shop names in the select() function.-    shop    MSHOP1    -1,512:-1-    shop    MSHOP2    -1,512:-1-    shop    MSHOP3    -1,512:-1-    shop    MSHOP4    -1,512:-1-    shop    MSHOP5    -1,512:-1-    shop    MSHOP6    -1,512:-1MAP,X,Y,P    script    Sample Shop    4_PORING,{    set @s, select("50 PCoins To 1 TCG","Tao Gunka to 15 TCGs","Ifrit to 30TCGs","Gloom to 45 TCGs","Thanatos to 60 TCGs","Keil to 80 TCGs");// --------------------------------------------------    message strcharinfo(0),"This shop only accepts "+getitemname(.Currency[@s])+".";    dispbottom "You have "+countitem(.Currency[@s])+" "+getitemname(.Currency[@s])+".";    callshop "MSHOP"+@s,1;    npcshopattach "MSHOP"+@s;    end;OnBuyItem:    set .@i,0;    while (.@i < getarraysize(@bought_nameid)) {        set .@j, 0;        while (.@j < getarraysize(getd(".Shop"+@s))) {            if(getd(".Shop"+@s+"["+.@j+"]") == @bought_nameid[.@i]) {                set @itemcost, (getd(".Shop"+@s+"["+(.@j+1)+"]") * @bought_quantity[.@i]);                set @totalcost, @totalcost + @itemcost;                break; }            set .@j, .@j+2; }        set .@i, .@i+1; }    if (@totalcost > countitem(.Currency[@s])) dispbottom "You don't have enough "+getitemname(.Currency[@s])+".";    else {        set .@i,0;        while (.@i < getarraysize(@bought_nameid)) {            getitem @bought_nameid[.@i], @bought_quantity[.@i];            dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";            set .@i, .@i+1; }        delitem .Currency[@s], @totalcost; }    set @totalcost, 0;    deletearray @bought_nameid[0], 128;    deletearray @bought_quantity[0], 128;    end;OnInit:// -------------------- Config 2 --------------------// Currency:  The ID of each shop currency,//    in the same order as the shops.// Shop order follows that of the select() call,//   and is formatted "ID1,Count1,ID2,Count2,..."    setarray .Currency[1],7539,4302,4430,4408,4397,4403;    setarray .Shop1[0],20000,1;    //TCG    setarray .Shop2[0],20000,15;    //TGK    setarray .Shop3[0],20000,30;    //Ifrit    setarray .Shop4[0],20000,45;    //Gloom    setarray .Shop5[0],20000,60;    //Thanatos    setarray .Shop6[0],20000,80;    //Kiel// --------------------------------------------------    set .@i,1;    while (.@i <= getarraysize(.Currency)) {        set .@j,0;        while (.@j < getarraysize(getd(".Shop"+.@i))) {            npcshopdelitem "MSHOP"+.@i,512;            npcshopadditem "MSHOP"+.@i, getd(".Shop"+.@i+"["+.@j+"]"), getd(".Shop"+.@i+"["+(.@j+1)+"]");            set .@j, .@j+2; }        set .@i, .@i+1; }    end;}

Hello, how about the zeny.?player must pay 5M to trade the card to TCGs.

and if I add another set should i just add this?

 

- shop MSHOP7 -1,512:-1

 

then

 

setarray .Shop7[0],20000,20; //valkyrie  "Am I right?" /heh

 

 

 

 

how you intend to give a player 5 M zeny ? if you will give 5M zeny as an item or coin, you can use this but the menu will have ugly outcome since it have long pharase, do not use in live server before you test it, i never test this script to make sure it was working as intended

 

-	script	Item Trader	-1,{	mes .@npc_name$ = "["+strnpcinfo(1)+"]";	mes "Do yo want to trade some items?";	next;	.@s = select(.menu$) -1;	.@choice = .@s * 6;	mes .@npc_name$;	mes "I can trade you...";	mes .item_list[.@choice+1]+"x "+getitemname(.item_list[.@choice])+" + "+.item_list[.@choice+3]+"x "+getitemname(.item_list[.@choice+2]);	mes "For exchange..";	mes .item_list[.@choice+5]+"x "+getitemname(.item_list[.@choice+4]);	mes " ";	mes "Do you want to?";	next;	if (select("Yes:No") == 2) {		mes .@npc_name$;		mes "All right "+callfunc("F_Bye");		close;	}	mes .@npc_name$;	if (countitem(.item_list[.@choice+4]) < .item_list[.@choice+5]) {		mes "You dont have enought item I want.";		close;	}	mes "Glad to do bussines with you";	delitem .item_list[.@choice+4], .item_list[.@choice+5];	for (.@i = .@choice; .@i < .@choice+4; .@i+=2)		getitem item_list[.@i], .item_list[.@i+1];	close;OnInit:	setarray .item_list, 7539,1, 501,1, 7227,1, // <Item ID>,<Amount>,<Item ID>,<Amount>,<Item Price>,<Amount>						 7539,2, 502,2, 7227,2,						 7539,3, 503,3, 7227,3;	.menu$ = "";	for (.@i = 0; .@i < getarraysize(.item_list); .@i+=6)		.menu$ += .item_list[.@i+1]+"x "+getitemname(.item_list[.@i])+" + "+.item_list[.@i+3]+"x "+getitemname(.item_list[.@i+2])+" = "+.item_list[.@i+5]+"x "+getitemname(.item_list[.@i+4])+":";	end;}

Im not the one giving the player 5 m. its the player will pay the 5M.

Its like they will trade the card for tcgs. /heh

Share this post


Link to post
Share on other sites
  • 0

try this ripped form Euphy's Quest Shop, i'm trying to match your request , do not use it in live server before you test it in your local server this script yet be tested by my self but it pas script check

-    script    Item Trader    -1,{    function Chk;    mes .@npc_name$ = "["+strnpcinfo(1)+"]";    mes "I can trade you some TCG, do you want it?";    next;    .@s = select(.menu$);    copyarray .@q[0],getd(".q_"+.@s+"[0]"),getarraysize(getd(".q_"+.@s));    mes .@npc_name$;    mes "I can trade you...";    mes .@q[2]+"x "+getitemname(.@q[1]);    mes "For exchange..";    if (.@q[3]) mes " > "+Chk(Zeny,.@q[4])+(.@q[4])+" Zeny^000000";    if (.@q[4]) for (.@i = 4; .@i < getarraysize(.@q); .@i += 2)        mes " > "+Chk(countitem(.@q[.@i]), .@q[.@i+1])+getitemname(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1])+")^000000";    next;    if (select("Trade:No") == 2) {        mes .@npc_name$;        mes "All right "+callfunc("F_Bye");        close;    }    if (@qe[0]) {        mes .@npc_name$;        mes "You're missing one or more requirements.";        @qe = 0;        close;    }    if (!checkweight(.@q[1],.@q[2])) {        mes .@npc_name$;        mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[1],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";        close;    }    if (.@q[3]) Zeny -= .@q[4];    if (.@q[4])        for (.@i = 4; .@i < getarraysize(.@q); .@i += 2)            delitem .@q[.@i], .@q[.@i+1];    getitem .@q[1], .@q[2];    mes .@npc_name$;    mes "Thanks, Glad to have a bussines with you "+callfunc("F_Bye");    specialeffect2 EF_FLOWERLEAF;    close;OnInit:    function Add;    .menu$ = "";    // Add(<menu index>, <item reward id>, <item reward amount>, <zeny requirement>, <item requirement id>, <item requiremnt amount>{,...});    Add(1, 7227,1, 1000000000, 501,1);    Add(2, 7227,2, 1500000000, 502,2,503,3);    Add(3, 7227,3, 2000000000, 503,3,504,4,505,5);    end;    function Chk {    if (getarg(0) < getarg(1)) {        @qe = 1;        return "^FF0000";    } else        return "^00FF00";}function Add {    if (getitemname(getarg(1)) == "null") {        debugmes "Item Trader: invalid item id in index #"+getarg(0)+" (skipped).";        return;    }    setarray .@j[0],getarg(0), getarg(1), getarg(2),getarg(3);    for(.@i = 4; .@i < getargcount(); .@i += 2) {        if (getitemname(getarg(.@i)) == "null") {            debugmes "Item Trader: index #"+getarg(0)+" have invalid requirement item id #"+getarg(.@i)+" (skipped).";            return;        } else            setarray .@j[.@i], getarg(.@i), getarg(.@i+1);    }    copyarray getd(".q_"+getarg(0)+"[0]"), .@j[0],getarraysize(.@j);    .menu$ += getarg(2)+"x "+getitemname(getarg(1))+":";    return;}}
Edited by Litro

Share this post


Link to post
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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

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