Jump to content
  • 0

Euphy's Card Trader Categories


Snaehild

Question


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  72
  • Reputation:   7
  • Joined:  06/23/14
  • Last Seen:  

Hi,

 

Can anyone help me modify Euphy's Card Trader script to add more card categories like Category 1,2 3 & 4 instead of just having normal and MvP cards?

//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1 
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================
 
prontera,165,196,6	script	Card Trader	90,{
	mes "[Card Trader]";
	mes "Hi, "+strcharinfo(0)+"!";
	mes "What can I do for you?";
	next;
	switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
	case 1:
		mes "[Card Trader]";
		mes "Do you find that you've got";
		mes "useless cards lying around?";
		mes "I'll be glad to take them off";
		mes "your hands!";
		next;
		mes "[Card Trader]";
		mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
		mes "card you give me, and";
		mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
		mes "You can trade those points";
		mes "for items later on.";
		mes "How does that sound?";
		emotion e_cash;
		close;
	case 2:
		mes "[Card Trader]";
		mes "Select the cards you";
		mes "want to trade in.";
		if (.Level) {
			mes " ";
			mes "They must be dropped";
			mes "by monsters of level";
			mes .Level+" and above.";
		}
		deletearray @sold_nameid[0],getarraysize(@sold_nameid);
		callshop "card_shop",2;
		npcshopattach "card_shop";
		end;
	case 3:
		mes "[Card Trader]";
		mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
		callshop "card_shop",1;
		npcshopattach "card_shop";
		end;
	case 4:
		mes "[Card Trader]";
		mes "*yawn*";
		mes "See you later!";
		emotion e_yawn;
		close;		
	}
 
OnSellItem:
	mes "Cards to sell:";
	mes "-----------------------------------";
	for(set .@i,0; .@i < getarraysize(@sold_nameid); set .@i,.@i+1)
		if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) {
			if (.Level) {
				query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
				if (.@lv < .Level) {
					dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
					continue;
				}
			}
			set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
			set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
			set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]);
			mes ((.@mvp)?"  ^FF0000":"  ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
			set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0]));
		}
	deletearray @sold_nameid[0], getarraysize(@sold_nameid);
	deletearray @sold_quantity[0], getarraysize(@sold_quantity);
	if (!.@card_id) {
		mes "  ^777777(none)^000000";
		emotion e_swt;
		close;
	}
	mes " ";
	mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
	next;
	if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
		mes "[Card Trader]";
		mes "Oh, okay...";
		emotion e_hmm;
		close;
	}
	for(set .@i,0; .@i < getarraysize(.@card_id); set .@i,.@i+1)
		delitem .@card_id[.@i],.@card_amt[.@i];
	setd .Points$, getd(.Points$)+.@card_total;
	mes "[Card Trader]";
	mes "All done!";
	emotion e_ho;
	close;
 
OnBuyItem:
	for(set .@i,0; .@i < getarraysize(@bought_nameid); set .@i,.@i+1)
		for(set .@j,0; .@j <getarraysize(.Shop); set .@j,.@j+2)
			if (@bought_nameid[.@i] == .Shop[.@j]) {
				set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
				break;
			}
	if (.@cost > getd(.Points$)) {
		mes "[Card Trader]";
		mes "You don't have enough Points.";
		emotion e_omg;
	}
	else {
		mes "Items purchased:";
		mes "-----------------------------------";
		for(set .@i,0; .@i < getarraysize(@bought_nameid); set .@i,.@i+1) {
			getitem @bought_nameid[.@i], @bought_quantity[.@i];
			mes "  ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
		}
		mes " ";
		mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
		setd .Points$, getd(.Points$)-.@cost;
		emotion e_cash;
	}
	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
	close;
 
OnInit:
	set .Level,0;		   // Minimum monster level to trade corresponding cards.
	set .Points$,"#Card_Points";	// Variable to store points.
	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
	  4001,1,4004,1,4033,1,4196,1,4197,25,4054,50,4174,75,4047,100;
	setarray .Points[0],1,5;	// Points per <normal card>,<MVP card>
	set .MVP$,			// List of MVP cards.
	  "4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
	  "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
	
	npcshopdelitem "card_shop",909;
	for(set .@i,0; .@i < getarraysize(.Shop); set .@i,.@i+2)
		npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
	end;
}
-	shop	card_shop	-1,909:-1
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  107
  • Topics Per Day:  0.02
  • Content Count:  770
  • Reputation:   69
  • Joined:  02/10/12
  • Last Seen:  

On 11/28/2014 at 2:04 AM, Nerfwood said:

 

I believe he meant to add another category aside from the Normal and MVP cards.

 

 

 

Anyway, here it is. All cards are categorized as class 1 by default. You have to specify which will be class 2, 3 and 4 in the script.

Note: I did not edit the information part so you have to edit it yourself.


//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1 
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================
 
