-
Posts
69 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by DrakeSky
-
Sometimes when I trade the card it doesn't give me a card. Where can I fix that?
-
Hi! Experts, Where can I change or edit arrow animation while attacking? I want to change the ID's because Gakkung is showing arrow animation but Arbalest doesn't have arrow animation. TIA.
-
Hi! I tried this but there is an error. I have 1x Willow Card, 2x Drops Card, 1x Poring Card when I try trading my cards I can select 3x Drops Card even though I only have 2x Drops Card then when I traded it 2x Drops Card are gone.
-
Hi! Scripters! Planning to create an OBT NPC Race to Max Level, is it possible that once they reach Max Level, they will be registered as a winner, then when grand launch is set the npc will recognize the winner eventhough you clear the accounts in the database?
-
Is that the only way? Because I want to change it into specific shop. Example Kafra Shop i will change it to Kafra Points then Cash Shop to Cash Points
-
Thank you, Sir Katazui! ^_^
-
Where should I put the Waiting room here? //===== rAthena Script ======================================= //= saders Hourly Rewards //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3647-saders-hourly-rewards/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //==== all the configuration are in the last //==== support gepard / ip / or without them //==== if you use ip/gepard sql will be used for that //==== can add minimem level to get the rewards //==== can change the time //==== can ban the vending from the rewards (it will reset after relogin) //==== can add rewards else then variable //==== there is a shop npc for the variable //==== you can make it only for vip //==== can ban idle players for X time from the Hourly Rewards //==== player can ban his char from getting the reward by @HourlyBan (it will reset after relogin) //============================================================ //==== please send me a message if you find error //==== if you like my work maybe consider support me at paypal //==== [email protected] //============================================================ //==== 1.1 FIX Critical issue with gepard/ip and compatibility with my other scripts //==== 1.2 FIX GrPard Variable //============================================================ - script sader_Hourly_Rewards -1,{ OnHourlyRewards: if(#Hourly_Ban){ message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that ."; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } if(.s_idle){ if(checkidle() > .s_idle_time){ message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for IDLE Players!."; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } } if(.s_vip){ if(!vip_status(VIP_STATUS_ACTIVE)){ message strcharinfo(0),"[Hourly Rewards]: if you are a VIP you will get Hourly Rewards!."; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } } if(BaseLevel < .s_hourly_level){ message strcharinfo(0),"[Hourly Rewards]: if you are level "+.s_hourly_level+" and more you will get Hourly Rewards!."; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } if(.s_vinding){ if(checkvending() & .s_vinding){ message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for Venders , Relogin to change that ."; if(.s_GePard_ip){ query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'"); } #Hourly_Rewads_Check = 0; #Hourly_Ban = 1; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } } #Hourly_Rewads_Check += 1; if(.s_GePard_ip == 1){ query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@s_last_unique_id$); query_logsql("SELECT value FROM `sader_variables_log` WHERE unique_id = '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_GePard); if(.@s_GePard >= #Hourly_Rewads_Check){ message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this PC"; #Hourly_Rewads_Check -= 1; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } if(.@s_GePard == 0){ query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')"); } query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `unique_id`= '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'"); }else if(.s_GePard_ip == 2){ query_logsql("SELECT value FROM `sader_variables_log` WHERE ip = '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_ip); if(.@s_ip >= #Hourly_Rewads_Check){ message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this IP"; #Hourly_Rewads_Check -= 1; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; } if(.@s_ip == 0){ query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')"); } query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `ip`= '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'"); } message strcharinfo(0),"[Hourly Rewards]: you Gain your Reward."; callsub Hourly_Rewads; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; OnHourlyBan: if(!#Hourly_Ban){ message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that ."; if(.s_GePard_ip){ query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'"); } #Hourly_Rewads_Check = 0; #Hourly_Ban = 1; addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; } end; OnUnHourlyBan: #Hourly_Ban = 0; end; OnPCLogoutEvent: if(.s_GePard_ip){ query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'"); } if(#Hourly_Ban == 1){ #Hourly_Ban = 0; } #Hourly_Rewads_Check = 0; end; OnPCLoginEvent: addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards"; end; OnInit: .s_idle = 0; // ban hourly rewards from idle players ? 0 no / 1 yes {if player didn't move for x time he wont get hourly reward} , DEFAULT = 0 .s_idle_time = 1800; // this the time for idle in secend , DEFAULT = 1800 (30 min) .s_vip = 0; // 1 = only for VIP / 0 = for everyone , DEFAULT = 0 .s_time = 3600000; // 1000 = 1 secend | 60000 = 1 min | 3600000 = 1 houre , DEFAULT = 3600000 (1 hr) .s_hourly_level = 0; // Minimam level to get the Houerly rewards / 0 = no minimem level , DEFAULT 0 .s_GePard_ip = 0; // 0 = no Gepard / 1 = Gepard / 2 = IP , DEFAULT 0 .s_vinding = 7; // DEFAULT 7 / 0 = will give the reward even if vending / 1 = no normal vending / 2 = no @autotrade / 4 = no buyingstore | Example: if you want to ban normal vend and buying store you add the numbers 1+4=5 query_logsql("CREATE TABLE IF NOT EXISTS `sader_variables_log` (`unique_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',`ip` VARCHAR(100) NOT NULL,`variable` VARCHAR(32) NOT NULL, `index` INT NOT NULL, `value` INT NOT NULL,`account_id` INT NOT NULL,`char_id` INT NOT NULL,`char_name` VARCHAR(30) NOT NULL) ENGINE=MyISAM"); bindatcmd("UnHourlyBan",strnpcinfo(3)+"::OnUnHourlyBan",99,99); bindatcmd("HourlyBan",strnpcinfo(3)+"::OnHourlyBan",0,99); end; Hourly_Rewads: //put the Hourly Rewards here #HourlyShop += 1; //getitem 905,1; // if you want to add items as reward you can add them here like that //getexp 10000,5000; // if you wanna add exp as reward add them here like that //if(#Hourly_Rewads_Check == 5){getitem 905,1;} // like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr //if(#Hourly_Rewads_Check >= 5){getitem 905,1;} // like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr or more return; } prontera,144,126,6 pointshop Hourly Point Shop 667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5 //<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>
-
Thank you so much! Sir Katazui, I was able to fix it ^_^ you're so helpful ^_^
-
-
Hi! I'm having a hard time on this Cash Shop or Kafra Shop, what I want is a Cash Shop or Kafra Shop that used Cash Points that has a Waiting Room on it. Every time I reload my script the name of the NPC will become Kafra Shop but when I log out then log back in it will become Cash Shop. Need help on this script. Thanks. Here's my script: prontera,140,126,6 cashshop Kafra Shop 116,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5 prontera,140,126,6 script Cash Shop 116,{ callshop "Kafra Shop",116; OnInit: delwaitingroom; waitingroom "--- Cash Shop ---",0; end; close; }
-
I'll use your script to get my needs Sir. Thank you so much!
-
When I use Gakkung, Composite Bow arrow is showing when attacking but if I use Arbalest Crossbow Rudra arrow is not showing. 20151104 client. Where to fix this?
-
I have 23 poring cards but it is not showing how many poring cards I have, also when I trade 3 poring cards I got 1 Mummy Card then I try trading the mummy card, I can input 3 Mummy Card then after trading no card will release.
-
Let me check this one Sir Sader. Thank you so much
-
Thank you! Let me try this one. Last resort is via Channel
-
I'm having a hard time with this issue. Please check the attach file. message.txt
-
Thank you so much Sir! you're the best. Is it okay if you can put a time on it so it wont be spammable? Like, you can only use this every 30 seconds? then if you try to use again there is a message that will say you can only use this every 30 secconds
-
Hi! to all scripters, Can I request an npc script like bindatcmd that when a player type "@sell <message>" his/her message will be broadcast to the whole server with a hexcolor on it? Thank you so much! Have a good day!
-
Here is my clientinfo <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <desc>Ragnarok Client Information</desc> <servicetype>korea</servicetype> <servertype>primary</servertype> <connection> <display>RagnarokRO</display> <address>127.0.0.1</address> <port>6900</port> <version>30</version> <langtype>0</langtype> <registrationweb></registrationweb> <loading> <image>loading00.jpg</image> <image>loading01.jpg</image> <image>loading02.jpg</image> <image>loading03.jpg</image> </loading> <aid> <admin>2000000</admin> </aid> </connection> </clientinfo>
-
I already try this but still not working. =( I don't know what to do anymore I did check that as well and it's not in the process running in task manager it's now showing in the process when I diff hlkm to hkcu. But still not showing the screen. Still not working =( really need help.
-
Im using r17704 emulator and Im using 20120410 client. The only problem is when I try to open my ragexe, nothing will come out.
-
Yes sir, Im using clientinfo for aRagexe. Client ver is 30. Before everything is working fine. I just updated to Windows 10 pro then client is not opening anymore.
-
Hi! I badly need help. After I upgrade my Windows 10 Lite to WIndows 10 Pro, my ragexe client is not opening. Currently using 20120410aRagexe and r17704. Before, It's working fine but after I update my Windows 10 its not working anymore. Other private server is working fine. Please help me. Already did all the compatibility settings, also turn off firewall, update my drivers. I really dont know what to do now. Below is what is inside my folder.
-
Perfect! Great Help!
-
Need help... Where should I put the waiting room? TIA //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6c //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //= 1.6b Added 'disable_items' command. //= 1.6c Replaced function 'A_An' with "F_InsertArticle". //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; // ADD YOUR NPC HERE //============================================================ prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; } // prontera,165,203,6 script Quest Shop#2 998,{ callfunc "qshop",1,2; } // call the shop 1 and 2 defined below // etc.. Add your Shop NPCs 'Quest Shop#XXX' here //============================================================ // Script Core - DO NOT DUPLICATE THIS NPC !!!!!!!!!!!!! //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,1; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0], "#CASHPOINTS", "Cash Points"; //===================================================================================== // ------------------- ADD YOUR SHOPS NAME AND ITEMS SHOPS STARTING HERE -------------- //===================================================================================== // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1], "Costume Upper", // Shop Named 1 "Costume Middle", // Shop Named 2 "Costume Lower", // Shop Named 3 "Costume Garment"; // Shop Named 4 // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,31290,1,0,0,40129,15,641,1,1039,250,969,1,976,1,2255,1,2227,1); Add(1,31291,1,0,0,40129,15,642,1,1039,250,969,1,975,1,2255,1,2227,1); Add(1,31090,1,0,0,40129,15,619,1,7121,250,969,1,980,1,2254,1,2221,1); Add(1,31098,1,0,0,40129,15,638,1,1022,250,969,1,981,1,10007,1,2274,1); Add(1,31140,1,0,0,40129,15,628,1,7166,250,969,1,983,1,2248,1,1030,1); Add(1,31187,1,0,0,40129,15,622,1,1059,250,969,1,983,1,2250,1,7510,1); Add(1,31190,1,0,0,40129,15,639,1,1020,250,969,1,975,1,661,1,10016,1); Add(2,20406,1,0,0,40129,15,642,1,1098,250,969,1,979,1,2626,1,7023,1); Add(2,20314,1,0,0,40129,15,625,1,7126,250,969,1,983,1,5007,1,5104,1); Add(2,31122,1,0,0,40129,15,624,1,930,250,969,1,975,1,2258,1,5096,1); Add(3,31057,1,0,0,40129,15,626,1,7216,250,969,1,983,1,2507,1,1232,1); Add(3,20405,1,0,0,40129,15,626,1,7216,250,969,1,975,1,2507,1,1232,1); Add(3,31189,1,0,0,40129,15,633,1,7216,250,969,1,975,1,10019,1,5002,1); Add(4,20512,1,0,0,40129,15,640,1,538,250,969,1,975,1,2327,1,5019,1); // ----------------------------------------------------------- //===================================================================================== // ------------------- YOUR SHOPS AND ITEMS SHOPS HAVE BEEN ADDED --------------------- //===================================================================================== freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshop"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set @shop_index, select(.menu$); else if (.@size == 1) set @shop_index, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set @shop_index, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[@shop_index] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"+@shop_index,1; npcshopattach "qshop"+@shop_index; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; disable_items; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(0)+"_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } } function script qshop { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1