Donation System

benormal

New member
Messages
38
Points
0
I'm using Flux Cp and there have one donation system and here my question How can i use my control panel's donation system in the server. I want people to be able to use donation credits in game. Such as getting items from a donation npc with donation coins or credits. I'm confused. help me -.-

 
Last edited by a moderator:
Code:
-	shop	donateshop	111,501:50prontera,200,180,3	script	Donate Shop	112,{	set @i,0;	mes "[Donate Shop]";	mes "Each item will cost you some ^008800Voting Proof Tickets^000000";	mes "Select only one.";	callshop "donateshop",1;	npcshopattach "donateshop";	end;OnBuyItem:	if(.BuildQuest) {		for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}		npcshopadditem "donateshop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");		setarray .Shop[.i],getarg(.e+2);		set .i,.i+1;		goto Quest_Setup;	}	if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }	for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }	mes "[Donate Shop]";	mes "I require the following:";	for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^880000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^008800":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";	if(getarg(@i)) mes "^880000" + ((Zeny>=getarg(@i))? "^008800":"") + "" + getarg(@i) + " Zeny";	mes "^000000In exchange, I will give you:^000088";	for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));	switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {		case 1:			for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {				next;				mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";				mes "Please obtain ^880000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";				close;			}			if(Zeny < getarg(@i)) {				next;				mes "You do not have enough Zeny.";				mes "Please obtain ^880000" + (getarg(@i)-Zeny) + " more Zeny^000000.";				close;			}			for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);			set Zeny,Zeny-getarg(@i);			for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);			if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;			close;		case 2:			set @bottomview, getlook(3);			set @topview, getlook(4);			set @midview, getlook(5);			addtimer 1000, strnpcinfo(3)+"::On_Leave";			set @equip,getiteminfo(@bought_nameid, 5);			set @view, getiteminfo(@bought_nameid, 11);			if(@equip != -1 && @view > 0) {				if(@equip & 1) atcommand "@changelook 3 " + @view;				if(@equip & 256) atcommand "@changelook 1 " + @view;				if(@equip & 512) atcommand "@changelook 2 " + @view;			}			next;			goto OnBuyItem;		case 3:			close;	}On_Leave:	atcommand "@changelook 1 " + @topview;	atcommand "@changelook 2 " + @midview;	atcommand "@changelook 3 " + @bottomview;	set @equip,0;	set @view,0;	set @topview,0;	set @midview,0;	set @bottomview,0;	end;OnInit:	npcshopitem "donateshop",0,0;	set .BuildQuest,1;	set .i,1;Quest_Setup:	switch(.i) {		default: set .BuildQuest,0; set .e,0; set .i,0; end;		case 1: callsub OnBuyItem,7179,10,10,"SZeny",5135,1;	}}
 
- shop donateshop 111,501:50prontera,200,180,3 script Donate Shop 112,{ set @i,0; mes "[Donate Shop]"; mes "Each item will cost you some ^008800Voting Proof Tickets^000000"; mes "Select only one."; callshop "donateshop",1; npcshopattach "donateshop"; end;OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {} npcshopadditem "donateshop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny"); setarray .Shop[.i],getarg(.e+2); set .i,.i+1; goto Quest_Setup; } if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; } for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; } mes "[Donate Shop]"; mes "I require the following:"; for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^880000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^008800":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]"; if(getarg(@i)) mes "^880000" + ((Zeny>=getarg(@i))? "^008800":"") + "" + getarg(@i) + " Zeny"; mes "^000000In exchange, I will give you:^000088"; for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i)); switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) { case 1: for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) { next; mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + "."; mes "Please obtain ^880000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000."; close; } if(Zeny < getarg(@i)) { next; mes "You do not have enough Zeny."; mes "Please obtain ^880000" + (getarg(@i)-Zeny) + " more Zeny^000000."; close; } for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1); set Zeny,Zeny-getarg(@i); for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1); if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all; close; case 2: set @bottomview, getlook(3); set @topview, getlook(4); set @midview, getlook(5); addtimer 1000, strnpcinfo(3)+"::On_Leave"; set @equip,getiteminfo(@bought_nameid, 5); set @view, getiteminfo(@bought_nameid, 11); if(@equip != -1 && @view > 0) { if(@equip & 1) atcommand "@changelook 3 " + @view; if(@equip & 256) atcommand "@changelook 1 " + @view; if(@equip & 512) atcommand "@changelook 2 " + @view; } next; goto OnBuyItem; case 3: close; }On_Leave: atcommand "@changelook 1 " + @topview; atcommand "@changelook 2 " + @midview; atcommand "@changelook 3 " + @bottomview; set @equip,0; set @view,0; set @topview,0; set @midview,0; set @bottomview,0; end;OnInit: npcshopitem "donateshop",0,0; set .BuildQuest,1; set .i,1;Quest_Setup: switch(.i) { default: set .BuildQuest,0; set .e,0; set .i,0; end; case 1: callsub OnBuyItem,7179,10,10,"SZeny",5135,1; }}
Thanks a lot this is exactly what i was searching for. Now i wonder that when people donate from CP, will be the points active in here? 

And i want to create 3 different npcs with 3 different lists of items but there is same items in 3 different npcs when i check in game. how can i do it?

 
Last edited by a moderator:
Or when you click to the npc, it will show you 3 categories "headgears, cards, items" instead of listing all

 
Back
Top