Jump to content
  • 0

Please help about auto announce


Question

Posted

announce if someone buy or trade in my NPC

auction_01,22,68,4	script	Coin Trader	898,{
	mes "[ Ancient ]";
	mes "Are you here to trade your Ancient Coin? If so";
	mes "please choose from the following categories.";
	next;
switch (select ("Ancient Coin Shop:Silver Coin Shop")) {
	Case 1:	doevent	"Ancient Coin::OnShop";	end;
	Case 2:	doevent	"Silver Coin::OnShop";	end;

	}

}


// -- ***************************************** F I R S T    S H O P **********************************************



-	shop	quest_Ancient Coin	-1,501:50
-	script	Ancient Coin	-1,{
OnShop:
	set @i,0;
	mes "[ Ancient ]";
	mes "Please take note that each of the following items are bought using ^00FF00Ancient Coin^000000 and not zennies.";
	mes "This zennies only indicate the prices.";
	next;
	mes "[ Ancient ]";
	mes "Please take note that each of the following items are bought using ^00FF00Ancient Coin^000000 and not zennies.";
	mes "This zennies only indicate the prices.";
	mes "Select only one.";
	callshop "quest_Ancient Coin",1;
	npcshopattach "quest_Ancient Coin";
	end;

OnBuyItem:
	if(.BuildQuest) {
		for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
		npcshopadditem "quest_Ancient Coin",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 "[Shop Quest NPC]";
	mes "You need:";
	for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
	if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
	mes "^000000In exchange, I will give you:^0000FF";
	for(set @i,@i+2; getarg(@i); 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 ^FF0000" + (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 ^FF0000" + (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); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
			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 "quest_Ancient Coin",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,30188,50,50,"SZeny",30159,1,0;
				case 2: callsub OnBuyItem,30188,50,50,"SZeny",30160,1,0;
				case 3: callsub OnBuyItem,30188,50,50,"SZeny",30161,1,0;
				case 4: callsub OnBuyItem,30188,50,50,"SZeny",30162,1,0;
				case 5: callsub OnBuyItem,30188,50,50,"SZeny",30163,1,0;
				case 6: callsub OnBuyItem,30188,50,50,"SZeny",30164,1,0;
				case 7: callsub OnBuyItem,30188,50,50,"SZeny",30165,1,0;
				case 8: callsub OnBuyItem,30188,50,50,"SZeny",30176,1,0;
				case 9: callsub OnBuyItem,30188,50,50,"SZeny",30197,1,0;
				case 10: callsub OnBuyItem,30188,50,50,"SZeny",30198,1,0;
	}
}


// -- ***************************************** S E C O N D    S H O P **********************************************

-	shop	quest_Silver Coin	-1,501:50
-	script	Silver Coin	-1,{
OnShop:
	set @i,0;

	mes "[ Silver ]";
	mes "Please take note that each of the following items are bought using ^00FF00Silver Coin^000000 and not zennies.";
	mes "This zennies only indicate the prices.";
	next;
	mes "[ Silver ]";
	mes "Please take note that each of the following items are bought using ^00FF00Silver Coin^000000 and not zennies.";
	mes "This zennies only indicate the prices.";
	callshop "quest_Silver Coin",1;
	npcshopattach "quest_Silver Coin";
	end;

OnBuyItem:
	if(.BuildQuest) {
		for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
		npcshopadditem "quest_Silver Coin",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 "[Shop Quest NPC]";
	mes "You need:";
	for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
	if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
	mes "^000000In exchange, I will give you:^0000FF";
	for(set @i,@i+2; getarg(@i); 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 ^FF0000" + (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 ^FF0000" + (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); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
			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 "quest_Silver Coin",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,675,50,50,"SZeny",30154,1,0;
				case 2: callsub OnBuyItem,675,40,40,"SZeny",30150,1,0;
				case 3: callsub OnBuyItem,675,30,30,"SZeny",5147,1,0;
	}
}

 

1 answer to this question

Recommended Posts

Posted (edited)

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); set @i,@i+2) {

getitem getarg(@i),getarg(@i+1);

announce ""+strcharinfo(0)+" has bought a "+getarg(@i)+"!",bc_all,0x00FF00;

}

close;

Edited by nanakiwurtz

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