Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Share Posted July 24, 2012 (edited) 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 July 24, 2012 by Arcenciel Codeboxed Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 24, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 24, 2012 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.. Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 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 Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 24, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 24, 2012 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; } Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 (edited) 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 July 24, 2012 by zaido78 Quote Link to comment Share on other sites More sharing options...
Euphy Posted July 24, 2012 Group: Members Topic Count: 72 Topics Per Day: 0.02 Content Count: 2997 Reputation: 1132 Joined: 05/27/12 Last Seen: June 1, 2017 Share Posted July 24, 2012 My script looks almost identical to Lunar's. This is sorta outdated. Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 Yah.. but Lunar;s Script is good.. but i want to update this but i dunno can you help me Euphy? Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 24, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 24, 2012 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; Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 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) Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 24, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 24, 2012 see carefully.... =='' you using NPC1:OnWhatEverLabel and i using.... NPC1::OnWhatEverLabel Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 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' Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 24, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 24, 2012 show your edited script.... Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 24, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 24, 2012 (edited) 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 July 24, 2012 by Arcenciel Codeboxed Quote Link to comment Share on other sites More sharing options...
Schrwaizer Posted July 24, 2012 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 43 Reputation: 15 Joined: 06/24/12 Last Seen: April 11 Share Posted July 24, 2012 Switch set @i,0; To set .@i,0; In the whole script. Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 25, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 25, 2012 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) Quote Link to comment Share on other sites More sharing options...
Emistry Posted July 25, 2012 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted July 25, 2012 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 Quote Link to comment Share on other sites More sharing options...
Jayz Posted July 25, 2012 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 407 Reputation: 55 Joined: 07/24/12 Last Seen: October 22, 2024 Author Share Posted July 25, 2012 oh that's work.. thank you emistry.. Quote Link to comment Share on other sites More sharing options...
Question
Jayz
How to merge this script to put Category
This Script for Accessories Reward
This Scrip for Cards Reward
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 ArcencielCodeboxed
Link to comment
Share on other sites
16 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.