Jump to content
  • 0

Hi to all


Jayz

Question


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

How to merge this script to put Category

This Script for Accessories Reward

- shop acces_shop -1,501:50
prontera,147,173,5, script Reward Token 899,{
set @i,0;
mes "[Reward Token]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "acces_shop",1;
npcshopattach "acces_shop";
end;

OnBuyItem:
if(.BuildQuest) {
for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
npcshopadditem "acces_shop",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 "[Reward Token]";
mes "I require the following:";
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+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 "[Reward Token]";
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 "[Reward Token]";
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+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 "acces_shop",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,30200,7,7,"SZeny",2630,1;
case 2: callsub OnBuyItem,30200,22,22,"SZeny",30150,1;
case 3: callsub OnBuyItem,30200,10,10,"SZeny",2679,1;
case 4: callsub OnBuyItem,30200,10,10,"SZeny",2678,1;
case 5: callsub OnBuyItem,30200,18,18,"SZeny",30350,1;
case 6: callsub OnBuyItem,30200,18,18,"SZeny",30351,1;
case 7: callsub OnBuyItem,30200,18,18,"SZeny",30352,1;
case 8: callsub OnBuyItem,30200,18,18,"SZeny",30353,1;
case 9: callsub OnBuyItem,30200,18,18,"SZeny",30354,1;
case 10: callsub OnBuyItem,30200,18,18,"SZeny",30355,1;
}
}

This Scrip for Cards Reward

-	shop	cards_shop	-1,501:50
prontera,147,173,5,	script	Reward Token	899,{
set @i,0;
mes "[Reward Token]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "cards_shop",1;
npcshopattach "cards_shop";
end;

OnBuyItem:
if(.BuildQuest) {
	for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
	npcshopadditem "cards_shop",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 "[Reward Token]";
mes "I require the following:";
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+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 "[Reward Token]";
			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 "[Reward Token]";
			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+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 "cards_shop",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,30200,10,10,"SZeny",4359,1;
	case 2: callsub OnBuyItem,30200,5,5,"SZeny",4363,1;
	case 3: callsub OnBuyItem,30200,10,10,"SZeny",4365,1;
	case 4: callsub OnBuyItem,30200,10,10,"SZeny",4357,1;
	case 5: callsub OnBuyItem,30200,4,4,"SZeny",4367,1;
	case 6: callsub OnBuyItem,30200,20,20,"SZeny",4361,1;
}
}

so how can i merge this npc to be like this

[Sample Only Dialogue in game]

[Reward Token]

Which item do you wish to obtain;

Select only one

Accessories

MVP Cards

i want to make Accessories and MVP Cards category thats why im asking how to merge this Script

i tried to use callfunc and callshop but not working

This is the attach files

Accessories NPC

accessories.txt

Cards NPC

cards.txt

Edited by Arcenciel
Codeboxed
Link to comment
Share on other sites

16 answers to this question

Recommended Posts


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

why not you use those already made by Euphy ? or mine ?

Euphy Script support multiple items..

mine only support 1 items

otherwise...you can just create another simple npc..that call for these 2 npc..

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

yah i tried to make simple npc to call for these 2 but OnBuyItem not found..

thank 2 ur script.. but i like lunar style sorry

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

i mean link them together like this...

put a npc label in both NPC....

-	script	NPC1	-1,{
OnWhatEverLabel:
.........blablabla.............
}

-	script	NPC2	-1,{
OnWhatEverLabel:
.........blablabla.............
}

then the NPC that call for both NPC

prontera,155,181,5	script	MAINNPC	123,{
switch( select("Call NPC 1:Call NPC 2") ){
Case 1: donpcevent "NPC1::OnWhatEverLabel";  break;
Case 2: donpcevent "NPC2::OnWhatEverLabel";  break;
}
close;
}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

Not Working have a Error !!

[Warning]: NPC event parameter deprecated! Please use 'NPCNAME::OnEVENT' instead
of 'NPC1:OnWhatEverLabel'.
[Debug]: Source (NPC): Token Reward at ra_temsky (97,147)

Edited by zaido78
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

My script looks almost identical to Lunar's. This is sorta outdated.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