ruhel,74,58,4	script	Card Captor Sakura	10044,{
	mes "[^995050Card Captor Sakura^000000]";
	mes "Hi, "+strcharinfo(0)+"!";
	mes "What can I do for you?";
	next;
	switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
	case 1:
		mes "[^995050Card Captor Sakura^000000]";
		mes "Do you find that you've got";
		mes "useless cards lying around?";
		mes "I'll be glad to take them off";
		mes "your hands!";
		next;
		mes "[^995050Card Captor Sakura^000000]";
		mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
		mes "card you give me, and";
		mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
		mes "You can trade those points";
		mes "for items later on.";
		mes "How does that sound?";
		emotion e_cash;
		close;
	case 2:
		mes "[^995050Card Captor Sakura^000000]";
		mes "Select the cards you";
		mes "want to trade in.";
		if (.Level) {
			mes " ";
			mes "They must be dropped";
			mes "by monsters of level";
			mes .Level+" and above.";
		}
		deletearray @sold_nameid[0],getarraysize(@sold_nameid);
		callshop "card_shop",2;
		npcshopattach "card_shop";
		end;
	case 3:
		mes "[^995050Card Captor Sakura^000000]";
		mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
		callshop "card_shop",1;
		npcshopattach "card_shop";
		end;
	case 4:
		mes "[^995050Card Captor Sakura^000000]";
		mes "*yawn*";
		mes "See you later!";
		emotion e_yawn;
		close;		
	}
 
OnSellItem:
	mes "Cards to sell:";
	mes "-----------------------------------";
	for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1)
		if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) {
			if (.Level) {
				query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
				if (.@lv < .Level) {
					dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
					continue;
				}
			}
			set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
			set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
			set .@class2, compare(.class2$,""+@sold_nameid[.@i]);
			set .@class3, compare(.class3$,""+@sold_nameid[.@i]);
			set .@class4, compare(.class4$,""+@sold_nameid[.@i]);
			mes ((.@class2 || .@class3 || .@class4)?"  ^FF0000":"  ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
			if(.@class2) { .@class=1; }
			else if(.@class3) { .@class=2; }
			else if(.@class4) { .@class=3; }
			else { .@class=0; } 
			set .@card_total, .@card_total+ ( @sold_quantity[.@i]* .Points[.@class] );
		}
	deletearray @sold_nameid[0], getarraysize(@sold_nameid);
	deletearray @sold_quantity[0], getarraysize(@sold_quantity);
	if (!.@card_id) {
		mes "  ^777777(none)^000000";
		emotion e_swt;
		close;
	}
	mes " ";
	mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
	next;
	if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
		mes "[Card Trader]";
		mes "Oh, okay...";
		emotion e_hmm;
		close;
	}
	for(set .@i,0; .@i<getarraysize(.@card_id); set .@i,.@i+1)
		delitem .@card_id[.@i],.@card_amt[.@i];
	setd .Points$, getd(.Points$)+.@card_total;
	mes "[Card Trader]";
	mes "All done!";
	emotion e_ho;
	close;
 
OnBuyItem:
	for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
		for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
			if (@bought_nameid[.@i] == .Shop[.@j]) {
				set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
				break;
			}
	if (.@cost > getd(.Points$)) {
		mes "[Card Trader]";
		mes "You don't have enough Points.";
		emotion e_omg;
	}
	else {
		mes "Items purchased:";
		mes "-----------------------------------";
		for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
			getitem @bought_nameid[.@i], @bought_quantity[.@i];
			mes "  ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
		}
		mes " ";
		mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
		setd .Points$, getd(.Points$)-.@cost;
		emotion e_cash;
	}
	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
	close;
 
OnInit:
	set .Level,0;		   // Minimum monster level to trade corresponding cards.
	set .Points$,"#CASHPOINTS";	// Variable to store points.
	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
	  5027,10, 18505,10, 5176,10, 5305,20;

	//setarray .Points[0],5,100;	// Points per <normal card>,<MVP card>
	setarray .Points[0],3,5,10,25;	// Points per <Class 1>,<Class 2>,<Class 3>,<Class 4>
	
	set .class2$,	// Class 2 cards | Those not within Class 2 ~4 are all Class 1
		"4268,4194,4222,4275";
		
	set .class3$,
		"4054,4047,4174";
		
	set .class4$,			// List of MVP cards. | Previously .MVP$
		"4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
		"4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
	
	npcshopdelitem "card_shop",909;
	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
		npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
	end;
}
-	shop	card_shop	-1,909:-1

thx :D

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.02
  • Content Count:  121
  • Reputation:   0
  • Joined:  09/02/20
  • Last Seen:  

hallo rathena, im not sure i can post in here since i use "search" and i found this thread

when i trying script from Euphy's Card Trader, everything fine but in my putty there is some error i dont understand..

 

 

 

123.jpg.c4777fe58af84090cdc32e2cc9c187b3.jpg

 

Here my script
 

Quote

 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

You mean to add more cards available to sell? which is the MVP cards right?

 

If im correct here are the list of the ID# of the MVP cards that are available for sell.

you can see that on the script. just add the ID# of the cards you want to be available.

	  "4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
	  "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  104
  • Reputation:   27
  • Joined:  12/05/13
  • Last Seen:  

You mean to add more cards available to sell? which is the MVP cards right?

 

If im correct here are the list of the ID# of the MVP cards that are available for sell.

