Popular Post Euphy Posted May 28, 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 Popular Post Share Posted May 28, 2012 Euphy's Scripts Disclaimer You may use, modify, and host all of my released scripts.You may not sell them, re-release them in any way (modified or otherwise), or remove the credits. < Event Manager > This is a 7-in-1 "Event Manager" NPC which includes the following events: Monster Summon MVP Summon Monster Hunt Poring Catcher Zombie Invasion Disguise Event Last Man Standing Additional NPC features include: In-game configuration settings for each event. Automated events, with a schedule display for players. Detailed event status for ongoing events. Built-in rewards shop. Limitations for lower-level GMs (optional). Provides warps to the current event map. Includes event information and rules. https://rathena.org/board/index.php?/files/file/2577-%7B?%7D/ < Hunting Missions > An NPC which gives random monster-hunting missions -- in other words, no configuration, hooray!Concept taken from eAmod (but with no source mods), and a comma-inserting function shamelessly stolen from Joseph. c:Features: Random monster selection. Only huntable monsters will be chosen - credits to AnnieRuru for the SQL query. A reference list of available mobs can be found here. Automatic reward generation based on mission difficulty. Party support, with lots of options. Rewards include experience, Zeny, and "Mission Points" (a shop feature is included). Rankings for top hunters. Options for mission delay, number of subquests, amount of monsters, and reward multipliers. Changelog:v1.3a: Added mission reset options.v1.3: Re-added a blacklist adapted for the SQL query.v1.2b: Added EXP modifiers to config.v1.2a: Condensed reward script and made formulas easier to locate, edited an SQL query, added effect constants.v1.2: Added party support and replaced blacklists with a single SQL query, both thanks to AnnieRuru.v1.1a: Switched to killedrid-ja-name check, removed sleep, removed an unneeded check.v1.1: Small improvements and fixes.v1.0: Initial script. As of v1.2, an SQL mob database is required.Official: npc/custom/quests/hunting_missions.txtDownload: Hunting Missions v1.3.txtDownload: Hunting Missions v1.1a.txtHunting Missions v1.3a.txt < Queue System > An advanced whisper-based queue system which can handle any event requiring player registration. Simply enter your parameters, and the system will handle the rest~Basics: Once a GM creates a queue, an announcement is made. Players whisper "join" to "npc:queue" to join the queue. GMs can place restrictions on the number of entries, type of entry (solo/party/guild), and other parameters (ex. level, class). They can also manually add players, even if they don't meet restrictions. If the queue was for parties or guilds, registrants will be warped into a party/guild-locked waiting room. If any new party/guild members log in, they will also be warped there. If at any point the party/guild no longer meets requirements, they will be kicked from the queue. After time expires and/or enough players join, the registration will close, and the players will be warped to a given location (or separated into teams, if specified). Features: Control the size, duration, and end action of any queue you create. Restrictions for joining queues, including party/guild size, base/job level, and job/upper values. Action commands for queues - you can message, warp, create items for and cast skills on an entire queue at a time. Detailed documentation. Type "help" in-game to receive a list of commands and explanations. Support for automated queues. Be careful with these, though. c: Automatic cleaning of old queues at 00:00. It's hard to describe the script any more than that, so test it yourself to see what it's really like.Post any bugs you find. I'm not sure how many suggestions I'll take since the script is already huge. ._.USE WITH CARE. The commands are as foolproof as possible, but problems will arise with incorrect usage.Download: Queue System v1.0.txtQueue System v1.0.txt < Euphy's WOE Controller > A War of Emperium controller written with simplicity in mind. While not quite as feature-packed as Toasty's, it comes pretty close, and isn't nearly as resource-hungry or complex. So here goes...Features: Add and delete times in-game, with a very user-friendly interface! Other features included as well. Add times for individual castles instead of entire regions. Includes a flexible auto-reward feature (thanks, Goddameit!). Persistent to server reloads, and can load in the middle of a WOE session. Does not leave castles open if WOE is inactive in them. Includes a menu with warps, schedules, and castle owner output. Changelog:v1.5: Overhaul of rewards system, adding mail, guildmaster-only, and IP-check features.v1.4: Edited LoadEvent mapflag implementation for cross-compatibility, added a LoadEvent option, and standardized script format.v1.3b: Modified to work with my new /guild2/ folder.v1.3a: Added an extra freeloop to prevent errors with over 17 sessions (also updated v1.2a).v1.3: Removed script-side session configuration (it can only be done in-game now), added pretty effects and a few extra checks.v1.2: Added in-game session manager!v1.1: Added option to auto-kick players from inactive castles, warp option for active castles only, and support for multiple rewards.v1.0: Initial script. Note: Be sure to disable the default agit controllers if you use this script!Official: npc/custom/woe_controller.txtDownload: Euphy's WOE Controller v1.5.txtDownload: Euphy's WOE Controller v1.3a.txt ~ revision 16570 and below.Euphy's WOE Controller v1.5.txt < All-In-One NPC > A compilation of 13 common NPCs into a single script. I wrote everything from scratch, so it's far smaller than other scripts. Menu choices and configuration settings are all dynamic, and very easily configurable.Features: Job Changer - Concise, combining the official class and eA class systems. Third jobs are included! Stylist - Very small, yet full-featured (Next/Previous/Jump/Revert). Jumping to "0" will select a random style. [Concept credits to Hudelf] Refiner - Allows single or multiple refines, and displays detailed information in the menu. Also includes Enriched Refiner, which can be switched off if needed. Refine prices can be changed. Card Remover - Basically the official script without the quest, and a few small bugs fixed. [Concept credits to TyrNemesis^] Coin Exchanger - Simple, but completely bug-free; set any ID and price. Rentals - Automatically rents a cart, falcon, Peco, dragon, Gryphon, warg, or mado. Resetter - Stat and skill resets. Optional price setting. Platinum Skills - Includes basic, rebirth, and baby jobs. Sex Changer - Gender change... with a twist! Identifier - Identifies all items in inventory. Healer, Buffer, Repairman - Automatic after clicking the NPC. Options to enable/disable each, if needed. Changelog:v1.8: Added Rebellion class to job changer.v1.7: General script updates, added a message box, and formatting standardization.v1.6: Added Expanded Super Novice and Kagerou/Oboro to job changer.v1.5a: Minor fixes in baby jobchange, rentals, and skill reset.v1.5: Added lastJob feature as default (linear class changes), and revamped job menu; rentals script improved and automated.v1.4: Added full third job support (job changer and rentals).v1.3: Added heal, buff, and repair on click, along with some config reorganization.v1.2: Added refiner, re-ordered the menu, and some other minor script improvements.v1.0: Initial script. Download: All-in-One v1.8.txtAll-In-One v1.8.txt < Euphy's Quest Shop > This quest shop is based on Lunar's shop in features and appearance, but is significantly easier to configure. ToastOfDoom's Item Preview script is included.Features: Very simple item additions, taking only seven arguments:Add(<shop ID>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,<required item ID>,<required item amount>{,...}); Support for multiple shops/categories, if needed. Support for any custom variable (ex. Cash Points). User-friendly: Item requirements are color-coded by completion, and you can only proceed when all are met. There's no need to number the quest items, so re-ordering takes no time at all. Options to show slots, announce quests upon completion, display item IDs, and show Zeny cost. Debug information for any errors in configuration. Changelog:v1.6b: Added 'disable_items' command.v1.6a: Added support for previewing costumes and robes.v1.6: Added support for purchasing multiple items; rewrote Add() function; some array reordering.v1.5: Replaced categories with shop IDs, allowing easy creation of multiple shops.v1.4c: Changed atcommands to 'changelook' and added LOOK_* constants (by Brian).v1.4b: Fixed an incorrect 'getiteminfo' call for slot setting 2, one small optimization, and script standardization.v1.4a: Finally fixed the "event not found" errors for good, and allowed preview without meeting requirements.v1.4: Added freeloop to prevent infinity loop errors, and included a few debug settings/messages.v1.3: Added 2 slot display options, added weight check, fixed "Show Zeny" not working, and other minor changes.v1.2: Added support for multiple shops/categories, and fixed small bug in preview script.v1.0: Initial script. Note: You must be updated to r16862+ to use v1.5 or higher.Official: npc/custom/quests/quest_shop.txtDownload: Euphy's Quest Shop v1.6.txtDownload: Euphy's Quest Shop v1.4b.txtEuphy's Quest Shop v1.6b.txt < Euphy's Warper > After using Tekno-Kanix's Super Warper for so long, I've finally decided to clean up the huge mess of text and condense it into the smallest, most efficient warper yet. Much credit goes to Tekno-Kanix for the bulk of the coordinates, and to Toasty as well for a few towards the end.Features: Warps to all towns, fields, dungeons, guild dungeons, and guild castles, as well as a few other areas of interest. Very easy configuration, unlike some more complicated warpers that claim ease of use somewhat deceptively... Smallest script by far, using functions to dynamically create large menus. Some documentation is included in the release. Last warp function. Updated up to Episode 14.2 (Eclage). Adding Maps: A single map:Label: Go("<mapname>",<x>,<y>); ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ExampleLabel1: Go("prontera",155,183); A group of maps:Label: setarray @c[2],<x1>,<y1>,<x2>,<y2>,<x3>,<y3>, [...]; Disp("<Option 1>:<Option 2>:<Option 3>: [...]"); Pick("","<mapname 1>","<mapname 2>","<mapname 3>","<...>"); ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ExampleLabel2: setarray @c[2],140,51,53,247,37,63,150,285; Disp("Entrance:Juperos 1:Juperos 2:Core"); Pick("","jupe_cave","juperos_01","juperos_02","jupe_core"); Note: Write map coordinates in the same order as displayed in the menu. A dynamic map list:Label: setarray @c[2],<x1>,<y1>,<x2>,<y2>,<x3>,<y3>, [...]; Disp("<Menu Option Base>",<first option>,<last option>); Pick("<map_prefix>"{,<index offset>}); ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ExampleLabel3: setarray @c[2],217,206,223,221,237,215,202,197; Disp("Umbala Field",1,4); Pick("um_fild"); Note: If either function does not fit the dynamic structure, revert to the second method of adding maps for one or both functions. The numbering postfix of Pick() begins at "01" by default, and can be adjusted to "00" by setting the offset to 1 and starting with @c[0]. Changelog:v1.4: Added new guild dungeons.v1.3: Added Renewal/Pre-Renewal checks, and aligned coordinates with @go.v1.2: Added Dewata, Eclage, Malangdo, Malaya towns, fields, dungeons, and duplicates; functions slightly simplified.v1.1: Lots of bad coordinates rewritten, some missing duplicates added, and a bug with Prontera Culverts fixed.v1.0: Initial script. Official: npc/custom/warper.txtDownload: Euphy's Warper v1.2.txtEuphy's Warper v1.4.txt < Item Rewards > A relatively simple NPC which allows a GM to add item rewards for players. The only version I found required new SQL tables to be created, which I felt unnecessary for something so basic. So I made my own~Here's how it works: Any GM above level xx can add and remove item rewards for players. A logging system is included. A predefined "package" of items is given to players. You can create any amount of different packages. (This also helps to prevent abuse.) Players click on the NPC to receive their reward. There is a weight and inventory check. Changelog:v1.8: Script compressed using getd (a lot less user configuration); players now notified about pending rewards.v1.5: Added logging, and pretty colors!v1.2: Added configuration options, improved weight/inventory checks, more user-friendly in general.v1.0: Initial script. Download: Item Rewards v1.8.txtItem Rewards v1.8.txt < Custom Currency Multi-Shop > A simple item-based currency shop script that can loop through multiple shops in a single NPC.The functions and setup are fairly self-explanatory, but post if you have questions/concerns.Pardon the silly example. c:Changelog: v1.2: Added option to change currencies in different shops.v1.0: Initial script. Download: Multi-Shop v1.2.txtMulti-Shop v1.2.txt < Build Manager + > A more efficient Build Manager that uses one variable instead of six. Options to save any number of builds with names (concept credits to Emistry).Changelog: v1.8: Replaced status loop with "explode" command (script size reduction).v1.7: Added Zeny cost settings for each option, and builds now also store stat points.v1.5: String conversion rewritten for any number of stat points, dynamic menu added, along with other updates.v1.0: Initial script, static menu and 99 stat max. Download: Build Manager v1.8.txtBuild Manager v1.8.txt < Class Mastery System > Like my Badge System, the Class Mastery System allows characters to switch to any class they've mastered. Players receive a Class Manual upon logging in, and new classes are added as they master their classes. My build manager is included for convenient switching.Note that a Reset NPC and Job Changer without lastJob are required for this script to be viable. Both are included in my All-In-One NPC.Features: Fully automated - Classes are added right when you master them, if you so choose. Convenient - Quickly change from a list of user-set class/build combinations in just two clicks. Configurable - Settings can be toggled for cast time, cast interrupt, build count, and allowed jobs. Efficient - Updates and stores data using the lightest server load and smallest variable count possible. Changelog:v1.2: Added 5 "mode" settings, including a visible NPC (optional).v1.0: Initial script. item_db2.txt:3333,Class_Manual,Class Manual,11,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "Class_Mastery"; },{},{} item_trade.txt:3333,123,100 idnum2itemdisplaynametable.txt:3333#Class_Manual# idnum2itemresnametable.txt:3333#ž¹ýÃ¥_¹«# idnum2itemdesctable.txt:3333# ^0055FFAncient secrets lie within...^000000 ^ffffff_^000000 Weight :^777777 0^000000 # Download: Class Mastery v1.2.txtClass Mastery v1.2.txt < Class Specialization > Class Specialization is a job expansion system which opens up two paths for the Transcendent classes. Each is focused in a particular aspect of the job, with stat and skill bonuses granted accordingly. One specialization ring is allowed per character.This script is offered as-is. There may be balance issues, especially for more-customized servers.Credits to the developers of aeRO (2008) for the concept, and to goddameit for a visual effect I've included.Download: Specialization v1.2.txtDownload: Specialization (data).txtSpecialization v1.2.txtSpecialization (data).txt < Badge System > The badge system allows characters to change to any job that they have mastered. Upon reaching the maximum job level for an ending class, a corresponding badge will automatically appear in the player's inventory. An NPC will allow job changes using the badges. There are twenty in total.This script is no longer supported, and suggestions will be denied. Use my Class Mastery System instead.Download: Badge System v1.0.txtDownload: Badge System (data).txtBadge System v1.0.txtBadge System (data).txt < Guarantee Refine Ticket > No longer needed. Use this script instead: npc/re/merchants/ticket_refiner.txtUses the following items to refine weapons/armor with 1 click: #6228 ~ Guarantee_Weapon_9Up #6229 ~ Guarantee_Weapon_8Up #6230 ~ Guarantee_Weapon_7Up #6231 ~ Guarantee_Weapon_6Up #6232 ~ Guarantee_Armor_9Up #6233 ~ Guarantee_Armor_8Up #6234 ~ Guarantee_Armor_7Up #6235 ~ Guarantee_Armor_6Up #6238 ~ Guarantee_Weapon_11Up #6239 ~ Guarantee_Armor_11Up Script includes a function and new item_db entries.Changelog:v1.1a: Fixed @mail exploit.v1.1: Added confirmation dialogue, effects, and a config setting.v1.0: Initial script. Download: Guarantee Refine Ticket v1.1a.txtGuarantee Refine Ticket v1.1a.txt < Item Fusion > A small script which will slot 1 item inside the 4th card slot of another (it's not limited to cards, though!). All available combinations must be defined: <% success>,<Item A>,<Item B>{,...};A few other configuration settings are included as well.Download: Fusion v1.0.txtFusion v1.0.txt < Euphy's MVP Ladder > An MVP ranker with lots of fun extras - see for yourself!Note: this is by far my most reader-unfriendly script. xDUse at your own risk.Download: Euphy's MVP Ladder v1.3.txtMVP Ladder v1.3.txt < Card Trader > An NPC which exchanges cards for "points".Features: Trade cards through a shop window! Set a minimum monster level for cards. Extra points for MVP cards. Point shop is included. Changelog:v1.1: Added minimum monster level setting.v1.0: Initial script. Download: Card Trader v1.1Card Trader v1.1.txt < NPC Duplicate Generator > A script which generates any amount of duplicates on random coordinates of a set list of maps.Some documentation is contained within the script.Download: NPC Duplicate Generator v1.0NPC Duplicate Generator v1.0.txt < Auto-Potion > An @autopotion command to automatically use potions when hit (i.e. 'autobonus2' - as such, will not work for SP). Type the command in-game for usage instructions.Credits to AnnieRuru for some of the code and concepts.Official: npc/custom/etc/autopot.txtDownload: Auto-Potion 92 4 1 Quote Link to comment Share on other sites More sharing options...
frenzmu06 Posted May 28, 2012 Group: Members Topic Count: 16 Topics Per Day: 0.00 Content Count: 326 Reputation: 47 Joined: 04/01/12 Last Seen: February 1, 2023 Share Posted May 28, 2012 great your finally here together with your scripts good job, more power 1 Quote Link to comment Share on other sites More sharing options...
Sharpienero Posted May 28, 2012 Group: Members Topic Count: 32 Topics Per Day: 0.01 Content Count: 386 Reputation: 28 Joined: 01/16/12 Last Seen: January 6, 2023 Share Posted May 28, 2012 Thank you! Quote Link to comment Share on other sites More sharing options...
manabeast Posted May 28, 2012 Group: Members Topic Count: 138 Topics Per Day: 0.03 Content Count: 835 Reputation: 25 Joined: 11/22/11 Last Seen: December 4, 2012 Share Posted May 28, 2012 greats script =). and the badge system are so special. Quote Link to comment Share on other sites More sharing options...
williamII Posted May 28, 2012 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 343 Reputation: 15 Joined: 11/21/11 Last Seen: 10 hours ago Share Posted May 28, 2012 Thx @ Euphy I have a problem with Euphy's Quest Shop I have no idea what the problem photo attached. 1 Quote Link to comment Share on other sites More sharing options...
Rikimaru Posted May 28, 2012 Group: Members Topic Count: 16 Topics Per Day: 0.00 Content Count: 658 Reputation: 57 Joined: 11/20/11 Last Seen: July 1, 2017 Share Posted May 28, 2012 Really nice Scripts! +1 Quote Link to comment Share on other sites More sharing options...
Euphy Posted May 28, 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 Author Share Posted May 28, 2012 I have a problem with Euphy's Quest Shop http://img641.images.../sinttuloea.png Strange, someone else also reported that problem but I can't manage to reproduce it... If anything, try changing this line: addtimer 1000, strnpcinfo(3)+"::OnExit"; To this: addtimer 1000, strnpcinfo(1)+"::OnExit"; That's the best suggestion I can give unless I find out how to get the error myself, unfortunately. Quote Link to comment Share on other sites More sharing options...
Jb Roxas Posted May 28, 2012 Group: Members Topic Count: 40 Topics Per Day: 0.01 Content Count: 95 Reputation: 0 Joined: 01/28/12 Last Seen: August 21, 2012 Share Posted May 28, 2012 about Euphy's Quest Shop i want to make 4 script of this what should i change on the script ? Kindly Test This Sir. //===== eAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ ayothaya,159,161,5 script Quest Midgear 994,{ function Add; function Chk; function Slot; function A_An; if(.Shops$ != "") set .@i,1; else { set .@menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) set .@menu$, .@menu$+.Shops$[.@i]+":"; set .@i, select(.@menu$); } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; function Add { for(set .@n,5; 1; set .@n,.@n+2) if (!getarg(.@n,0)) break; for(set .@i,2; .@i<.@n; set .@i,.@i+1) set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0)<getarg(1)) { set @qf,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),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } OnBuyItem: set .@q[0],@bought_nameid; copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]")); if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000"; if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000"; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000"; if (@qf) { set @qf,0; close; } next; if (!checkweight(.@q[0],.@q[1])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11); addtimer 1000, strnpcinfo(3)+"::OnExit"; while(1){ switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (.@q[2]) set Zeny, Zeny-.@q[2]; if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3]; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]; getitem .@q[0],.@q[1]; if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0; specialeffect2 699; close; case 2: set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5); if (@qe1&1) atcommand "@changelook 3 "+@qe2; if (@qe1&256) atcommand "@changelook 1 "+@qe2; if (@qe1&512) atcommand "@changelook 2 "+@qe2; set @qe6,1; break; case 3: close; } } OnExit: if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; } for(set .@i,1; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0; end; OnInit: // --------------------- Config --------------------- // Custom points, if needed: "<variable>","<name to display>" setarray .Points$[0],"#CASHPOINTS","Cash Points"; 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 .DisplayID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...}; // Duplicate dummy data for any additional shops (bottom of script). // If no categories, use the second line instead (remove //). setarray .Shops$[1],"Mid Gears"; // set .Shops$,"n/a"; // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // Shop number corresponds with order above (default is 1). // Note: Do NOT use a reward item more than once! Add(1,20015,1,0,0,969,1000,7729,50,7227,30,7297,10); Add(1,5592,1,0,0,969,1000,7729,50,7227,30,7296,10); Add(1,5421,1,0,0,969,1000,7729,50,7227,30,7289,10); Add(1,5135,1,0,0,969,1000,7729,50,7227,30,7035,10); // -------------------------------------------------- for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) npcshopdelitem "qshop"+.@i,909; end; } // -------- Dummy data (duplicate as needed) -------- - shop qshop2 -1,909:-1 //===== eAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ ayothaya,159,156,5 script Quest Headgear 988,{ function Add; function Chk; function Slot; function A_An; if(.Shops$ != "") set .@i,1; else { set .@menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) set .@menu$, .@menu$+.Shops$[.@i]+":"; set .@i, select(.@menu$); } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; function Add { for(set .@n,5; 1; set .@n,.@n+2) if (!getarg(.@n,0)) break; for(set .@i,2; .@i<.@n; set .@i,.@i+1) set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0)<getarg(1)) { set @qf,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),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } OnBuyItem: set .@q[0],@bought_nameid; copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]")); if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000"; if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000"; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000"; if (@qf) { set @qf,0; close; } next; if (!checkweight(.@q[0],.@q[1])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11); addtimer 1000, strnpcinfo(3)+"::OnExit"; while(1){ switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (.@q[2]) set Zeny, Zeny-.@q[2]; if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3]; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]; getitem .@q[0],.@q[1]; if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0; specialeffect2 699; close; case 2: set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5); if (@qe1&1) atcommand "@changelook 3 "+@qe2; if (@qe1&256) atcommand "@changelook 1 "+@qe2; if (@qe1&512) atcommand "@changelook 2 "+@qe2; set @qe6,1; break; case 3: close; } } OnExit: if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; } for(set .@i,1; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0; end; OnInit: // --------------------- Config --------------------- // Custom points, if needed: "<variable>","<name to display>" setarray .Points$[0],"#CASHPOINTS","Cash Points"; 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 .DisplayID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...}; // Duplicate dummy data for any additional shops (bottom of script). // If no categories, use the second line instead (remove //). setarray .Shops$[1],"Headgears"; // set .Shops$,"n/a"; // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // Shop number corresponds with order above (default is 1). // Note: Do NOT use a reward item more than once! Add(2,20053,1,0,0,969,1000,7729,50,7227,30,7293,10); Add(2,20025,1,0,0,969,1000,7729,50,7227,30,7292,10); Add(2,20042,1,0,0,969,1000,7729,50,7227,30,7297,10); Add(2,20045,1,0,0,969,1000,7729,50,7227,30,7035,10); Add(2,20043,1,0,0,969,1000,7729,50,7227,30,7295,10); Add(2,20018,1,0,0,969,1000,7729,50,7227,30,7296,10); Add(2,5682,1,0,0,969,1000,7729,50,7227,30,7035,10); Add(2,20017,1,0,0,969,1000,7729,50,7227,30,7296,10); Add(2,5374,1,0,0,969,1000,7729,50,7227,30,7293,10); Add(2,5518,1,0,0,969,1000,7729,50,7227,30,7293,10); // -------------------------------------------------- for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) npcshopdelitem "qshop"+.@i,909; end; } // -------- Dummy data (duplicate as needed) -------- - shop qshop2 -1,909:-1 //===== eAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ ayothaya,159,166,5 script Quest Wings 992,{ function Add; function Chk; function Slot; function A_An; if(.Shops$ != "") set .@i,1; else { set .@menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) set .@menu$, .@menu$+.Shops$[.@i]+":"; set .@i, select(.@menu$); } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; function Add { for(set .@n,5; 1; set .@n,.@n+2) if (!getarg(.@n,0)) break; for(set .@i,2; .@i<.@n; set .@i,.@i+1) set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0)<getarg(1)) { set @qf,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),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } OnBuyItem: set .@q[0],@bought_nameid; copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]")); if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000"; if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000"; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000"; if (@qf) { set @qf,0; close; } next; if (!checkweight(.@q[0],.@q[1])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11); addtimer 1000, strnpcinfo(3)+"::OnExit"; while(1){ switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (.@q[2]) set Zeny, Zeny-.@q[2]; if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3]; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]; getitem .@q[0],.@q[1]; if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0; specialeffect2 699; close; case 2: set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5); if (@qe1&1) atcommand "@changelook 3 "+@qe2; if (@qe1&256) atcommand "@changelook 1 "+@qe2; if (@qe1&512) atcommand "@changelook 2 "+@qe2; set @qe6,1; break; case 3: close; } } OnExit: if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; } for(set .@i,1; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0; end; OnInit: // --------------------- Config --------------------- // Custom points, if needed: "<variable>","<name to display>" setarray .Points$[0],"#CASHPOINTS","Cash Points"; 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 .DisplayID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...}; // Duplicate dummy data for any additional shops (bottom of script). // If no categories, use the second line instead (remove //). setarray .Shops$[1],"Wings"; // set .Shops$,"n/a"; // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // Shop number corresponds with order above (default is 1). // Note: Do NOT use a reward item more than once! Add(3,20011,1,0,0,969,1000,7729,50,7227,30,7293,10); Add(3,20007,1,0,0,969,1000,7729,50,7227,30,7296,10); Add(3,20006,1,0,0,969,1000,7729,50,7227,30,7290,10); Add(3,20005,1,0,0,969,1000,7729,50,7227,30,7292,10); Add(3,20037,1,0,0,969,100000); Add(3,20039,1,0,0,969,100000); // -------------------------------------------------- for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) npcshopdelitem "qshop"+.@i,909; end; } // -------- Dummy data (duplicate as needed) -------- - shop qshop3 -1,909:-1 //===== eAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ prontera,163,165,3 script Quest Shop 910,{ function Add; function Chk; function Slot; function A_An; if(.Shops$ != "") set .@i,1; else { set .@menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) set .@menu$, .@menu$+.Shops$[.@i]+":"; set .@i, select(.@menu$); } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; function Add { for(set .@n,5; 1; set .@n,.@n+2) if (!getarg(.@n,0)) break; for(set .@i,2; .@i<.@n; set .@i,.@i+1) set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0)<getarg(1)) { set @qf,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),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } OnBuyItem: set .@q[0],@bought_nameid; copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]")); if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000"; if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000"; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000"; if (@qf) { set @qf,0; close; } next; if (!checkweight(.@q[0],.@q[1])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11); addtimer 1000, strnpcinfo(3)+"::OnExit"; while(1){ switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (.@q[2]) set Zeny, Zeny-.@q[2]; if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3]; if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]; getitem .@q[0],.@q[1]; if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0; specialeffect2 699; close; case 2: set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5); if (@qe1&1) atcommand "@changelook 3 "+@qe2; if (@qe1&256) atcommand "@changelook 1 "+@qe2; if (@qe1&512) atcommand "@changelook 2 "+@qe2; set @qe6,1; break; case 3: close; } } OnExit: if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; } for(set .@i,1; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0; end; OnInit: // --------------------- Config --------------------- // Custom points, if needed: "<variable>","<name to display>" setarray .Points$[0],"#CASHPOINTS","Cash Points"; 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 .DisplayID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...}; // Duplicate dummy data for any additional shops (bottom of script). // If no categories, use the second line instead (remove //). setarray .Shops$[1],"Items of the Weeks","Limited Until June 15 Only"; // set .Shops$,"n/a"; // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // Shop number corresponds with order above (default is 1). // Note: Do NOT use a reward item more than once! Add(4,7547,1,0,0,20225,50,20219,500,20220,500,7088,10); Add(4,7548,1,0,0,969,30000,7337,300,7227,500,7729,500,20224,50); Add(5,607,1,0,0,969,100000); // -------------------------------------------------- for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) npcshopdelitem "qshop"+.@i,909; end; } // -------- Dummy data (duplicate as needed) -------- - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1 Quote Link to comment Share on other sites More sharing options...
williamII Posted May 28, 2012 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 343 Reputation: 15 Joined: 11/21/11 Last Seen: 10 hours ago Share Posted May 28, 2012 (edited) the error shows me when I have all the items, and once the shows me all in green and I press next button give error I changed what you said but still the same the script is very good T_T Edited May 28, 2012 by williamII Quote Link to comment Share on other sites More sharing options...
Euphy Posted May 28, 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 Author Share Posted May 28, 2012 @Jb Roxas: My script already supports multiple categories, if you read the configuration notes. Add them to this line: setarray .Shops$[1],"Headgears","Weapons","Misc"; Then in the Add() function, the first value is the category number (1, 2, 3, or 4, in your case). @williamII: I really don't know why that's happening... Are you using the latest rAthena revision? Quote Link to comment Share on other sites More sharing options...
williamII Posted May 29, 2012 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 343 Reputation: 15 Joined: 11/21/11 Last Seen: 10 hours ago Share Posted May 29, 2012 i use a rathena rev 16164 and axe 2012 03 Quote Link to comment Share on other sites More sharing options...
lakasmonk Posted May 29, 2012 Group: Members Topic Count: 33 Topics Per Day: 0.01 Content Count: 231 Reputation: 24 Joined: 12/18/11 Last Seen: April 7 Share Posted May 29, 2012 i have same problem with william Quote Link to comment Share on other sites More sharing options...
Euphy Posted May 29, 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 Author Share Posted May 29, 2012 Alright, since I really can't figure out what's going on, I've put up a version where "Item Previewing" can be turned off. That should avoid the event label errors. http://pastebin.com/raw.php?i=xADBcWR7 Quote Link to comment Share on other sites More sharing options...
williamII Posted May 30, 2012 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 343 Reputation: 15 Joined: 11/21/11 Last Seen: 10 hours ago Share Posted May 30, 2012 @Euphy thanks for all, now the script does not show error. congratulations for al good scripts Quote Link to comment Share on other sites More sharing options...
yehboyy Posted May 30, 2012 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 7 Reputation: 0 Joined: 05/02/12 Last Seen: June 9, 2012 Share Posted May 30, 2012 @Jb Roxas: My script already supports multiple categories, if you read the configuration notes. Add them to this line: setarray .Shops$[1],"Headgears","Weapons","Misc"; Then in the Add() function, the first value is the category number (1, 2, 3, or 4, in your case). I think he's asking how to set up 4 different npc's instead of using the categories. Quote Link to comment Share on other sites More sharing options...
Euphy Posted May 30, 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 Author Share Posted May 30, 2012 I think he's asking how to set up 4 different npc's instead of using the categories. Oh, okay. There's really no point in using my script if you duplicate entire NPCs, though, since other scripts (ex. Lunar's) would be more efficient for that. Quote Link to comment Share on other sites More sharing options...
Jezu Posted May 31, 2012 Group: Members Topic Count: 29 Topics Per Day: 0.01 Content Count: 566 Reputation: 34 Joined: 11/17/11 Last Seen: January 24 Share Posted May 31, 2012 The script of Euphy is really great. Continue your work bro.. How about create a WoE Controller? An optimized one.. Quote Link to comment Share on other sites More sharing options...
Euphy Posted May 31, 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 Author Share Posted May 31, 2012 Warper updated to v1.2: It now supports Episode 14.2 (Eclage), and a few simplifications were made to the functions. Quote Link to comment Share on other sites More sharing options...
Jb Roxas Posted June 6, 2012 Group: Members Topic Count: 40 Topics Per Day: 0.01 Content Count: 95 Reputation: 0 Joined: 01/28/12 Last Seen: August 21, 2012 Share Posted June 6, 2012 @Euphy yea im looking for duplicating the npc not by category in one npc only, can u script that request? Quote Link to comment Share on other sites More sharing options...
Euphy Posted June 6, 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 Author Share Posted June 6, 2012 @Jb Roxas: Fill out the full config for only ONE shop. Delete all of this from the others: // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};[/color] // Duplicate dummy data for any additional shops (bottom of script). // If no categories, use the second line instead (remove //). setarray .Shops$[1],"Headgears","Weapons","Misc"; // set .Shops$,"n/a"; // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // Shop number corresponds with order above (default is 1). // Note: Do NOT use a reward item more than once! Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2); Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600); Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1); Add(1,5045,1,0,0,2252,1,1054,450,943,1200); Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10); Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10); Add(3,531,1,3,0,512,1,713,1); Add(3,532,1,3,0,513,1,713,1); Add(3,533,1,3,0,514,1,713,1); Add(3,534,1,3,0,515,1,713,1); // -------------------------------------------------- for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) npcshopdelitem "qshop"+.@i,909; end; // -------- Dummy data (duplicate as needed) -------- - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 Then at the beginning of each script, delete this section: if(.Shops$ != "") set .@i,1; else { set .@menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) set .@menu$, .@menu$+.Shops$[.@i]+":"; set .@i, select(.@menu$); } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; And write something like... callshop "<qshop1, qshop2, etc. (in order)>",1; npcshopattach "<same>"; Quote Link to comment Share on other sites More sharing options...
Virtue Posted June 7, 2012 Group: Members Topic Count: 92 Topics Per Day: 0.02 Content Count: 354 Reputation: 22 Joined: 11/17/11 Last Seen: May 12, 2024 Share Posted June 7, 2012 will you not make your All in One shop to have a duplicate npc? Quote Link to comment Share on other sites More sharing options...
Euphy Posted June 7, 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 Author Share Posted June 7, 2012 @mnjfx: Which NPC are you talking about? All-In-One NPC updated to v1.4! The NPC now fully supports third classes. Quote Link to comment Share on other sites More sharing options...
Jhosef Posted June 9, 2012 Group: Members Topic Count: 98 Topics Per Day: 0.02 Content Count: 299 Reputation: 5 Joined: 04/05/12 Last Seen: September 9, 2012 Share Posted June 9, 2012 i have error in your Quest shop said run_script: infinity loop! Quote Link to comment Share on other sites More sharing options...
Meister Posted June 9, 2012 Group: Members Topic Count: 280 Topics Per Day: 0.06 Content Count: 841 Reputation: 17 Joined: 04/16/12 Last Seen: March 4, 2024 Share Posted June 9, 2012 I have this error whenever I try to use 2 NPC for your quest shop. the same items appear for every NPC. how to fix that? Quote Link to comment Share on other sites More sharing options...
Euphy Posted June 9, 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 Author Share Posted June 9, 2012 @Jhosef: You configured something wrong. Post your code and a screenshot of your mapserver error. @emong: I didn't write the script to be duplicated - that's why I included categories. See my previous post if you really need to duplicate. Quote Link to comment Share on other sites More sharing options...
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.