Yah.. but Lunar;s Script is good.. but i want to update this but i dunno :( can you help me Euphy?

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Not Working have a Error !!

[Warning]: NPC event parameter deprecated! Please use 'NPCNAME::OnEVENT' instead
of 'NPC1:OnWhatEverLabel'.
[Debug]: Source (NPC): Token Reward at ra_temsky (97,147)

    Case 1: donpcevent "NPC1::OnWhatEverLabel";  break;
    Case 2: donpcevent "NPC2::OnWhatEverLabel";  break;

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

Not Working have a Error !!

[Warning]: NPC event parameter deprecated! Please use 'NPCNAME::OnEVENT' instead
of 'NPC1:OnWhatEverLabel'.
[Debug]: Source (NPC): Token Reward at ra_temsky (97,147)

	Case 1: donpcevent "NPC1::OnWhatEverLabel";  break;
	Case 2: donpcevent "NPC2::OnWhatEverLabel";  break;

yup i tried that but error

[Warning]: NPC event parameter deprecated! Please use 'NPCNAME::OnEVENT' instead
of 'NPC1:OnWhatEverLabel'.
[Debug]: Source (NPC): Token Reward at ra_temsky (97,147)

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

see carefully.... ==''

you using

NPC1:OnWhatEverLabel

and i using....

NPC1::OnWhatEverLabel

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

i dont know whats wrong sorry for my noobie question :( Error

[Error]: script_rid2sd: fatal error ! player not attached!
[Debug]: Function: set (2 parameters):
[Debug]: Data: variable name='@i' index=0
[Debug]: Data: number value=0
[Debug]: Source (NPC): NPC1 (invisible/not on a map)
[Error]: script:set: no player attached for player variable '@i'

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

show your edited script....

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

show your edited script....

The NPC ITEM REWARD

-	script	NPC1	-1,{
OnWhatEverLabel:
set @i,0;
mes "[Reward Token]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "acces_shop",1;
npcshopattach "acces_shop";
end;

OnBuyItem:
if(.BuildQuest) {
	for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
	npcshopadditem "acces_shop",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 "[Reward Token]";
mes "I require the following:";
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+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 "[Reward Token]";
			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 "[Reward Token]";
			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+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 "acces_shop",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,30200,7,7,"SZeny",2630,1;
	case 2: callsub OnBuyItem,30200,22,22,"SZeny",30150,1;
	case 3: callsub OnBuyItem,30200,10,10,"SZeny",2679,1;
	case 4: callsub OnBuyItem,30200,10,10,"SZeny",2678,1;
	case 5: callsub OnBuyItem,30200,18,18,"SZeny",30350,1;
	case 6: callsub OnBuyItem,30200,18,18,"SZeny",30351,1;
	case 7: callsub OnBuyItem,30200,18,18,"SZeny",30352,1;
	case 8: callsub OnBuyItem,30200,18,18,"SZeny",30353,1;
	case 9: callsub OnBuyItem,30200,18,18,"SZeny",30354,1;
	case 10: callsub OnBuyItem,30200,18,18,"SZeny",30355,1;
}
-	shop	acces_shop	-1,501:50
}

ra_temsky,97,147,5	script	Test NPC	757,{
mes	"TestNPC?;
next;
switch(select("Accessories")){
	Case 1: donpcevent "NPC1::OnWhatEverLabel"; break;
	}
	close;
	}

Edited by Arcenciel
Codeboxed
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  43
  • Reputation:   15
  • Joined:  06/24/12
  • Last Seen:  

Switch

set @i,0;

To

set .@i,0;

In the whole script.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

Thank you Schrwaizer.. but still Error..

[Error]: script_rid2sd: fatal error ! player not attach
[Debug]: Function: mes (1 parameter):
[Debug]: Data: string value="[Donation Item]"
[Debug]: Source (NPC): NPC1 (invisible/not on a map)

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

this is a simple example that i made a very long time ago...

i think it should be able to fit what you want...

http://www.eathena.ws/board/index.php?act=Attach&type=post&id=9463

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  396
  • Reputation:   53
  • Joined:  07/24/12
  • Last Seen:  

oh that's work.. thank you emistry..

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