you can see that on the script. just add the ID# of the cards you want to be available.

 

I believe he meant to add another category aside from the Normal and MVP cards.

 

 

Hi,

 

Can anyone help me modify Euphy's Card Trader script to add more card categories like Category 1,2 3 & 4 instead of just having normal and MvP cards?

 

Anyway, here it is. All cards are categorized as class 1 by default. You have to specify which will be class 2, 3 and 4 in the script.

Note: I did not edit the information part so you have to edit it yourself.

//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1 
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================
 
ruhel,74,58,4	script	Card Captor Sakura	10044,{
	mes "[^995050Card Captor Sakura^000000]";
	mes "Hi, "+strcharinfo(0)+"!";
	mes "What can I do for you?";
	next;
	switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
	case 1:
		mes "[^995050Card Captor Sakura^000000]";
		mes "Do you find that you've got";
		mes "useless cards lying around?";
		mes "I'll be glad to take them off";
		mes "your hands!";
		next;
		mes "[^995050Card Captor Sakura^000000]";
		mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
		mes "card you give me, and";
		mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
		mes "You can trade those points";
		mes "for items later on.";
		mes "How does that sound?";
		emotion e_cash;
		close;
	case 2:
		mes "[^995050Card Captor Sakura^000000]";
		mes "Select the cards you";
		mes "want to trade in.";
		if (.Level) {
			mes " ";
			mes "They must be dropped";
			mes "by monsters of level";
			mes .Level+" and above.";
		}
		deletearray @sold_nameid[0],getarraysize(@sold_nameid);
		callshop "card_shop",2;
		npcshopattach "card_shop";
		end;
	case 3:
		mes "[^995050Card Captor Sakura^000000]";
		mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
		callshop "card_shop",1;
		npcshopattach "card_shop";
		end;
	case 4:
		mes "[^995050Card Captor Sakura^000000]";
		mes "*yawn*";
		mes "See you later!";
		emotion e_yawn;
		close;		
	}
 
OnSellItem:
	mes "Cards to sell:";
	mes "-----------------------------------";
	for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1)
		if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) {
			if (.Level) {
				query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
				if (.@lv < .Level) {
					dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
					continue;
				}
			}
			set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
			set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
			set .@class2, compare(.class2$,""+@sold_nameid[.@i]);
			set .@class3, compare(.class3$,""+@sold_nameid[.@i]);
			set .@class4, compare(.class4$,""+@sold_nameid[.@i]);
			mes ((.@class2 || .@class3 || .@class4)?"  ^FF0000":"  ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
			if(.@class2) { .@class=1; }
			else if(.@class3) { .@class=2; }
			else if(.@class4) { .@class=3; }
			else { .@class=0; } 
			set .@card_total, .@card_total+ ( @sold_quantity[.@i]* .Points[.@class] );
		}
	deletearray @sold_nameid[0], getarraysize(@sold_nameid);
	deletearray @sold_quantity[0], getarraysize(@sold_quantity);
	if (!.@card_id) {
		mes "  ^777777(none)^000000";
		emotion e_swt;
		close;
	}
	mes " ";
	mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
	next;
	if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
		mes "[Card Trader]";
		mes "Oh, okay...";
		emotion e_hmm;
		close;
	}
	for(set .@i,0; .@i<getarraysize(.@card_id); set .@i,.@i+1)
		delitem .@card_id[.@i],.@card_amt[.@i];
	setd .Points$, getd(.Points$)+.@card_total;
	mes "[Card Trader]";
	mes "All done!";
	emotion e_ho;
	close;
 
OnBuyItem:
	for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
		for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
			if (@bought_nameid[.@i] == .Shop[.@j]) {
				set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
				break;
			}
	if (.@cost > getd(.Points$)) {
		mes "[Card Trader]";
		mes "You don't have enough Points.";
		emotion e_omg;
	}
	else {
		mes "Items purchased:";
		mes "-----------------------------------";
		for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
			getitem @bought_nameid[.@i], @bought_quantity[.@i];
			mes "  ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
		}
		mes " ";
		mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
		setd .Points$, getd(.Points$)-.@cost;
		emotion e_cash;
	}
	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
	close;
 
OnInit:
	set .Level,0;		   // Minimum monster level to trade corresponding cards.
	set .Points$,"#CASHPOINTS";	// Variable to store points.
	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
	  5027,10, 18505,10, 5176,10, 5305,20;

	//setarray .Points[0],5,100;	// Points per <normal card>,<MVP card>
	setarray .Points[0],3,5,10,25;	// Points per <Class 1>,<Class 2>,<Class 3>,<Class 4>
	
	set .class2$,	// Class 2 cards | Those not within Class 2 ~4 are all Class 1
		"4268,4194,4222,4275";
		
	set .class3$,
		"4054,4047,4174";
		
	set .class4$,			// List of MVP cards. | Previously .MVP$
		"4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
		"4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
	
	npcshopdelitem "card_shop",909;
	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
		npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
	end;
}
-	shop	card_shop	-1,909:-1
Edited by Nerfwood
  • Upvote 1
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...