diff options
30 files changed, 2254 insertions, 2629 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 2e6b09747..7ded00e82 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,6 +1,7 @@ Date Added ====== 2007/06/21 + * Update to the eAAC Scripts (don't ask...) [eAAC] * Fixed a small bug in Dandelion's Request. [SinSloth] * Fixed a little minor bug in "Crusader Job Quest". [Samuray22] * Added some missing NPCs from the Laboratory on "Elemental Potion Cretion Quest". [Samuray22] diff --git a/npc/custom/eAAC_Scripts/DonationGirl/donate.txt b/npc/custom/eAAC_Scripts/DonationGirl/donate.txt index 97e39519f..91368fb5f 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/donate.txt +++ b/npc/custom/eAAC_Scripts/DonationGirl/donate.txt @@ -1,51 +1,72 @@ -//===== eAthena Script ======================================= +//===== Athena Script ======================================= //= Donation NPC -//===== By =================================================== +//===== By ================================================== //= Josh -//===== Version ============================================== -//= 1.0 - First release. Probably contains bugs/security -//= risks -//= 1.1 - Added a check for whether the account exists when -//= adding a donator. Need to improve ordering when -//= viewing all donations. -//= 1.2 - Modified for public use. Added checkweight feature. -//= 2.0 - Many changes, especially ones I had always wanted -//= to add to this script. Includes reading items from -//= a separate SQL table and more database manipulation -//= options for GMs. -//= 2.1 - Made few changes including the add/remove items -//= feature. -//= 3.0 - All strings inputed by a user and user/char names -//= in SQL queries are now escaped. Each item has a -//= price rather than a quantity. This script can work -//= with decimals. -//= 3.1 - Added quotes to some queries, fixed a variable and -//= removed a comment. -//= 3.2 - Fixed a problem where eAthena would crash if a -//= query returned NULL. -//= 3.3 - Optimized query speeds by combining a few select -//= queries into one. Requires Trunk 7975 OR -//= Stable 8637. -//===== Compatible With ====================================== -//= eAthena - any version that contains the new query_sql -//= command (Stable 8637 OR Trunk 7975). -//===== Description ========================================== +//===== Version ============================================= +//= 1.0 - First release. Probably contains bugs/security +//= risks. +//= 1.1 - Added a check for whether the account exists when +//= adding a donator. Need to improve ordering when +//= viewing all donations. +//= 1.2 - Modified for public use. Added checkweight feature. +//= 2.0 - Many changes, especially ones I had always wanted +//= to add to this script. Includes reading items from +//= a separate SQL table and more database manipulation +//= options for GMs. +//= 2.1 - Made few changes including the add/remove items +//= feature. +//= 3.0 - All strings inputted by a user and user/char names +//= in SQL queries are now escaped. Each item has a +//= price rather than a quantity. This script can work +//= with decimals. +//= 3.1 - Added quotes to some queries, fixed a variable and +//= removed a comment. +//= 3.2 - Fixed a problem where eAthena would crash if a +//= query returned NULL. +//= 3.3 - Optimized query speeds by combining a few select +//= queries into one. Requires Trunk 7975. +//= 3.4 - Added MySQL version check. If version < 5.0.8, all +//= queries with CAST are omitted. Use 5.0.8 and up +//= when possible. SQL errors may consequent if GM's +//= input is incorrect. Added logging of claims. +//= "log_npc" in log_athena.conf must be enabled. Logs +//= will appear in the "npclog" table. Claim menu now +//= only shows items that can be afforded. +//= 3.5 - Minor change to table. +//= 3.6 - Removed name column in donate_item_db. Added +//= support for item_db2 table. +//= 3.7 - Added Zeny support. $rate must be set for it to be +//= used. Removed truncate() in a query since eAthena +//= automatically truncates floats to ints. +//= 3.8 - Fixed problem with menus and null values. +//= 3.9 - Explicit reset of @aid. +//= 3.10 - Applied previous fix to other variables and forced +//= dialogue box closure every time database is +//= modified. +//= 3.11 - Explicit reset of another variable. Fixed typo +//= - with $rate. Added logmes for GM operations. +//===== Compatible With ===================================== +//= eAthena SQL - any version with the new query_sql command +//= (Trunk 7975 and up). +//= MySQL - 5.0.8 and up highly recommended but not required. +//===== Description ========================================= //= A script that lets a player claim an item for donating. //= Allows a GM to input each donation. -//===== Comments ============================================= +//===== Comments ============================================ //= This script uses SQL tables to store variables for the //= amount donated by users and the items claimable. -//===== Installation ========================================= -//= You must execute donate.sql and donate_item_db.sql before -//= using this script. -//============================================================ +//===== Installation ======================================== +//= You must import donate.sql and donate_item_db.sql (and +//= item_db.sql and item_db2.sql, which comes with eAthena) +//= before using this script. +//=========================================================== //= Thanks to Vich for helping me with the SQL syntax. //= Thanks to Lance for helping me with the the arrays and //= for implementing query_sql. //= Thanks to Skotlex for implementing escape_sql. //= Thanks to Toms for implementing the new multi-column //= query_sql command. -//============================================================ +//=========================================================== prontera,145,179,5 script Donation Girl 714,{ @@ -69,79 +90,104 @@ mes "[Donation Girl]"; mes "To show our appreciation, we will gladly give you a reward."; next; menu "Continue",L_START,"Cancel",-; -close; L_CHECK: -query_sql "SELECT `amount`,`claimed` FROM `donate` WHERE `account_id` = "+getcharid(3)+"", @amount$, @claimed$; -query_sql "SELECT MIN(price) FROM `donate_item_db`", @min$; -query_sql "SELECT '"+@amount$+"' - '"+@claimed$+"'", @value$; -query_sql "SELECT '"+@value$+"' >= '"+@min$+"'", @enough; -if(@enough) goto L_CLAIM; -mes "[Donation Girl]"; -mes "Sorry, you do not have enough to make a claim."; -mes "If you have donated but have not made a claim,"; -mes "Please give us time to process your donation."; -close; +query_sql "SELECT `amount`,`claimed` FROM `donate` WHERE `account_id` = "+getcharid(3), @amount$, @claimed$; +query_sql "SELECT "+@amount$+" - "+@claimed$, @value$; +query_sql "SELECT '"+@value$+"' > 0", @enough; +if(!@enough) { + mes "[Donation Girl]"; + mes "Sorry, you do not have enough to make a claim."; + mes "If you have donated but have not made a claim,"; + mes "Please give us time to process your donation."; + close; + } L_CLAIM: mes "[Donation Girl]"; mes "Thankyou for donating!"; mes "You have $"+@value$+" worth of credit!"; -mes "Would you like to claim an item now?"; +mes "What would you like to claim?"; next; -menu "No",-,"Yes",L_YES; -mes "[Donation Girl]"; -mes "Ok! You are able to collect your item(s) any time!"; -close; +menu "Items",L_CLAIMITEM,"Zeny",L_ZENY; -L_YES: +L_CLAIMITEM: mes "[Donation Girl]"; mes "Very well. Which item would you like?"; next; -query_sql "SELECT `name` FROM `donate_item_db` ORDER BY `name` ASC",$@name$; -set $@menu$, $@name$[0]; - for(set $@i, 1; $@i < 127; set $@i, $@i + 1){ - set $@menu$, $@menu$ + ":" + $@name$[$@i]; +query_sql "SELECT `id` FROM `donate_item_db` WHERE `price` <= "+@value$+" ORDER BY `id`",@name; +set @menu$, getitemname(@name[0]); + for(set @i, 1; @i < getarraysize(@name); set @i, @i + 1){ + set @menu$, @menu$ + ":" + getitemname(@name[@i]); } -set @menu, (select($@menu$))-1; +set @m, select(@menu$)-1; -query_sql "SELECT `id`,`price` FROM `donate_item_db` WHERE `name` = '"+$@name$[@menu]+"'", @id, @price$; -query_sql "SELECT TRUNCATE("+@value$+" / "+@price$+",0)", @max; +query_sql "SELECT `price` FROM `donate_item_db` WHERE `id` = "+@name[@m], @price$; +query_sql "SELECT "+@value$+" / "+@price$, @max; mes "[Donation Girl]"; -mes ""+$@name$[@menu]+"s cost $"+@price$+" each."; -mes "How many "+$@name$[@menu]+"s would you like to claim?"; +mes getitemname(@name[@m])+"s cost $"+@price$+" each."; +mes "How many "+getitemname(@name[@m])+"s would you like to claim?"; mes "Maximum: "+@max+"."; input @quantity; - +mes "[Donation Girl]"; if(@quantity>@max) { - mes "[Donation Girl]"; - mes "Sorry, but you do not have enough to claim "+@quantity+" "+$@name$[@menu]+"s."; + mes "Sorry, but you do not have enough to claim "+@quantity+" "+getitemname(@name[@m])+"s."; next; goto L_CLAIM; } - if(!@quantity) { - mes "[Donation Girl]"; mes "You can't have 0 as an amount!"; next; goto L_CLAIM; } - -if (checkweight(@id,@quantity) == 0) { - mes "[Donation Girl]"; - mes "I'm sorry, but you cannot carry "+@quantity+" "+$@name$[@menu]+"s."; +if(!checkweight(@name[@m],@quantity)) { + mes "I'm sorry, but you cannot carry "+@quantity+" "+getitemname(@name[@m])+"s."; next; goto L_CLAIM; } +query_sql "SELECT "+@quantity+" * "+@price$, @total$; +mes "Are you sure you want to claim "+@quantity+" "+getitemname(@name[@m])+"s for $"+@total$+"?"; +next; +menu "No",L_CLAIM,"Yes",-; +query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total$+" WHERE `account_id` = "+getcharid(3); +logmes "Claimed "+@quantity+" "+getitemname(@name[@m])+"s"; +getitem @name[@m],@quantity; +mes "[Donation Girl]"; +mes "Thankyou for donating! We hope you enjoy your gift!"; +close; -query_sql "SELECT "+@quantity+" * "+@price$+"", @total$; -mes "Are you sure you want to claim "+@quantity+" "+$@name$[@menu]+"s for $"+@total$+"?"; +L_ZENY: +mes "[Donation Girl]"; +if(!$rate) { + mes "Sorry, we currently do not allow claiming Zeny."; + mes "Please go back and claim an item instead."; + next; + goto L_CLAIM; + } +query_sql "SELECT "+@value$+" * "+$rate, @maxzeny; +mes "Very well. You can claim as much as "+@maxzeny+"Z."; +mes "How much Zeny would you like to claim?"; +input @zeny; +mes "[Donation Girl]"; +if(@zeny>@maxzeny) { + mes "Sorry, but you do not have enough to claim "+@zeny+"Z."; + next; + goto L_CLAIM; + } +if(!@zeny) { + mes "You can't have 0 as an amount!"; + next; + goto L_CLAIM; + } +set @total, @zeny * $rate; +mes "Are you sure you want to claim "+@zeny+"Z for $"+@total+"?"; next; menu "No",L_CLAIM,"Yes",-; -query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total$+" WHERE `account_id` = '"+getcharid(3)+"'"; -getitem @id,@quantity; +query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total+" WHERE `account_id` = "+getcharid(3); +logmes "Claimed "+@zeny+" zenies"; +set Zeny, Zeny + @zeny; mes "[Donation Girl]"; mes "Thankyou for donating! We hope you enjoy your gift!"; close; @@ -149,65 +195,59 @@ close; L_STATS: mes "[Donation Girl]"; query_sql "SELECT IFNULL((SELECT SUM(amount) FROM `donate`),0)", @total$; -mes "Our fund is at a total of $"+@total$+""; +mes "Our fund is at a total of $"+@total$; next; menu "More info",L_INFO,"Make a claim",L_CHECK,"Statistics",L_STATS; -close; L_GM: mes "[GM Menu]"; mes "Hello GM!"; mes "What would you like to do?"; next; -menu "Add/Remove Donation",L_GM2,"Add/Remove Items",L_ITEM,"Test Script",L_START; -close; +query_sql "SHOW VARIABLES LIKE 'version'", @version, @valule$; +query_sql "SELECT '"+@valule$+"' >= '5.0.8'", @version; +menu "Add/Remove Donation",L_GM2,"Add/Remove Items",L_ITEM,"(Re)Set Exchange Rate",L_RATE,"Test Script",L_START; L_GM2: -menu "Add a donation",L_DONATE,"Remove a donation",L_REMOVE,"View all donations",L_VIEWALL; -close; +menu "Add a donation",L_DONATE,"Remove a donation",L_REMOVE,"View all donations",L_VIEWALL,"Return to main menu",L_GM; L_ITEM: menu "Add an item",L_NEWITEM,"Remove an item",L_DELITEM,"View all items",L_ALLITEMS,"Return to main menu",L_GM; -close; - L_NEWITEM: mes "[GM Menu]"; mes "Please enter the item name:"; input @itemname$; -query_sql "SELECT `id` FROM `item_db` WHERE `name_english` = '"+escape_sql(@itemname$)+"'", @iid; -query_sql "SELECT `id` FROM `donate_item_db` WHERE `name` = '"+escape_sql(@itemname$)+"'", @check; -if(@iid==0) goto L_INONE; +set @iid, 0; +query_sql "SELECT `id` FROM `item_db` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"' UNION SELECT `id` FROM `item_db2` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; +if(!@iid) goto L_INONE; +query_sql "SELECT 1 FROM `donate_item_db` WHERE `id` = "+@iid, @check; mes "[GM Menu]"; mes "Please enter the cost of each "+@itemname$+":"; input @cost$; -query_sql "SELECT "+escape_sql(@cost$)+" = 0", @invalid; -if(@invalid) goto L_ZERO; -query_sql "SELECT CAST('"+escape_sql(@cost$)+"' AS DECIMAL)", @cost$; +if(@version) query_sql "SELECT CAST('"+escape_sql(@cost$)+"' AS DECIMAL)", @cost$; +query_sql "SELECT '"+escape_sql(@cost$)+"' > 0", @valid; +if(!@valid) goto L_ZERO; mes "[GM Menu]"; mes "You have specified that donators can claim "+@itemname$+"s for $"+@cost$+" each."; mes "Would you like to continue?"; next; menu "No",L_ITEM,"Yes",-; -if(@check!=0) goto L_REPLACE; -query_sql "INSERT INTO `donate_item_db` VALUES ('"+@iid+"', '"+escape_sql(@itemname$)+"', '"+@cost$+"')"; -mes "[GM Menu]"; -mes "Item added successfully!"; -next; -menu "Add annother item",L_NEWITEM,"Remove an item",L_DELITEM,"View all items",L_ALLITEMS; -close; - -L_REPLACE: -mes "[GM Menu]"; -mes "Item "+@itemname$+" already exists in the database."; -mes "Would you like to replace it?"; -next; -menu "No",L_ITEM,"Yes",-; -query_sql "REPLACE INTO `donate_item_db` VALUES ('"+@iid+"', '"+@itemname$+"', '"+@cost$+"')"; mes "[GM Menu]"; -mes "Item replaced successfully!"; -next; -menu "Add annother item",L_NEWITEM,"Remove an item",L_DELITEM,"View all items",L_ALLITEMS; +if(!@check){ + query_sql "INSERT INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; + logmes "Added "+@itemname$+"s to list of claimable items"; + mes "Item added successfully!"; + } else { + mes "Item "+@itemname$+" already exists in the database."; + mes "Would you like to replace it?"; + next; + menu "No",L_ITEM,"Yes",-; + query_sql "REPLACE INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; + logmes "Changed the price of "+@itemname$+"s"; + mes "[GM Menu]"; + mes "Item replaced successfully!"; + } close; L_INONE: @@ -220,26 +260,26 @@ L_DELITEM: mes "[GM Menu]"; mes "Please enter the item name:"; input @itemname$; -query_sql "SELECT `id` FROM `donate_item_db` WHERE `name` = '"+escape_sql(@itemname$)+"'", @iid; -if(@iid==0) goto L_INONE; +set @iid, 0; +query_sql "SELECT `donate_item_db`.`id` FROM `donate_item_db` LEFT JOIN `item_db` ON `donate_item_db`.`id` = `item_db`.`id` LEFT JOIN `item_db2` ON `donate_item_db`.`id` = `item_db2`.`id` WHERE `item_db`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db`.`name_japanese` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; +if(!@iid) goto L_INONE; next; mes "[GM Menu]"; mes "You have specified to delete "+@itemname$+" from the database."; mes "Would you like to continue?"; next; menu "No",L_ITEM,"Yes",-; -query_sql "DELETE FROM `donate_item_db` WHERE `id` = '"+@iid+"'"; +query_sql "DELETE FROM `donate_item_db` WHERE `id` = "+@iid; +logmes "Deleted "+@itemname$+"s from list of claimable items"; mes "[GM Menu]"; mes "Item deleted successfully!"; -next; -menu "Add an item",L_NEWITEM,"Remove another item",L_DELITEM,"View all items",L_ALLITEMS; close; L_ALLITEMS: mes "[GM Menu]"; -query_sql "SELECT `name`,`price` FROM `donate_item_db` ORDER BY `name` ASC", @items$, @itemamount$; -for(set @i, 0; @i < getarraysize(@items$); set @i, @i + 1){ - mes ""+@items$[@i]+" - $"+@itemamount$[@i]+""; +query_sql "SELECT `id`,`price` FROM `donate_item_db` ORDER BY `id`", @items, @itemamount$; +for(set @i, 0; @i < getarraysize(@items); set @i, @i + 1){ + mes getitemname(@items[@i])+" - $"+@itemamount$[@i]; } next; goto L_GM; @@ -248,25 +288,27 @@ L_DONATE: mes "[GM Menu]"; mes "Please enter the donator's username:"; input @donator$; +set @aid, 0; query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; -if(@aid==0) goto L_NONE; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid+"", @donated$; +if(!@aid) goto L_NONE; +set @donated$, ""; +query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; query_sql "SELECT '"+@donated$+"' > 0", @donated; switch(@donated) { case 0: - mes ""+@donator$+" has not donated before."; + mes @donator$+" has not donated before."; break; case 1: - mes ""+@donator$+" has donated $"+@donated$+"."; + mes @donator$+" has donated $"+@donated$+"."; break; } next; mes "[GM Menu]"; -mes "Please enter the amount donated by "+@donator$+""; +mes "Please enter the amount donated by "+@donator$; input @donating$; -query_sql "SELECT "+escape_sql(@donating$)+" = 0", @invalid; -if(@invalid) goto L_ZERO; -query_sql "SELECT CAST('"+escape_sql(@donating$)+"' AS DECIMAL)", @donating$; +if(@version) query_sql "SELECT CAST('"+escape_sql(@donating$)+"' AS DECIMAL)", @donating$; +query_sql "SELECT '"+escape_sql(@donating$)+"' > 0", @valid; +if(!@valid) goto L_ZERO; mes "[GM Menu]"; mes "You have specified that "+@donator$+" has donated $"+@donating$+"."; mes "Would you like to continue?"; @@ -274,18 +316,18 @@ next; menu "No",L_GM,"Yes",-; switch(@donated) { case 0: - query_sql "INSERT INTO `donate` VALUES ('"+@aid+"', '"+@donating$+"', '0')"; + query_sql "INSERT INTO `donate` VALUES ("+@aid+", '"+@donating$+"', 0)"; break; case 1: - query_sql "UPDATE `donate` SET `amount` = `amount` + "+@donating$+" WHERE `account_id` = '"+@aid+"'"; + query_sql "UPDATE `donate` SET `amount` = `amount` + "+@donating$+" WHERE `account_id` = "+@aid; break; } -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid+"", @newdonated$; +logmes "Credited "+@donator$+" with $"+@donating$; +query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @newdonated$; mes "[GM Menu]"; mes "Donation added successfully!"; -mes ""+@donator$+" has donated a total of $"+@newdonated$+""; -next; -goto L_GM; +mes @donator$+" has donated a total of $"+@newdonated$; +close; L_ZERO: mes "[GM Menu]"; @@ -303,64 +345,72 @@ L_REMOVE: mes "[GM Menu]"; mes "Please enter the donator's username:"; input @donator$; +set @aid, 0; query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; -if(@aid==0) goto L_NONE; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid+"", @donated$; +if(!@aid) goto L_NONE; +query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; query_sql "SELECT '"+@donated$+"' > 0", @donated; - -if(@donated==0) { - query_sql "DELETE FROM `donate` WHERE `account_id` = '"+@aid+"'"; - mes ""+@donator$+" is not a donator and has been deleted from the donation database."; - goto L_GM; +mes "[GM Menu]"; +if(!@donated) { + query_sql "DELETE FROM `donate` WHERE `account_id` = "+@aid; + logmes "Deleted "+@donator$+" from donation database"; + mes @donator$+" is not a donator and has been deleted from the donation database."; + } else { + mes @donator$+" has donated $"+@donated$+"."; + next; + switch(select("Deduct an amount from "+@donator$,"Remove "+@donator$+" from the donation database")){ + mes "[GM Menu]"; + case 1: + mes "Please enter the amount "+@donator$+" is to be deducted by:"; + input @deduct$; + if(@version) query_sql "SELECT CAST('"+escape_sql(@deduct$)+"' AS DECIMAL)", @deduct$; + query_sql "SELECT '"+escape_sql(@deduct$)+"' > 0", @valid; + if(!@valid) goto L_ZERO; + mes "[GM Menu]"; + mes "You have specified that "+@donator$+" is to be deducted by $"+@deduct$+"."; + mes "Would you like to continue?"; + next; + menu "No",L_GM,"Yes",-; + query_sql "UPDATE `donate` SET `amount` = `amount` - "+@deduct$+" WHERE `account_id` = "+@aid; + query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @afterdeduct$; + logmes "Deducted "+@deduct$+" from "+@donator$; + mes "[GM Menu]"; + mes "Donation deducted successfully!"; + mes @donator$+" has donated a total of $"+@afterdeduct$; + break; + case 2: + mes "You have specified to remove "+@donator$+" from the donation database."; + mes "Would you like to continue?"; + next; + menu "No",L_GM,"Yes",-; + query_sql "DELETE FROM `donate` WHERE `account_id` = "+@aid; + logmes "Deleted "+@donator$+" from donation database"; + mes "[GM Menu]"; + mes "Donator deleted successfully!"; + break; + } } - -mes ""+@donator$+" has donated $"+@donated$+"."; -next; -menu "Deduct an amount from "+@donator$+"",L_MINUS,"Remove "+@donator$+" from the donation database",L_DELETE; close; -L_MINUS: -mes "[GM Menu]"; -mes "Please enter the amount "+@donator$+" is to be deducted by:"; -input @deduct$; -query_sql "SELECT "+escape_sql(@deduct$)+" = 0", @invalid; -if(@invalid) goto L_ZERO; -query_sql "SELECT CAST('"+escape_sql(@deduct$)+"' AS DECIMAL)", @deduct$; -mes "[GM Menu]"; -mes "You have specified that "+@donator$+" is to be deducted by $"+@deduct$+"."; -mes "Would you like to continue?"; -next; -menu "No",L_GM,"Yes",-; -query_sql "UPDATE `donate` SET `amount` = `amount` - "+@deduct$+" WHERE `account_id` = '"+@aid+"'"; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid+"", @afterdeduct$; -mes "[GM Menu]"; -mes "Donation deducted successfully!"; -mes ""+@donator$+" has donated a total of $"+@afterdeduct$+""; -next; -goto L_GM; - -L_DELETE: -mes "[GM Menu]"; -mes "You have specified to remove "+@donator$+" from the donation database."; -mes "Would you like to continue?"; -next; -menu "No",L_GM,"Yes",-; -query_sql "DELETE FROM `donate` WHERE `account_id` = '"+@aid+"'"; -mes "[GM Menu]"; -mes "Donator deleted successfully!"; -next; -goto L_GM; - L_VIEWALL: mes "[GM Menu]"; query_sql "SELECT `account_id`,`amount` FROM `donate` ORDER BY `amount` DESC", @donatoraid, @donatedamount$; for(set @i, 0; @i < getarraysize(@donatoraid); set @i, @i + 1){ - query_sql "SELECT `userid` FROM `login` WHERE `account_id` = '"+@donatoraid[@i]+"'", @donateruserid$; + query_sql "SELECT `userid` FROM `login` WHERE `account_id` = "+@donatoraid[@i], @donateruserid$; for(set @j, 0; @j < getarraysize(@donateruserid$); set @j, @j + 1){ - mes ""+@donateruserid$[@j]+" - "+@donatedamount$[@i]+""; + mes @donateruserid$[@j]+" - "+@donatedamount$[@i]; } } next; goto L_GM; +L_RATE: +mes "[GM Menu]"; +if($rate) mes "$1 is currently worth "+$rate+"Z."; +mes "How much Zeny is $1 worth?"; +input $rate; +mes "[GM Menu]"; +mes "The value of $1 successfully changed to "+$rate+"Z."; +next; +goto L_GM; }
\ No newline at end of file diff --git a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql index 9315228a9..6838297bc 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql +++ b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql @@ -1,6 +1,6 @@ CREATE TABLE `donate` ( `account_id` int(11) unsigned NOT NULL, - `amount` float(5,2) unsigned NOT NULL, - `claimed` float(5,2) unsigned NOT NULL, - PRIMARY KEY (`account_id`,`amount`) + `amount` float(9,2) unsigned NOT NULL, + `claimed` float(9,2) unsigned NOT NULL, + PRIMARY KEY (`account_id`) ) TYPE=MyISAM;
\ No newline at end of file diff --git a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql index 34519324b..2b3caf104 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql +++ b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql @@ -1,14 +1,13 @@ CREATE TABLE `donate_item_db` ( `id` smallint(5) unsigned NOT NULL default '0', - `name` varchar(30) NOT NULL default '', - `price` float(5,2) unsigned NOT NULL, + `price` float(9,2) unsigned NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM; -#(ID,'Name',Price); -REPLACE INTO `donate_item_db` VALUES (601,'Fly_Wing',0.06); -REPLACE INTO `donate_item_db` VALUES (602,'Butterfly_Wing',0.33); -REPLACE INTO `donate_item_db` VALUES (603,'Old_Blue_Box',10); -REPLACE INTO `donate_item_db` VALUES (604,'Dead_Branch',0.05); -REPLACE INTO `donate_item_db` VALUES (605,'Anodyne',2); -REPLACE INTO `donate_item_db` VALUES (606,'Aloevera',2);
\ No newline at end of file +#(ID,Price); +REPLACE INTO `donate_item_db` VALUES (601,0.06); #Wing_Of_Fly +REPLACE INTO `donate_item_db` VALUES (602,0.33); #Wing_Of_Butterfly +REPLACE INTO `donate_item_db` VALUES (603,10); #Old_Blue_Box +REPLACE INTO `donate_item_db` VALUES (604,0.05); #Branch_Of_Dead_Tree +REPLACE INTO `donate_item_db` VALUES (605,2); #Anodyne +REPLACE INTO `donate_item_db` VALUES (606,2); #Aloebera
\ No newline at end of file diff --git a/npc/custom/eAAC_Scripts/Kafra_Express_files.conf b/npc/custom/eAAC_Scripts/Kafra_Express_files.conf index 2244e8eb4..1364e7479 100644 --- a/npc/custom/eAAC_Scripts/Kafra_Express_files.conf +++ b/npc/custom/eAAC_Scripts/Kafra_Express_files.conf @@ -1,10 +1,6 @@ //|-----------------------------------------------------------------| //|- English Athena Approved Certified Script: Kafra Express Set -| //|-----------------------------------------------------------------| -//| Under this is the global_functions.txt needed for this set to work. -//| Note that if you enable this, you will have to go to the scripts_main.conf -//| and disable the original one. -npc: npc/custom/eAAC_Scripts/kafraExpress/global_functionsKE.txt //| //| The configuration file. npc: npc/custom/eAAC_Scripts/kafraExpress/config.txt diff --git a/npc/custom/eAAC_Scripts/banker.txt b/npc/custom/eAAC_Scripts/banker.txt index d0d29b1f1..8ed9cf87b 100644 --- a/npc/custom/eAAC_Scripts/banker.txt +++ b/npc/custom/eAAC_Scripts/banker.txt @@ -1,21 +1,20 @@ -//| ~~~~~~~~~~~ Information ~~~~~~~~~~~ -//| | This is a simple banking npc, | -//| | which uses coins to store zeny | -//| | instead of using those global | -//| | variables :P | -//| | | -//| | It's fully customizable, you | -//| | can exchange the coin ID used | -//| | at will, it won't affect the | -//| | script whatsoever =3 | -//| | | -//| | The prices can also be set, the | -//| | way you like the most, as they | -//| | won't affect the script either | -//| | | -//| | No db/client files modification | -//| | needed, just "Plug&Play" ;P | -//| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +//| ~~~~~~~~~~~ Information ~~~~~~~~~~~~~ +//| | This is a simple banking npc, | +//| | instead of using those global | +//| | variables :P | +//| | | +//| | It's fully customizable, you | +//| | can exchange the coin ID used | +//| | at will, it won't affect the | +//| | script whatsoever =3 | +//| | | +//| | The prices can also be set, the | +//| | way you like the most, as they | +//| | won't affect the script either | +//| | | +//| | No db/client files modification | +//| | needed, just "Plug&Play" ;P | +//| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //| Revision: //| v.1.0: Released script. No problems or bugs found, at least :P @@ -66,6 +65,11 @@ //| at the beginning of the Mix function, to prevent old values //| to be used as a payout. +//| Revision: +//| v.2.8.1 Removed the 'conflicting' switch with variables as case options, +//| and moved the color names to the function, so now it executes once. +//| Did other optimizations and cleanups all around the code. Meh. + //| Upcomming possible updates: //| v.3.0: Adding a refining system, so you can gather ore and the likes //| to make your own coins. They will have a failure chance @@ -73,97 +77,69 @@ //| coin you wish, a mini furnace, an anvil depending on what //| You're crafting, and a hammer according to it. -//| Copyright © 2006 erKURITA. All Rights Reserved +//| Copyright © 2006-2007 erKURITA. All Rights Reserved prontera,155,188,3 script Zacariath Madhat 872,{ -//|~~~~~~~~~ Settings of the NPC: ~~~~~~~~~~~~~~~~~ -set @npcname$,"^999999[Zach]^000000"; //| -set @bronzeprice,10000; //| -set @silverprice,100000; //| -set @goldprice,1000000; //| -set @mithrilprice,10000000; //| -set @bronzecoinid,673; //| -set @silvercoinid,677; //| -set @goldcoinid,671; //| -set @mithrilcoinid,674; //| -set @minvalue,@bronzeprice; //| -set @name1$,getitemname(@bronzecoinid); //| -set @name2$,getitemname(@silvercoinid); //| -set @name3$,getitemname(@goldcoinid); //| -set @name4$,getitemname(@mithrilcoinid); //| -set @MAX_ZENY,1000000000; //| -//|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -mes @npcname$; -mes "Hi "+strcharinfo(0)+", I'm this town's banker"; -mes "I can allow you to exchange your zeny into useful and handy coins, which you can use to make trades between players, or just save them"; -next; -mes @npcname$; -mes "^996600"+@name1$+"s^000000 are worth "+@bronzeprice+"z, ^999999"+@name2$+"s^000000 are worth "+@silverprice+"z, ^FFCC00"+@name3$+"s^000000 "+@goldprice+"z, ^CCCCCC"+@name4$+"s^000000 are worth "+@mithrilprice+"z"; -next; -goto L_Menu; - -L_Menu: -mes @npcname$; -mes "What do you want to do then?"; -menu "Exchange my coins into zeny",L_CoinZeny,"Exchange my zeny into coins",L_ZenyCoin,"Nothing for now, sorry",L_End; - -//| Here starts the Coin to Zeny Exchange - -L_CoinZeny: +//|~~~~~~~~~~~~~ Settings of the NPC: ~~~~~~~~~~~~~~~~~ + set @npcname$,"^999999[Zach]^000000"; //| + set @bronzeprice,10000; //| + set @silverprice,100000; //| + set @goldprice,1000000; //| + set @mithrilprice,10000000; //| + set @bronzecoinid,673; //| + set @silvercoinid,677; //| + set @goldcoinid,671; //| + set @mithrilcoinid,674; //| + set @minvalue,@bronzeprice; //| + set @name1$,getitemname(@bronzecoinid); //| + set @name2$,getitemname(@silvercoinid); //| + set @name3$,getitemname(@goldcoinid); //| + set @name4$,getitemname(@mithrilcoinid); //| + set @MAX_ZENY,1000000000; //| +//|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + mes @npcname$; + mes "Hi "+strcharinfo(0)+", I'm this town's banker"; + mes "I can allow you to exchange your zeny into useful and handy coins, which you can use to make trades between players, or just save them"; next; mes @npcname$; - mes "First than anything, what kind of coins are you going to exchange?"; - menu @name1$+"s",L_Bronze,@name2$+"s",L_Silver,@name3$+"s",L_Gold,@name4$+"s",L_Mithril,"None for now",L_Menu; - - - L_Bronze: - callsub L_Coincheckout,@bronzecoinid,@bronzeprice; - goto L_CoinZeny; - - L_Silver: - callsub L_Coincheckout,@silvercoinid,@silverprice; - goto L_CoinZeny; - - L_Gold: - callsub L_Coincheckout,@goldcoinid,@goldprice; - goto L_CoinZeny; - - L_Mithril: - callsub L_Coincheckout,@mithrilcoinid,@mithrilprice; - goto L_CoinZeny; - -L_Coincheckout: - -switch(getarg(0)) { - case @bronzecoinid: - set @coinname$,"^996600"+getitemname(getarg(0))+"^000000"; - break; - case @silvercoinid: - set @coinname$,"^999999"+getitemname(getarg(0))+"^000000"; - break; - case @goldcoinid: - set @coinname$,"^FFCC00"+getitemname(getarg(0))+"^000000"; - break; - case @mithrilcoinid: - set @coinname$,"^CCCCCC"+getitemname(getarg(0))+"^000000"; - break; - } - + mes "^996600"+@name1$+"s^000000 are worth "+@bronzeprice+"z, ^999999"+@name2$+"s^000000 are worth "+@silverprice+"z, ^FFCC00"+@name3$+"s^000000 "+@goldprice+"z, ^CCCCCC"+@name4$+"s^000000 are worth "+@mithrilprice+"z"; + next; + goto L_Menu; -L_PreInputing: -next; + L_Menu: mes @npcname$; - mes "Let's see, how many coins do you want to exchange?"; - next; - goto L_Inputing; + mes "What do you want to do then?"; + menu "Exchange my coins into zeny",-,"Exchange my zeny into coins",L_ZenyCoin,"Nothing for now, sorry",L_End; +//| Here starts the Coin to Zeny Exchange + L_CoinZeny: + next; + mes @npcname$; + mes "First than anything, what kind of coins are you going to exchange?"; + menu @name1$+"s",L_Bronze,@name2$+"s",L_Silver,@name3$+"s",L_Gold,@name4$+"s",L_Mithril,"None for now",L_Menu; + L_Bronze: + callsub L_Coincheckout,@bronzecoinid,@bronzeprice,"^996600"; + goto L_CoinZeny; + L_Silver: + callsub L_Coincheckout,@silvercoinid,@silverprice,"^999999"; + goto L_CoinZeny; + L_Gold: + callsub L_Coincheckout,@goldcoinid,@goldprice,"^FFCC00"; + goto L_CoinZeny; + L_Mithril: + callsub L_Coincheckout,@mithrilcoinid,@mithrilprice,"^CCCCCC"; + goto L_CoinZeny; + L_Coincheckout: + set @coinname$,getarg(2)+getitemname(getarg(0))+"^000000"; + next; + mes @npcname$; + mes "Let's see, how many coins do you want to exchange?"; + next; L_Inputing: input @coinamount; - - if (@coinamount == 0) { + if (@coinamount <= 0) { mes @npcname$; mes "You didn't input any amount, please retry"; next; @@ -177,15 +153,12 @@ next; mes @npcname$; mes "I'm sorry, the quantity you inputted gives a bigger zeny amount than the max allowed. I can't allow this."; next; - goto L_Menu - } else - + goto L_Menu; + } next; mes @npcname$; mes "So, you want to exchange "+@coinamount+" "+@coinname$+" ?"; - menu "Yes, I want to exchange this much",L_Proceed,"No, I want to exchange something else",L_CoinZeny,"No, I want to input another number",L_Inputing,"No, I don't want to exchange anything",L_Menu; - - L_Proceed: + menu "Yes, I want to exchange this much",-,"No, I want to exchange something else",L_CoinZeny,"No, I want to input another number",L_Inputing,"No, I dont want to exchange anything",L_Menu; next; set @price,getarg(1)*@coinamount; set Zeny,Zeny+@price; @@ -197,265 +170,254 @@ next; //| Here starts the Zeny to Coin exchange. -L_ZenyCoin: - next; - if (MaxWeight*50/100 < Weight) { - if (MaxWeight*90/100 < Weight) { + L_ZenyCoin: + next; + if (MaxWeight*50/100 < Weight) { + if (MaxWeight*90/100 < Weight) { + mes @npcname$; + mes "Sorry but you have more than 90% weight. Your coins might drop. I can't give you anything."; + next; + goto L_Menu; + } mes @npcname$; - mes "Sorry but you have more than 90% weight. Your coins might drop. I can't give you anything."; - next; - goto L_Menu; - } else + mes "You have 50% or more weight, do you still want to continue?"; + menu "Yes",L_ContinueZenyCoin,"No, thanks",L_Menu; + } + L_ContinueZenyCoin: mes @npcname$; - mes "You have 50% or more weight, do you still want to continue?"; - menu "Yes",L_ContinueZenyCoin,"No, thanks",L_Menu; - } -L_ContinueZenyCoin: - mes @npcname$; - mes "First, how much zeny do you want to exchange"; - callsub L_Inputingzeny; - callsub L_Zenycoins; - next; - mes @npcname$; - mes "You can have, with "+@zenyamount+":"; - mes "^996600"+@bronzezeny+"^000000 "+@name1$+"s"; - mes "^999999"+@silverzeny+"^000000 "+@name2$+"s"; - mes "^FFCC00"+@goldzeny+"^000000 "+@name3$+"s"; - mes "or"; - mes "^CCCCCC"+@mithrilzeny+"^000000 "+@name4$+"s"; - next; - if (@zenyamount < @minvalue) goto L_Moremoney; - goto L_ZenyCoin2; - - L_ZenyCoin2: + mes "First, how much zeny do you want to exchange"; + callsub L_Inputingzeny; + set @bronzezeny,@zenyamount/@bronzeprice; + set @silverzeny,@zenyamount/@silverprice; + set @goldzeny,@zenyamount/@goldprice; + set @mithrilzeny,@zenyamount/@mithrilprice; + next; mes @npcname$; - mes "Which coins do you want? Or do you want a mix of them?"; - menu "I want the "+@name1$+"s",L_Bronzes,"I want the "+@name2$+"s",L_Silvers,"I want the "+@name3$+"s",L_Golds,"I want the "+@name4$+"s",L_Mithrils,"I want a mix of them",L_Mix,"Nothing for now, sorry",L_Menu; + mes "You can have, with "+@zenyamount+":"; + mes "^996600"+@bronzezeny+"^000000 "+@name1$+"s"; + mes "^999999"+@silverzeny+"^000000 "+@name2$+"s"; + mes "^FFCC00"+@goldzeny+"^000000 "+@name3$+"s"; + mes "or"; + mes "^CCCCCC"+@mithrilzeny+"^000000 "+@name4$+"s"; + next; + if (@zenyamount < @minvalue) goto L_Moremoney; + goto L_ZenyCoin2; - L_Bronzes: + L_ZenyCoin2: + mes @npcname$; + mes "Which coins do you want? Or do you want a mix of them?"; + menu "I want the "+@name1$+"s",-,"I want the "+@name2$+"s",L_Silvers,"I want the "+@name3$+"s",L_Golds,"I want the "+@name4$+"s",L_Mithrils,"I want a mix of them",L_Mix,"Nothing for now, sorry",L_Menu; if (@bronzezeny == 0) goto L_Moremoney; callsub L_Zenycheckout,@bronzecoinid,@bronzeprice,@bronzezeny; goto L_Menu; - L_Silvers: - if (@silverzeny == 0) goto L_Moremoney; - callsub L_Zenycheckout,@silvercoinid,@silverprice,@silverzeny; - goto L_Menu; + L_Silvers: + if (@silverzeny == 0) goto L_Moremoney; + callsub L_Zenycheckout,@silvercoinid,@silverprice,@silverzeny; + goto L_Menu; - L_Golds: - if (@goldzeny == 0) goto L_Moremoney; - callsub L_Zenycheckout,@goldcoinid,@goldprice,@goldzeny; - goto L_Menu; + L_Golds: + if (@goldzeny == 0) goto L_Moremoney; + callsub L_Zenycheckout,@goldcoinid,@goldprice,@goldzeny; + goto L_Menu; - L_Mithrils: - if (@mithrilzeny == 0) goto L_Moremoney; - callsub L_Zenycheckout,@mithrilcoinid,@mithrilprice,@mithrilzeny; - goto L_Menu; + L_Mithrils: + if (@mithrilzeny == 0) goto L_Moremoney; + callsub L_Zenycheckout,@mithrilcoinid,@mithrilprice,@mithrilzeny; + goto L_Menu; -L_Zenycheckout: - next; - if (((getiteminfo(getarg(0),6))*getarg(2)) > (MaxWeight-Weight)) { - mes @npcname$; - mes "Sorry, your max weight does not allow me to give you this much of zeny coins"; - mes "Either choose another type of coins or a lower quantity, thanks"; - close; - } - if (getarg(2) > 30000) { + L_Zenycheckout: + next; + if (((getiteminfo(getarg(0),6))*getarg(2)) > (MaxWeight-Weight)) { + mes @npcname$; + mes "Sorry, your max weight does not allow me to give you this much of zeny coins"; + mes "Either choose another type of coins or a lower quantity, thanks"; + close; + } + if (getarg(2) > 30000) { + mes @npcname$; + mes "Sorry, I can't give you more than 30,000 ea"; + mes "Pick another coin type"; + close; + } + set @itemid,getarg(0); + set @pricea,getarg(1)*getarg(2); + getitem @itemid,getarg(2); + set Zeny,Zeny-@pricea; mes @npcname$; - mes "Sorry, I can't give you more than 30,000 ea"; - mes "Pick another coin type"; - close; - } - set @itemid,getarg(0); - set @pricea,getarg(1)*getarg(2); - getitem @itemid,getarg(2); - set Zeny,Zeny-@pricea; - mes @npcname$; - mes "There you go, here's your coins"; - next; - return; - -L_Zenycoins: - set @bronzezeny,@zenyamount/@bronzeprice; - set @silverzeny,@zenyamount/@silverprice; - set @goldzeny,@zenyamount/@goldprice; - set @mithrilzeny,@zenyamount/@mithrilprice; - return; - -L_Inputingzeny: + mes "There you go, here's your coins"; + next; + return; + L_Inputingzeny: + input @zenyamount; + if (Zeny == 0) { + mes @npcname$; + mes "You don't have any Zeny left. I can't do anything. Get some Zeny first"; + next; + goto L_Menu; + } else if (@zenyamount <= 0) { + mes @npcname$; + mes "You didn't input any amount, please retry"; + next; + goto L_Inputingzeny; + } else if (@zenyamount > Zeny) { + mes @npcname$; + mes "The inputted zeny amount is bigger than your actual zeny amount"; + mes "Please re-entry another amount"; + next; + goto L_Inputingzeny; + } else return; - input @zenyamount; - if (Zeny == 0) { +//| Mix function + L_Mix: + set @totalzeny,0; + set @totalcoins,0; + set @bronzecoins,0; + set @silvercoins,0; + set @goldcoins,0; + set @mithrilcoins,0; + next; mes @npcname$; - mes "You don't have any Zeny left. I can't do anything. Get some Zeny first"; + mes "Ok, let's start with ^996600"+@name1$+"s^000000"; next; - goto L_Menu; - } else if (@zenyamount == 0) { mes @npcname$; - mes "You didn't input any amount, please retry"; + mes "How many coins do you want?"; + input @bronzecoins; next; - goto L_Inputingzeny; - } else if (@zenyamount > Zeny) { + set @totalzeny,@bronzecoins*@bronzeprice; + set @totalcoins,@bronzecoins; + mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; + mes "Coins:"; + mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; + mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; + if (@totalzeny > @zenyamount || @totalzeny < 0) { + mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + mes "Zeny Left: "+(@zenyamount-@totalzeny); + goto L_Overzeny; + } + mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; + mes "Zeny Left: "+(@zenyamount-@totalzeny); + next; + if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; mes @npcname$; - mes "The inputted zeny amount is bigger than your actual zeny amount"; - mes "Please re-entry another amount"; + mes "Is this enough or do you want more?"; + menu "It's enough, thanks",L_Payoff,"No, I want some more",-; next; - goto L_Inputingzeny; - - } else return; - -//| Other labels - -L_Moremoney: - mes @npcname$; - mes "You need to get more zeny, I can't give you anything with "+@zenyamount+"z, sorry"; - next; - goto L_Menu; - -L_End: - next; - mes @npcname$; - mes "Good to see you and hope to see you again. Bye"; - close; - - -//| Mix function - -L_Mix: - set @totalzeny,0; - set @totalcoins,0; - set @bronzecoins,0; - set @silvercoins,0; - set @goldcoins,0; - set @mithrilcoins,0; - next; - mes @npcname$; - mes "Ok, let's start with ^996600"+@name1$+"s^000000"; - next; - mes @npcname$; - mes "How many coins do you want?"; - input @bronzecoins; - next; - set @totalzeny,@bronzecoins*@bronzeprice; - set @totalcoins,@bronzecoins; - mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; - mes "Coins:"; - mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; - mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; - if (@totalzeny > @zenyamount || @totalzeny < 0) { - mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + mes @npcname$; + mes "Now ^999999"+@name2$+"s^000000. How many coins do you want?"; + next; + input @silvercoins; + next; + set @totalzeny,@totalzeny+@silvercoins*@silverprice; + set @totalcoins,@totalcoins+@silvercoins; + mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; + mes "Coins:"; + mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; + mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; + mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; + if (@totalzeny > @zenyamount || @totalzeny < 0) { + mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + mes "Zeny Left: "+(@zenyamount-@totalzeny); + goto L_Overzeny; + } + mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; mes "Zeny Left: "+(@zenyamount-@totalzeny); - goto L_Overzeny; - } else - mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; - mes "Zeny Left: "+(@zenyamount-@totalzeny); - next; - if (@totalzeny > @zenyamount || @totalzeny < 0) - mes @npcname$; - mes "Is this enough or do you want more?"; - menu "It's enough, thanks",L_Payoff,"No, I want some more",-; - next; - mes @npcname$; - mes "Now ^999999"+@name2$+"s^000000. How many coins do you want?"; - next; - input @silvercoins; - next; - set @totalzeny,@bronzecoins*@bronzeprice+@silvercoins*@silverprice; - set @totalcoins,@bronzecoins+@silvercoins; - mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; - mes "Coins:"; - mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; - mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; - mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; - if (@totalzeny > @zenyamount || @totalzeny < 0) { - mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + next; + if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; + mes @npcname$; + mes "Is this enough or do you want more?"; + menu "It's enough, thanks",L_Payoff,"No, I want some more",-; + next; + mes @npcname$; + mes "Now ^FFCC00"+@name3$+"s^000000. How many coins do you want?"; + input @goldcoins; + next; + set @totalzeny,@totalzeny+@goldcoins*@goldprice; + set @totalcoins,@totalcoins+@goldcoins; + mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; + mes "Coins:"; + mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; + mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; + mes " ^FFCC00"+@name3$+"s^000000: "+@goldcoins+" ^CC0000"+@goldcoins*@goldprice+"^000000"; + mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; + if (@totalzeny > @zenyamount || @totalzeny < 0) { + mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + mes "Zeny Left: "+(@zenyamount-@totalzeny); + goto L_Overzeny; + } + mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; mes "Zeny Left: "+(@zenyamount-@totalzeny); - goto L_Overzeny; - } else - mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; - mes "Zeny Left: "+(@zenyamount-@totalzeny); - next; - if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; - mes @npcname$; - mes "Is this enough or do you want more?"; - menu "It's enough, thanks",L_Payoff,"No, I want some more",-; - next; - mes @npcname$; - mes "Now ^FFCC00"+@name3$+"s^000000. How many coins do you want?"; - input @goldcoins; - next; - set @totalzeny,@bronzecoins*@bronzeprice+@silvercoins*@silverprice+@goldcoins*@goldprice; - set @totalcoins,@bronzecoins+@silvercoins+@goldcoins; - mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; - mes "Coins:"; - mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; - mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; - mes " ^FFCC00"+@name3$+"s^000000: "+@goldcoins+" ^CC0000"+@goldcoins*@goldprice+"^000000"; - mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; - if (@totalzeny > @zenyamount || @totalzeny < 0) { - mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + next; + if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; + mes @npcname$; + mes "Is this enough or do you want more?"; + menu "It's enough, thanks",L_Payoff,"No, I want some more",-; + next; + mes @npcname$; + mes "Now ^CCCCCC"+@name4$+"s^000000. How many coins do you want?"; + input @mithrilcoins; + next; + set @totalzeny,@totalzeny+@mithrilcoins*@mithrilprice; + set @totalcoins,@totalcoins+@mithrilcoins; + mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; + mes "Coins:"; + mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; + mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; + mes " ^FFCC00"+@name3$+"s^000000: "+@goldcoins+" ^CC0000"+@goldcoins*@goldprice+"^000000"; + mes " ^CCCCCC"+@name4$+"s^000000: "+@mithrilcoins+" ^CC0000"+@mithrilcoins*@mithrilprice+"^000000"; + mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; + if (@totalzeny > @zenyamount || @totalzeny < 0) { + mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; + mes "Zeny Left: "+(@zenyamount-@totalzeny); + goto L_Overzeny; + } + mes "TOTAL: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; mes "Zeny Left: "+(@zenyamount-@totalzeny); - goto L_Overzeny; - } else - mes "TOTAL Zeny: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; - mes "Zeny Left: "+(@zenyamount-@totalzeny); - next; - if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; - mes @npcname$; - mes "Is this enough or do you want more?"; - menu "It's enough, thanks",L_Payoff,"No, I want some more",-; - next; - mes @npcname$; - mes "Now ^CCCCCC"+@name4$+"s^000000. How many coins do you want?"; - input @mithrilcoins; - next; - set @totalzeny,@bronzecoins*@bronzeprice+@silvercoins*@silverprice+@goldcoins*@goldprice+@mithrilcoins*@mithrilprice; - set @totalcoins,@bronzecoins+@silvercoins+@goldcoins+@mithrilcoins; - mes "Zeny Amount Inputted: ^000066"+@zenyamount+"^000000"; - mes "Coins:"; - mes " ^996600"+@name1$+"s^000000: "+@bronzecoins+" ^CC0000"+@bronzecoins*@bronzeprice+"^000000"; - mes " ^999999"+@name2$+"s^000000: "+@silvercoins+" ^CC0000"+@silvercoins*@silverprice+"^000000"; - mes " ^FFCC00"+@name3$+"s^000000: "+@goldcoins+" ^CC0000"+@goldcoins*@goldprice+"^000000"; - mes " ^CCCCCC"+@name4$+"s^000000: "+@mithrilcoins+" ^CC0000"+@mithrilcoins*@mithrilprice+"^000000"; - mes "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯"; - if (@totalzeny > @zenyamount || @totalzeny < 0) { - mes "TOTAL Zeny: "+@totalcoins+" - ^CC0000"+@totalzeny+"^000000"; - mes "Zeny Left: "+(@zenyamount-@totalzeny); - goto L_Overzeny; - } else - mes "TOTAL: "+@totalcoins+" ^00CC00"+@totalzeny+"^000000"; - mes "Zeny Left: "+(@zenyamount-@totalzeny); - next; - if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; - mes @npcname$; - mes "Is this ok?: "+@bronzecoins+" "+@name1$+"s, "+@silvercoins+" "+@name2$+"s, "+@goldcoins+" "+@name3$+"s, "+@mithrilcoins+" "+@name4$+"s, for a total amount of "+@totalzeny; - menu "Yes, it's ok",L_Payoff,"No, I want to re-intro them",L_Mix,"Sorry, I don't want anything",L_Menu; + next; + if (@totalzeny > @zenyamount || @totalzeny < 0) goto L_Overzeny; + mes @npcname$; + mes "Is this ok?: "+@bronzecoins+" "+@name1$+"s, "+@silvercoins+" "+@name2$+"s, "+@goldcoins+" "+@name3$+"s, "+@mithrilcoins+" "+@name4$+"s, for a total amount of "+@totalzeny; + menu "Yes, it's ok",-,"No, I want to re-intro them",L_Mix,"Sorry, I dont want anything",L_Menu; -L_Payoff: - next; - if (@zenyamount > Zeny) goto L_Overzeny; - set Zeny,Zeny-@totalzeny; - getitem @bronzecoinid,@bronzecoins; - getitem @silvercoinid,@silvercoins; - getitem @goldcoinid,@goldcoins; - getitem @mithrilcoinid,@mithrilcoins; - mes @npcname$; - mes "There you go, here's your coins"; - next; - set @bronzecoins,0; - set @silvercoins,0; - set @goldcoins,0; - set @mithrilcoins,0; - goto L_End; + L_Payoff: + next; + if (@zenyamount > Zeny) goto L_Overzeny; + set Zeny,Zeny-@totalzeny; + getitem @bronzecoinid,@bronzecoins; + getitem @silvercoinid,@silvercoins; + getitem @goldcoinid,@goldcoins; + getitem @mithrilcoinid,@mithrilcoins; + mes @npcname$; + mes "There you go, here's your coins"; + next; + set @bronzecoins,0; + set @silvercoins,0; + set @goldcoins,0; + set @mithrilcoins,0; + goto L_End; -L_Overzeny: - next; - mes @npcname$; - mes "Sorry, I can't do anything else. Either the sum of all the coins you inputted is bigger than the zeny amount inputted, or the inputted amout of zeny is bigger that your total Zeny. Please retry."; - next; - goto L_Menu; + L_Overzeny: + next; + mes @npcname$; + mes "Sorry, I can't do anything else. Either the sum of all the coins you inputted is bigger than the zeny amount inputted, or the inputted amout of zeny is bigger that your total Zeny. Please retry."; + next; + goto L_Menu; -OnInit: -setitemscript 671,"{}"; -end; +//| Other labels + + L_Moremoney: + mes @npcname$; + mes "You need to get more zeny, I can't give you anything with "+@zenyamount+"z, sorry"; + next; + goto L_Menu; + + L_End: + next; + mes @npcname$; + mes "Good to see you and hope to see you again. Bye"; + close; + + OnInit: + setitemscript 671,"{}"; + end; }
\ No newline at end of file diff --git a/npc/custom/eAAC_Scripts/disguiser.txt b/npc/custom/eAAC_Scripts/disguiser.txt deleted file mode 100644 index 808610484..000000000 --- a/npc/custom/eAAC_Scripts/disguiser.txt +++ /dev/null @@ -1,179 +0,0 @@ -//===== eAthena Script ======================================= -//= Disguiser Quesr -//===== By: ================================================== -//= PalasX (http://cashaan.dontexist.org) -//===== Current Version: ===================================== -//= v1.20 Unified -//===== Compatible With: ===================================== -//= SVN 5690+ (getmonsterinfo) -//===== Description: ========================================= -//= Baphomet disguises you if you find all his brothers. -//===== Additional Comments: ================================= -//= Gotta find them all in order -//= Dynamically edits item 2614(eye of dullahan) with -//= setitemscript 2614,"{bonus bdisguise,var_disguise;}"; -//= so your SVN better support it -//= Uses GetMonsterInfo to pull monster names from server, but -//= without sql_query, the mob IDs are set statically -//= Went crazy with the functions, the script is TINY now :) -//============================================================ - -////////////////////////// -//Places all of our NPCs// -////////////////////////// -prt_fild05,277,226,5 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",0,quest_disguise; -Close; -} - -moc_fild10,34,283,4 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",1,quest_disguise; -close; -} - -gef_fild00,97,123,4 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",2,quest_disguise; -close; -} - -pay_fild01,369,305,4 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",3,quest_disguise; -close; -} - -pay_fild03,313,40,4 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",4,quest_disguise; -close; -} - -prt_fild08,362,185,4 script Dullahan Master 736,{ - callfunc "PXC_Disguiser",5,quest_disguise; - close; - - -////////////////////////// -// edits the item used /// -////////////////////////// -OnInit: - //EDIT EYE OF DULLAHAN - setitemscript 2614,"{ bonus bdisguise,var_disguise; }"; - end; -} - - - - - -////////////////////////// -// Function. Takes: -// INTEGER, the order number that the bapho should be visited -// VARIABLE, the quest progression variable quest_disguise. may be changed if conflicts occur -// -// Puts: -// Everything the NPC does. If you are at the right one, increase your order variable, if not, tell you where to head next on the list, when you finish, offer you to change ring properties. -// Whenever you don't have a ring, the script will push one on you in ALL instances (wrong NPC, right NPC, and done quest). -////////////////////////// - -function script PXC_Disguiser { - - setarray $@PXC_Next$[0],"Culvert","Morocc","Geffen","Payon","Alberta","Izlude"; - - if(var_disguise > 1) goto Complete; - if(getarg(0) == 5 && getarg(1) == 5) goto Last; - if(getarg(0) == getarg(1)) goto Quest; - -NotMe: - mes "[Baphomet]"; - mes "You must visit us in the proper order, as is Thor's will. Only then can we teach you the power of self-transmutation! Hunt around "+$@PXC_Next$[getarg(1)]+" Next!"; - next; - if(countitem(2614) < 1) goto NeedRing; - close; - -Cancel: - mes "[Baphomet]"; - mes "Later."; - close; - -Quest: - set quest_disguise,getarg(1)+1; - mes "[Baphomet]"; - mes "What am I doing here? Find my brothers and you shall learn a great secret. It is one of the secret and ancient powers of Thor! Search around "+$@PXC_Next$[getarg(1)]+" next!"; - next; - if(countitem(2614) < 1) goto NeedRing; - close; - -NeedRing: - mes "[Baphomet]"; - mes "You will need an Eye of Dullahan ring in order to obtain our secret. I can sell you one for 500,000 zeny. Simply bring me the money, and I'll offer it unto Thor in trade!"; - next; - menu "Buy Ring",-,"Forget it!",Cancel; - if(Zeny < 500000) goto Cancel; - set Zeny,Zeny-500000; - getitem 2614,1; - mes "[Baphomet]"; - mes "Here is your ring."; - next; - goto Cancel; - close; - -Last: - set quest_disguise,0; - set var_disguise,1002; - mes "[Baphomet]"; - mes "I am the last of the six. Forgive us for giving such horrible directions, for we, too, are born from Thor's left eye, and have a terrible mean streak. Plus, being monsters, we're complete and total idiots with a shoddy A.I.! You shall now receive your reward."; - next; - goto Complete; - - -Complete: - if(countitem(2614) < 1) goto NeedRing; - - mes "[Baphomet]"; - mes "Several millenia ago, Thor, the creator breathed life onto Midgar. In the beginning, all was well, but Thor's left eye proved to be the bane of our existance. As it's gaze set upon our land, all the monsters were let loose from within Thor's soul. Thor cast out his own eye, the only thing that could control the monsters. Your ring is made from his eye, and will give you the same powers."; - next; - mes "[Baphomet]"; - mes "I can change your ring's mystical properties. Which monster spirit shall I weave into your ring?"; - next; - - if(getarg(0)==0) callfunc "PXC_DoMenu",1001,1125; - if(getarg(0)==1) callfunc "PXC_DoMenu",1126,1250; - if(getarg(0)==2) callfunc "PXC_DoMenu",1251,1375; - if(getarg(0)==3) callfunc "PXC_DoMenu",1376,1500; - if(getarg(0)==4) callfunc "PXC_DoMenu",1503,1625; - if(getarg(0)==5) callfunc "PXC_DoMenu",1626,1721; - - close; - end; -} - -////////////////////////// -// FUNCTION. -// Takes: -// integer, first monster ID to show -// integer, last monster ID to show -////////////////////////// -function script PXC_DoMenu { - - //set menu options to mob names, doing the first one manually so we don't have an empty : - set $@menu$, getmonsterinfo(getarg(0),MOB_NAME); - - for(set $@i, getarg(0)+1; $@i <= getarg(1); set $@i, $@i + 1){ - set $@menu$, $@menu$ + ":" + getmonsterinfo($@i,MOB_NAME); - } - - //Fire our menu - set @menu, select($@menu$); - - //Zero deliminated (off-by-one errors sux0r!!!) - set @menu, @menu-1; - - //congratulate our user - mes "Behold, whilst you wear this ring, your form shall become that of a "+getmonsterinfo(@menu + getarg(0),MOB_NAME); - - //update our variable, with @menu offset addded to the base getarg(0) - set var_disguise, @menu + getarg(0); - - close; - end; - -}
\ No newline at end of file diff --git a/npc/custom/eAAC_Scripts/kafraExpress/config.txt b/npc/custom/eAAC_Scripts/kafraExpress/config.txt index 4848cb88c..a7333d09a 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/config.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/config.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 1.8 +//= 2.4 //===== Compatible With: ===================================== //= Any eAthena Version with function support //===== Description: ========================================= @@ -26,8 +26,8 @@ OnInit: set $@kegs_cost,500; //Cost of opening the guild storage //Kafra Pass Options: - set $@kekp_reset,1; //Kafra passes Expire when you speak to a Kafra? - //(otherwise duration is as long as a temporary variable) + set $@kekp_reset,1; //How many uses a kafra pass has before expiring? + //(if 0, duration is as long as a temporary variable) set $@kekp_reserveCost,100; //Cost of each Reserve Point in Zeny (0 disable) set $@kekp_minReserve,1; //Min Reserve Points you can earn in a single transaction set $@kekp_maxReserve,150; //Max Reserve Points you can earn in a single transaction @@ -75,7 +75,6 @@ OnLoadDye: set $@kedy_clothJ1ST,77; //1st Jobs (+High/Baby) set $@kedy_clothJ2ND,77; //2nd Jobs (+High/Baby) set $@kedy_clothJSN,77; //Super Novice (+Baby) - set $@kedy_clothJWED,77; //Wedding Class end; //------------------------------------------------------------------------------- //Config for the Job Changer Module @@ -95,6 +94,12 @@ OnLoadJobChange: set $@kejc_skipNovice,0; //0: Novice needs Job 10 to change, 1: Can Skip Novice Class set $@kejc_baseSN,30; //Base lv required to become a Super Novice + set $@kejc_disable,0; //Disable certain jobs from the changer: + //1: Super Novice + //2: Taekwon/Star Gladiator/Soul Linker + //4: GunSlinger + //8: Ninja + //Note that the change costs can be converted into rewards by specifying a negative amount. set $@kejc_base2ND,1; //Base lv required to change into a second class set $@kejc_job2ND,40; //Job Lv required to change into a second Class @@ -114,59 +119,69 @@ OnLoadJobChange: //Weapons awarded to each job upon change (use 0 to disable for a particular class) //First classes: - set $@kejc_wAcolyte,1501; //Club - set $@kejc_wArcher,1701; //Bow - set $@kejc_wMage,1601; //Rod - set $@kejc_wMerchant,1301; //Axe - set $@kejc_wSwordman,1101; //Sword - set $@kejc_wThief,1201; //Knife - set $@kejc_wTaekwon,0; //Nothing (they don't wield weapons) - set $@kejc_wSuperNovice,1202; //Knife + setarray $@kejc_weapon1[0], + 1501, //Acolyte/Club + 1701, //Archer/Bow + 1601, //Mage/Rod + 1301, //Merchant/Axe + 1101, //Swordman/Sword + 1201, //Thief/Knife + 0, //Taekwon/Nothing (they don't wield weapons) + 1202, //Super Novice/Knife + 13010, //GunSlinger/Six Shooter + 1201; //Ninja/Knife //Normal Weapons for Second classes - set $@kejc_wPriest,1551; //Bible - set $@kejc_wMonk,1801; //Waghnak - set $@kejc_wHunter,1704; //Composite Bow - set $@kejc_wBard,1901; //Violin - set $@kejc_wDancer,1950; //Rope - set $@kejc_wWizard,1602; //Rod - set $@kejc_wSage,1550; //Book - set $@kejc_wBlacksmith,1351; //Battle Axe - set $@kejc_wAlchemist,1351; //Battle Axe - set $@kejc_wKnight,1116; //Katana - set $@kejc_wCrusader,1107; //Blade - set $@kejc_wAssassin,1250; //Jur - set $@kejc_wRogue,1210; //Cutter - set $@kejc_wStarGladiator,1550; //Book - set $@kejc_wSoulLinker,1602; //Rod + setarray $@kejc_weapon_21[0], + 1551, //Priest/Bible + 1704, //Hunter/Composite Bow + 1602, //Wizard/Rod + 1351, //Blacksmith/Battle Axe + 1116, //Knight/Katana + 1250, //Assassin/Jur + 1550; //Star Gladiator/Book + + setarray $@kejc_weapon_22[0], + 1801, //Monk/Waghnak + 1704, //Bard/Dancer/Composite Bow + 1550, //Sage/Book + 1351, //Alchemist/Battle Axe + 1107, //Crusader/Blade + 1210, //Rogue/Cutter + 1602; //Soul Linker/Rod if ($@kejc_wBonusLv == 0) //Don't touch. end; //Improved versions awarded to second classes - set $@kejc_w2Priest,1519; //Chain - set $@kejc_w2Monk,1811; //Finger - set $@kejc_w2Hunter,1714; //Gakkung - set $@kejc_w2Bard,1911; //Guh Moon Goh - set $@kejc_w2Dancer,1960; //Whip - set $@kejc_w2Wizard,1610; //Arc Wand - set $@kejc_w2Sage,1552; //Tablet - set $@kejc_w2Blacksmith,1360; //Two-Handed Axe - set $@kejc_w2Alchemist,1360; //Two-Handed Axe - set $@kejc_w2Knight,1160; //Broad-Sword - set $@kejc_w2Crusader,1119; //Tsurugi - set $@kejc_w2Assassin,1254; //Jamadhar - set $@kejc_w2Rogue,1222; //Damascus - set $@kejc_w2StarGladiator,1552; //Tablet - set $@kejc_w2SoulLinker,1610; //Arc Wand + setarray $@kejc_weapon2_21[0], + 1519, //Priest/Chain + 1714, //Hunter/Gakkung + 1610, //Wizard/Arc Wand + 1360, //Blacksmith/Two-Handed Axe + 1160, //Knight/Broad-Sword + 1254, //Assassin/Jamadhar + 1552; //Star Gladiator/Tablet + + setarray $@kejc_weapon2_22[0], + 1811, //Monk/Finger + 1714, //Bard/Dancer/Gakkung + 1552, //Sage/Tablet + 1360, //Alchemist/Two-Handed Axe + 1119, //Crusader/Tsurugi + 1222, //Rogue/Damascus + 1610; //Soul Linker/Arc Wand + end; //------------------------------------------------------------------------------- //Config for the Job Swapping Module //------------------------------------------------------------------------------- OnLoadJobSwap: - set $@kejs_SNpolicy,0; //Super Novice is considered as... - //0: Super Novices can't swap job. - //1: 1st Class Range: Can only be swapped with First classes (including baby) + set $@kejs_disable,0; //Disable certain jobs from the swapper: + //1: Super Novice + //2: Taekwon/Star Gladiator/Soul Linker + //4: GunSlinger + //8: Ninja set $@kejs_revertPolicy,1; //Allows reverting to the last Class one changed from... // 0: do not allow reverting @@ -319,34 +334,38 @@ OnLoadWarpDungeon: //entrance of the cave, not the Island's shore. //Dungeon Costs - set $@kewd_abyssLake,5000; //Abyss Lake base cost + set $@kewd_abyssLake,3250; //Abyss Lake base cost set $@kewd_amatsu,2500; //Amatsu Dungeon base cost - set $@kewd_antHell,1750; //Anthell base cost - set $@kewd_ayothaya,1750; //Ayothaya Dungeon base cost - set $@kewd_byalan,1250; //Byalan base cost - set $@kewd_comodo,2500; //Comodo Caves base cost - set $@kewd_clockTower,6250; //Clock Tower base cost - set $@kewd_coalMines,3750; //Coal Mines base cost - set $@kewd_culvert,500; //Prontera Culvert base cost - set $@kewd_einbech,5000; //Einbech Mines base cost - set $@kewd_gefenia,25000; //Gefenia base cost - set $@kewd_geffen,5000; //Geffen Dungeon base cost - set $@kewd_glastHeim,10000; //Glast Heim base cost - set $@kewd_gonRyun,3750; //Gonryun Dungeon base cost - set $@kewd_hiddenTemple,250; //Hidden Temple base cost - set $@kewd_juperos,7500; //Juperos base cost - set $@kewd_lightHalzen,15000; //LightHalzen Rekkenber base cost + set $@kewd_antHell,750; //Anthell base cost + set $@kewd_ayothaya,2000; //Ayothaya Dungeon base cost + set $@kewd_byalan,1000; //Byalan base cost + set $@kewd_comodo,1500; //Comodo Caves base cost + set $@kewd_clockTower,2250; //Clock Tower base cost + set $@kewd_coalMines,1000; //Coal Mines base cost + set $@kewd_culvert,0500; //Prontera Culvert base cost + set $@kewd_einbech,2250; //Einbech Mines base cost + set $@kewd_gefenia,7000; //Gefenia base cost + set $@kewd_geffen,1500; //Geffen Dungeon base cost + set $@kewd_glastHeim,2500; //Glast Heim base cost + set $@kewd_gonRyun,2250; //Gonryun Dungeon base cost + set $@kewd_hiddenTemple,750; //Hidden Temple base cost + set $@kewd_juperos,3750; //Juperos base cost + set $@kewd_kiehl,3400; //Kiehl Doll Factory base cost + set $@kewd_iceCave,3750; //Ice Cave base cost + set $@kewd_lightHalzen,4500; //LightHalzen Rekkenber base cost set $@kewd_louYang,2500; //Louyang Dungeon base cost - set $@kewd_magma,3750; //Magma Dungeon base cost - set $@kewd_orc,2500; //Orc Dungeon base cost - set $@kewd_payon,1100; //Payon Dungeon base cost - set $@kewd_pyramid,2500; //Pyramids base cost + set $@kewd_magma,3000; //Magma Dungeon base cost + set $@kewd_odin,2750; //Odin Temple base cost + set $@kewd_orc,1000; //Orc Dungeon base cost + set $@kewd_payon,1000; //Payon Dungeon base cost + set $@kewd_pyramid,2000; //Pyramids base cost + set $@kewd_rachel,3000; //Rachel Sanctuary base cost set $@kewd_sphinx,1750; //Sphinx base cost - set $@kewd_sunkenShip,1000; //Sunken Ship base cost - set $@kewd_thanatosTower,15000; //Thanatos Tower base cost - set $@kewd_toyFactory,2500; //Toy Factory base cost - set $@kewd_turtleIsland,12500; //Turtle Island base cost - set $@kewd_umbala,3550; //Umbala Dungeon base cost + set $@kewd_sunkenShip,1250; //Sunken Ship base cost + set $@kewd_thanatosTower,3250; //Thanatos Tower base cost + set $@kewd_toyFactory,1250; //Toy Factory base cost + set $@kewd_turtleIsland,3250; //Turtle Island base cost + set $@kewd_umbala,1750; //Umbala Dungeon base cost end; //------------------------------------------------------------------------------- //Config for the Pvp Warps Module diff --git a/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt b/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt index bea43dbc1..923ae5bdd 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 2.2 +//= 2.7 //===== Compatible With: ===================================== //= Any eAthena Version with function support; RO Episode 8+ (LightHalzen) //===== Description: ========================================= @@ -18,279 +18,303 @@ //callfunc "F_KafraExpress","NPC Name","Image File", type, "Save Map", Save X, Save Y; //Town Kafras -alberta,113,60,5 script Kafra Express::Alberta 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta",116,57; +alberta.gat,113,60,5 script Kafra Express::Alberta 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta.gat",116,57; } -aldebaran,133,124,5 script Kafra Express::AlDeBaran 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",2,"aldebaran",139,131; +aldebaran.gat,133,124,5 script Kafra Express::AlDeBaran 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",2,"aldebaran.gat",139,131; } -amatsu,201,80,8 script Kafra Express::Amatsu 114,{ - callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"amatsu",197,81; +amatsu.gat,201,80,8 script Kafra Express::Amatsu 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"amatsu.gat",197,81; } -ayothaya,195,160,8 script Kafra Express::Ayothaya 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"ayothaya",194,173; +ayothaya.gat,195,160,8 script Kafra Express::Ayothaya 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"ayothaya.gat",194,173; } -comodo,190,153,5 script Kafra Express::Comodo 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"comodo",189,166; +comodo.gat,190,153,5 script Kafra Express::Comodo 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"comodo.gat",189,166; } -geffen,121,62,8 script Kafra Express::Geffen 113,{ - callfunc "F_KafraExpress","Kafra Express","kafra_05",0,"geffen",119,56; +geffen.gat,121,62,8 script Kafra Express::Geffen 113,{ + callfunc "F_KafraExpress","Kafra Express","kafra_05",0,"geffen.gat",119,56; } -gonryun,169,188,2 script Kafra Express::GonRyun 117,{ - callfunc "F_KafraExpress","Kafra Express","kafra_01",2,"gonryun",168,199; +gonryun.gat,169,188,2 script Kafra Express::GonRyun 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",2,"gonryun.gat",168,199; } -einbech,143,243,3 script Kafra Express::Einbech 860,{ - callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbech",157,250; +einbech.gat,143,243,3 script Kafra Express::Einbech 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbech.gat",157,250; } -einbroch,58,207,4 script Kafra Express::Einbroch 860,{ - callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbroch",64,184; +einbroch.gat,58,207,4 script Kafra Express::Einbroch 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbroch.gat",64,184; } -hugel,101,117,1 script Kafra Express::Hugel 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"hugel",102,109; +hugel.gat,101,117,1 script Kafra Express::Hugel 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"hugel.gat",102,109; } -izlude,136,94,2 script Kafra Express::Izlude 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"izlude",147,99; +izlude.gat,136,94,2 script Kafra Express::Izlude 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"izlude.gat",147,99; } -jawaii,208,217,7 script Kafra Express::Jawaii 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"jawaii",213,209; +jawaii.gat,208,217,7 script Kafra Express::Jawaii 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"jawaii.gat",213,209; } -lighthalzen,165,106,3 script Kafra Express::Lighthalzen 861,{ - callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"lighthalzen",152,106; +lighthalzen.gat,165,106,3 script Kafra Express::Lighthalzen 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"lighthalzen.gat",152,106; } -louyang,220,123,3 script Kafra Express::LouYang 117,{ - callfunc "F_KafraExpress","Kafra Express","kafra_01",0,"louyang",221,128; +louyang.gat,220,123,3 script Kafra Express::LouYang 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",0,"louyang.gat",221,128; } -xmas,148,126,4 script Kafra Express::Lutie 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"xmas",149,117; +xmas.gat,148,126,4 script Kafra Express::Lutie 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"xmas.gat",149,117; } -morocc,156,97,3 script Kafra Express::Morocc 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"morocc",156,91; +morocc.gat,154,97,3 script Kafra Express::Morocc 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"morocc.gat",156,91; } -niflheim,196,192,3 script Kafra Express::Niflheim 791,{ - callfunc "F_KafraExpress","Kafra Express","",3,"niflheim",194,185; +niflheim.gat,196,192,3 script Kafra Express::Niflheim 791,{ + callfunc "F_KafraExpress","Kafra Express","",3,"niflheim.gat",194,185; } -payon,152,181,5 script Kafra Express::Payon 114,{ - callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"payon",162,182; +payon.gat,152,181,5 script Kafra Express::Payon 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"payon.gat",162,182; } -prontera,147,177,7 script Kafra Express::Prontera 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"prontera",156,195; +prontera.gat,147,177,7 script Kafra Express::Prontera 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"prontera.gat",156,195; } -umbala,89,159,4 script Kafra Express::Umbala 860,{ - callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"umbala",91,159; +rachel.gat,138,147,4 script Kafra Express::Rachel 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"rachel.gat",128,146; } -yuno,159,87,5 script Kafra Express::Yuno 861,{ - callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"yuno",159,52; +umbala.gat,89,159,4 script Kafra Express::Umbala 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"umbala.gat",91,159; +} + +yuno.gat,159,87,5 script Kafra Express::Yuno 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"yuno.gat",159,52; } //Dungeon Kafras //Abyss Lake -hu_fild05,170,305,7 script Kafra Express::D_Abyss 861,{ - callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"hu_fild05",160,302; +hu_fild05.gat,170,305,7 script Kafra Express::D_Abyss 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"hu_fild05.gat",160,302; } //Amatsu D -ama_in02,115,184,6 script Kafra Express::D_Amatsu 117,{ - callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"ama_in02",118,184; +ama_in02.gat,115,184,6 script Kafra Express::D_Amatsu 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"ama_in02.gat",118,184; } //AntHell North -moc_fild04,208,323,1 script Kafra Express::D_Anthell1 114,{ - callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild04",207,332; +moc_fild04.gat,208,323,1 script Kafra Express::D_Anthell1 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild04.gat",207,332; } //AntHell South -moc_fild15,251,243,3 script Kafra Express::D_Anthell2 114,{ - callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild15",246,251; +moc_fild15.gat,251,243,3 script Kafra Express::D_Anthell2 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild15.gat",246,251; } //Ayothaya Dungeon -ayo_fild02,289,144,3 script Kafra Express::D_Ayothaya 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"ayo_fild02",289,155; +ayo_fild02.gat,289,144,3 script Kafra Express::D_Ayothaya 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"ayo_fild02.gat",289,155; } //Byalan Island -izlu2dun,101,82,7 script Kafra Express::D_Byalan 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"izlu2dun",112,84; +izlu2dun.gat,101,82,7 script Kafra Express::D_Byalan 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"izlu2dun.gat",112,84; } //Comodo East Cave -cmd_fild01,33,321,4 script Kafra Express::D_ComodoE 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"cmd_fild01",34,325; +cmd_fild01.gat,33,321,4 script Kafra Express::D_ComodoE 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"cmd_fild01.gat",34,325; } //Comodo West Cave -comodo,31,218,4 script Kafra Express::D_ComodoW 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo",32,209; +comodo.gat,31,218,4 script Kafra Express::D_ComodoW 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo.gat",32,209; } //Comodo North Cave -comodo,182,347,2 script Kafra Express::D_ComodoN 721,{ - callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo",180,352; +comodo.gat,182,347,2 script Kafra Express::D_ComodoN 721,{ + callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo.gat",180,352; } //Coal Mines -mjolnir_02,83,364,4 script Kafra Express::D_Coal 861,{ - callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"mjolnir_02",89,358; +mjolnir_02.gat,83,364,4 script Kafra Express::D_Coal 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"mjolnir_02.gat",89,358; } //Culvert -prt_fild05,275,219,5 script Kafra Express::D_Culvert 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild05",274,208; +prt_fild05.gat,275,219,5 script Kafra Express::D_Culvert 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild05.gat",274,208; } //Gefenia -gefenia01,56,171,6 script Kafra Express::D_Gefenia1 861,{ - callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"gefenia01",59,169; +gefenia01.gat,56,171,6 script Kafra Express::D_Gefenia1 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"gefenia01.gat",59,169; } //Geffen Dungeon -gef_tower,156,33,3 script Kafra Express::D_Geffen 113,{ - callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_tower",147,35; +gef_tower.gat,156,33,3 script Kafra Express::D_Geffen 113,{ + callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_tower.gat",147,35; } //GH: Church -glast_01,193,136,5 script Kafra Express::D_GHChurch 791,{ - callfunc "F_KafraExpress","Kafra Express","",1,"glast_01",206,136; +glast_01.gat,193,136,5 script Kafra Express::D_GHChurch 791,{ + callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",206,136; } //GH: Castle -glast_01,200,350,4 script Kafra Express::D_GHCastle 791,{ - callfunc "F_KafraExpress","Kafra Express","",1,"glast_01",200,347; +glast_01.gat,200,350,4 script Kafra Express::D_GHCastle 791,{ + callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",200,347; } //GH: Staircase -glast_01,58,103,7 script Kafra Express::D_GHStair 791,{ - callfunc "F_KafraExpress","Kafra Express","",1,"glast_01",62,107; +glast_01.gat,58,103,7 script Kafra Express::D_GHStair 791,{ + callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",62,107; } //GH: Chivalry -glast_01,62,198,6 script Kafra Express::D_GHChivalry 791,{ - callfunc "F_KafraExpress","Kafra Express","",1,"glast_01",69,193; +glast_01.gat,62,198,6 script Kafra Express::D_GHChivalry 791,{ + callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",69,193; +} + +//Ice Dungeon +ra_fild01.gat,225,324,5 script Kafra Express::D_IceDungeon 861,{ + callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"ra_fild01.gat",244,326; +} + +//Kiehl Machine Doll Factory +yuno_fild08.gat,72,184,4 script Kafra Express::D_Khiel 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"yuno_fild08.gat",67,182; } //LightHalzen Rekkenber (Sewer Entrance) -lighthalzen,311,293,1 script Kafra Express::D_Lhz 860,{ - callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen",301,286; +lighthalzen.gat,311,293,17 script Kafra Express::D_Lhz 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen.gat",301,286; } //LightHalzen Rekkenber (Rekkenber Entrance)( -//lighthalzen,69,57,7 script Kafra Express::D_Lhz 860,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen",78,57; +//lighthalzen.gat,69,57,7 script Kafra Express::D_Lhz 860,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen.gat",78,57; //} //Juperos -jupe_cave,45,55,5 script Kafra Express::D_Juperos 860,{ - callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"jupe_cave",45,48; +jupe_cave.gat,45,55,5 script Kafra Express::D_Juperos 860,{ + callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"jupe_cave.gat",45,48; } //Laberynth -prt_fild01,143,365,3 script Kafra Express::D_Maze 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild01",136,361; +prt_fild01.gat,143,365,3 script Kafra Express::D_Maze 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild01.gat",136,361; } //LouYang D -louyang,35,276,6 script Kafra Express::D_Louyang 117,{ - callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"louyang",41,267; +louyang.gat,35,276,6 script Kafra Express::D_Louyang 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"louyang.gat",41,267; } //Magma D -yuno_fild03,34,143,5 script Kafra Express::D_Magma 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"yuno_fild03",35,135; +yuno_fild03.gat,34,143,5 script Kafra Express::D_Magma 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"yuno_fild03.gat",35,135; +} + +//Odin Temple +odin_tem01.gat,100,149,2 script Kafra Express::D_Odin 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"odin_tem01.gat",100,142; } //Orc D North -in_orcs01,24,165,5 script Kafra Express::D_OrcsN 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01",34,165; +in_orcs01.gat,24,165,5 script Kafra Express::D_OrcsN 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01.gat",34,165; } //Orc D South -in_orcs01,103,99,5 script Kafra Express::D_OrcsS 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01",112,99; +in_orcs01.gat,103,99,5 script Kafra Express::D_OrcsS 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01.gat",112,99; } //Payon D -pay_arche,38,138,6 script Kafra Express::D_Payon 112,{ - callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"pay_arche",41,133; +pay_arche.gat,38,138,6 script Kafra Express::D_Payon 112,{ + callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"pay_arche.gat",41,133; } //Pyramids D -moc_ruins,60,166,5 script Kafra Express::D_Pyramid 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_ruins",62,162; +moc_ruins.gat,60,166,5 script Kafra Express::D_Pyramid 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_ruins.gat",62,162; +} + +//Rachel Temple +ra_temin.gat,268,325,5 script Kafra Express::D_Rachel 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"ra_temin.gat",284,325; } //Sphinx D -moc_fild19,106,97,8 script Kafra Express::D_Sphinx 115,{ - callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_fild19",107,100; +moc_fild19.gat,106,97,8 script Kafra Express::D_Sphinx 115,{ + callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_fild19.gat",107,100; } //Sunken Ship -alb2trea,75,101,5 script Kafra Express::D_Sunken 114,{ - callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"alb2trea",87,103; +alb2trea.gat,75,101,5 script Kafra Express::D_Sunken 114,{ + callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"alb2trea.gat",87,103; } //Thanatos Tower -tha_scene01,139,194,0 script Kafra Express::D_Thanatos 113,{ - callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tha_scene01",132,220; +tha_scene01.gat,139,194,0 script Kafra Express::D_Thanatos 113,{ + callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tha_scene01.gat",132,220; } //Toy Factory -xmas,138,307,6 script Kafra Express::D_Toy 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"xmas",144,306; +xmas.gat,138,307,6 script Kafra Express::D_Toy 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"xmas.gat",144,306; } //Turtle Cave Entrance -tur_dun01,147,237,6 script Kafra Express::D_TCave 113,{ - callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01",155,234; +tur_dun01.gat,147,237,6 script Kafra Express::D_TCave 113,{ + callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01.gat",155,234; } //Turtle Island Entrance -tur_dun01,148,54,6 script Kafra Express::D_TIsland 113,{ - callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01",153,47; +tur_dun01.gat,148,54,6 script Kafra Express::D_TIsland 113,{ + callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01.gat",153,47; } //Umbala D -umbala,120,284,3 script Kafra Express::D_Umbala 117,{ - callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"umbala",113,282; +umbala.gat,120,284,3 script Kafra Express::D_Umbala 117,{ + callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"umbala.gat",113,282; } //Guild War Kafras: Disabled by Default! //Al De Baran Guild Grounds -//alde_gld,156,165,3 script Kafra Express::G_AlDeBaran 116,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"alde_gld",156,157; +//alde_gld.gat,156,165,3 script Kafra Express::G_AlDeBaran 116,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"alde_gld.gat",156,157; //} //Geffen Guild Grounds -//gef_fild13,237,182,6 script Kafra Express::G_Geffen 113,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_fild13",231,181; +//gef_fild13.gat,237,182,6 script Kafra Express::G_Geffen 113,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_fild13.gat",231,181; //} //Payon Guild Grounds -//pay_gld,243,172,6 script Kafra Express::G_Payon 117,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"pay_gld",243,178; +//pay_gld.gat,243,172,6 script Kafra Express::G_Payon 117,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"pay_gld.gat",243,178; //} //Prontera Guild Grounds -//prt_gld,127,163,5 script Kafra Express::G_Prontera 115,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld",129,170; -//}
\ No newline at end of file +//prt_gld.gat,127,163,5 script Kafra Express::G_Prontera 115,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld.gat",129,170; +//} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt index 43cd6478d..dc65a1d8d 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 2.7 +//= 2.8 //===== Compatible With: ===================================== //= eAthena SVN R3524+ //===== Description: ========================================= @@ -14,7 +14,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_bank -1,{ +- script keInit_bank { OnInit: //Load Config donpcevent "keConfig::OnLoadBank"; end; @@ -156,7 +156,12 @@ function SF_calcInterest { } set @qty,0; if (#ke_bank > $@kebk_monMaintenance && #ke_bank < $@kebk_capacity) - set @qty,#ke_bank*$@kebk_dayInterest*(@banktick-#ke_banktick)/10000; + { + if (#ke_bank > 1000000) //Overflow protection + set @qty,(#ke_bank/10000)*$@kebk_dayInterest*(@banktick-#ke_banktick); + else + set @qty,#ke_bank*$@kebk_dayInterest*(@banktick-#ke_banktick)/10000; + } set #ke_banktick,@banktick; if (@qty == 0) return; if (@qty < 0) { @@ -172,3 +177,4 @@ function SF_calcInterest { } //SF end } + diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_broadcast.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_broadcast.txt index 73b8c4e20..dbba66ae1 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_broadcast.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_broadcast.txt @@ -3,9 +3,9 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 3.0 +//= 3.1 //===== Compatible With: ===================================== -//= eAthena SVN3424+ +//= eAthena SVN8637+ //===== Description: ========================================= //= Part of the Kafra Express Script Package. //= Offers broadcasting for party requests, pvp, general @@ -17,7 +17,7 @@ //= Module are used. //============================================================ -- script keInit_broadcast -1,{ +- script keInit_broadcast { OnInit: //Load Config donpcevent "keConfig::OnLoadBroadcast"; end; @@ -70,7 +70,7 @@ function SF_broadcasts { "- General Anonymous Broadcast ("+@anoncost+"z)" )) { case 2: //Party - SF_doBroadcast $@kebc_partyCost,@map$,"The "+callfunc("GF_getJobName",class)+" "+strcharinfo(0)+" (levels "+baselevel+"/"+joblevel+") is looking for a party to join.",0; + SF_doBroadcast $@kebc_partyCost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" (levels "+baselevel+"/"+joblevel+") is looking for a party to join.",0; break; case 3: //Pvp if ($@kewp_advanced == 0) @@ -204,21 +204,21 @@ function SF_bcPvp { "- advertise 'Room Compass'" )) { case 2: //Sandwich - SF_doBroadcast @pvpcost,@map$,"The "+callfunc("GF_getJobName", class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Sandwich'!",0; + SF_doBroadcast @pvpcost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Sandwich'!",0; break; case 3: //Rockon - SF_doBroadcast @pvpcost,@map$,"The "+callfunc("GF_getJobName", class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Rock On'!",0; + SF_doBroadcast @pvpcost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Rock On'!",0; break; case 4: //Room Four - SF_doBroadcast @pvpcost,@map$,"The "+callfunc("GF_getJobName", class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Four Room'!",0; + SF_doBroadcast @pvpcost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Four Room'!",0; break; case 5: //Undercross - SF_doBroadcast @pvpcost,@map$,"The "+callfunc("GF_getJobName", class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Undercross'!",0; + SF_doBroadcast @pvpcost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Undercross'!",0; break; case 6: //Compass - SF_doBroadcast @pvpcost,@map$,"The "+callfunc("GF_getJobName", class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Compass'!",0; + SF_doBroadcast @pvpcost,@map$,"The "+jobname(class)+" "+strcharinfo(0)+" is looking for PvP challengers "+@lvls$+"in the 'Room Compass'!",0; break; } } //SF_ end -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_dye.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_dye.txt index 593d653aa..2cfc9608e 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_dye.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_dye.txt @@ -3,9 +3,9 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 1.9 +//= 2.0 //===== Compatible With: ===================================== -//= eAthena SVN 3424+ +//= eAthena SVN8637+ //===== Description: ========================================= //= Part of the Kafra Express Script Package. //= Offers dying of hair, clothes and hair-style adjusts @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_dye -1,{ +- script keInit_dye { OnInit: //Load Config donpcevent "keConfig::OnLoadDye"; end; @@ -24,26 +24,21 @@ function script F_keStylist { function SF_inputpalette; function SF_wheelpalette; - set @jobClass,callfunc("GF_getJobLevel",class); - set @maxCDye,0; - - switch (@jobClass) { - case 0: - set @maxCDye, $@kedy_clothJN; - break; - case 1: - set @maxCDye, $@kedy_clothJ1ST; - break; - case 2: - set @maxCDye, $@kedy_clothJ2ND; - break; - case 3: - set @maxCDye, $@kedy_clothJSN; - break; - case 4: - set @maxCDye, $@kedy_clothJWED; - break; - } + set @jobClass,eaclass(class); + if (@jobClass == -1) + set @maxCDye,0; + else { + if ((@jobClass&EAJ_BASEMASK) == EAJ_NOVICE) { + if (@jobClass&EAJL_2) + set @maxCDye, $@kedy_clothJSN; + else + set @maxCDye, $@kedy_clothJN; + } else { + if (@jobClass&EAJL_2) + set @maxCDye, $@kedy_clothJ2ND; + else + set @maxCDye, $@kedy_clothJ1ST; + } } do { if ($@kedy_enableHairstyle) { set @kmenu, select( @@ -136,4 +131,4 @@ function SF_wheelpalette { emotion e_lv2; } //SF_ end -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobchange.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobchange.txt index b7c9a7c6c..e14367211 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobchange.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobchange.txt @@ -3,9 +3,9 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 3.5 +//= 4.0 //===== Compatible With: ===================================== -//= eAthena SVN R3579+ +//= eAthena SVN R8840+ //===== Description: ========================================= //= Part of the Kafra Express Script Package. //= Enables job changing through the class trees. @@ -13,10 +13,10 @@ //===== Additional Comments: ================================= //= See config.txt for configuration. //= When using Upper Job policy, previous jobs are stored in -//= the server wide variables kej_class1 and kej_class2 +//= the permanent variables kej_class1 and kej_class2 //============================================================ -- script keInit_jobchange -1,{ +- script keInit_jobchange { OnInit: //Load Config donpcevent "keConfig::OnLoadJobChange"; end; @@ -26,157 +26,116 @@ function script F_keJobChange { function SF_to1stJob; function SF_to2ndJob; + function SF_getJobIndex; function SF_getJobNames; function SF_testChangeJob; function SF_changeJob; - - set @job, callfunc("GF_getJobLevel", class); - set @upper, Upper; //Because it is changed when rebirthing + + set @job, eaClass(class); + set @type, @job&~EAJ_UPPERMASK; //Because it is changed when rebirthing set @reset, 0; //Base Level is reset only on rebirths - switch (@job) { - case 0: //Novices + if ((@job&EAJ_BASEMASK) == EAJ_NOVICE) + { //Novices + if (@job&EAJL_2) //S. Novices + goto L_FAIL; if ($@kejc_skipNovice) set @jobLv, 0; //jobLv is used again when checking for S.Novice's base level restriction. else set @jobLv, 10; if (SF_testChangeJob(0,0,@jobLv)) SF_to1stJob(0); - break; - case 1: //First Classes + } else + if(@job&EAJL_2){ + //Second classes + if (@job&~EAJ_UPPERMASK) //rebirth/baby + goto L_FAIL; + if (SF_testChangeJob($@kejc_costRebirth,$@kejc_baseRebirth,$@kejc_jobRebirth)) { + set @type, EAJL_UPPER; + if ($@kejc_skipNovice) + SF_to1stJob(1); + else + SF_changeJob @job,EAJ_NOVICE_HIGH,0,0,$@kejc_costRebirth,1,$@kejc_rebirthReset; + } + } else { + //First classes if (SF_testChangeJob($@kejc_cost2ND,$@kejc_base2ND,$@kejc_job2ND)) SF_to2ndJob(); - break; - case 2: //Second Classes - if (Upper == 0 && BaseClass != Job_Taekwon) { - if (SF_testChangeJob($@kejc_costRebirth,$@kejc_baseRebirth,$@kejc_jobRebirth)) { - set @upper, 1; - if ($@kejc_skipNovice) - SF_to1stJob(1); - else - SF_changeJob @job,Upper,Job_Novice,1,0,0,$@kejc_costRebirth,1,$@kejc_rebirthReset; - } - break; - } - default: //Dead End - callfunc "F_keIntro", e_swt2, "I cannot change you from your current job."; - break; } return; +L_FAIL: + //Dead End + callfunc "F_keIntro", e_swt2, "I cannot change you from your current job."; + return; //Handles changing to 1st job. function SF_to1stJob { + setarray @classes[0], + EAJ_Acolyte|@type, + EAJ_Archer|@type, + EAJ_Mage|@type, + EAJ_Merchant|@type, + EAJ_Swordman|@type, + EAJ_Thief|@type, + EAJ_Taekwon|@type, + EAJ_Super_Novice|@type, + EAJ_GunSlinger|@type, + EAJ_Ninja|@type; + do { - set @submenu, 1; - if (@upper == 1 && $@kejc_upperPolicy && kej_class1) { - switch (kej_class1) { - case Job_Acolyte: - set @submenu, 2; - break; - case Job_Archer: - set @submenu, 3; - break; - case Job_Mage: - set @submenu, 4; - break; - case Job_Merchant: - set @submenu, 5; - break; - case Job_Swordman: - set @submenu, 6; - break; - case Job_Thief: - set @submenu, 7; - break; - case Job_Taekwon: - set @submenu, 8; - break; - } + set @newjob, -1; + if (@type == EAJL_UPPER && $@kejc_upperPolicy && kej_class1) { + set @newjob, eaclass(kej_class1); + set @newjob, (@newjob&EAJ_UPPERMASK)|@type; + if (roclass(@newjob) == -1) + set @newjob, -1; + set @submenu, 1; } - if (@submenu == 1) { - SF_getJobNames 8,Job_Acolyte,Job_Archer,Job_Mage,Job_Merchant,Job_Swordman,Job_Thief,Job_Taekwon,Job_SuperNovice; - switch (@upper) { - case 0: //All - set @submenu, select( - "- Cancel job change", - "- "+@name1$, - "- "+@name2$, - "- "+@name3$, - "- "+@name4$, - "- "+@name5$, - "- "+@name6$, - "- "+@name7$, - "- "+@name8$ - ); - break; - case 1: //No Taekwon/S.Novice - set @submenu, select( - "- Cancel job change", - "- "+@name1$, - "- "+@name2$, - "- "+@name3$, - "- "+@name4$, - "- "+@name5$, - "- "+@name6$ - ); - break; - case 2: //No Taekwon - set @submenu, select( - "- Cancel job change", - "- "+@name1$, - "- "+@name2$, - "- "+@name3$, - "- "+@name4$, - "- "+@name5$, - "- "+@name6$, - "- "+@name8$ + if (@newjob == -1) { + SF_getJobNames getarraysize(@classes); + if (@type&EAJL_UPPER || $@kejc_disable&1) + set @names$[7], ""; //No S.Novice + + if (@type&~EAJ_UPPERMASK) + { //No TK/NJ/GS for Baby/Advanced + set @names$[6], ""; + set @names$[8], ""; + set @names$[9], ""; + } else { + if ($@kejc_disable&2) //No TK + set @names$[6], ""; + if ($@kejc_disable&4) //No GS + set @names$[8], ""; + if ($@kejc_disable&8) //No NJ + set @names$[9], ""; + } + + set @submenu, select( + "- Cancel job change", + @names$[0], @names$[1], @names$[2], + @names$[3], @names$[4], @names$[5], + @names$[6], @names$[7], @names$[8], + @names$[9] ); - if (@submenu == 8) - set @submenu, 9; - break; + + if (@submenu > 1) { + if (@submenu == 9 && //S. Novice's own change check. + SF_testChangeJob(0,$@kejc_baseSN,@jobLv) == 0) + return; + set @newjob, @classes[@submenu-2]; } } - switch (@submenu) { - case 2: //Acolyte - set @newJob,Job_Acolyte; - set @weapon, $@kejc_wAcolyte; - break; - case 3: //Archer - set @newJob,Job_Archer; - set @weapon, $@kejc_wArcher; - break; - case 4: //Mage - set @newJob,Job_Mage; - set @weapon, $@kejc_wMage; - break; - case 5: //Merchant - set @newJob,Job_Merchant; - set @weapon, $@kejc_wMerchant; - break; - case 6: //Swordman - set @newJob,Job_Swordman; - set @weapon, $@kejc_wSwordman; - break; - case 7: //Thief - set @newJob,Job_Thief; - set @weapon, $@kejc_wThief; - break; - case 8: //Taekwon - set @newJob,Job_Taekwon; - set @weapon, $@kejc_wTaekwon; - break; - case 9: //S. Novice - set @newJob,Job_SuperNovice; - set @weapon, $@kejc_wSuperNovice; - if (SF_testChangeJob(0,$@kejc_baseSN,@jobLv) == 0) - return; - break; - } - if (@submenu > 1) { + + if (@newjob > -1) { + set @i, SF_getJobIndex(@newjob); + if (@i > -1) + set @weapon, $@kejc_weapon1[@i]; + else + set @weapon, 0; if (getarg(0)) { //Skipping High Novice, charge rebirth costs. - if (SF_changeJob(@job,Upper,@newJob,1,@weapon,0,$@kejc_costRebirth,2,$@kejc_rebirthReset)) + if (SF_changeJob(@job,@newJob,@weapon,0,$@kejc_costRebirth,2,$@kejc_rebirthReset)) return; } else { - if (SF_changeJob(@job,Upper,@newJob,@upper,@weapon,0,0,2,0)) + if (SF_changeJob(@job,@newJob,@weapon,0,0,2,0)) return; } } @@ -185,179 +144,50 @@ function SF_to1stJob { function SF_to2ndJob { do { - set @submenu, 1; - if (@upper == 1 && $@kejc_upperPolicy && kej_class2) { - switch (kej_class2) { - case Job_Priest: - case Job_Hunter: - case Job_Wizard: - case Job_Blacksmith: - case Job_Knight: - case Job_Knight2: - case Job_Assassin: - case Job_Star_Gladiator: - case Job_Star_Gladiator2: - set @submenu, 2; - break; - case Job_Monk: - case Job_Bard: - case Job_Dancer: - case Job_Sage: - case Job_Alchem: - case Job_Crusader: - case Job_Crusader2: - case Job_Rogue: - case Job_Soul_Linker: - set @submenu, 3; - break; - } + set @newjob, -1; + if (@type == EAJL_UPPER && $@kejc_upperPolicy && kej_class2) { + set @newjob, eaclass(kej_class2); + set @newjob, (@newjob&EAJ_UPPERMASK)|@type; + if (roclass(@newjob) == -1) + set @newjob, -1; //Invalid class. + else + if ((@newjob&EAJ_BASEMASK) != (@job&EAJ_BASEMASK)) + set @newjob, -1; //Saved next job does not corresponds to current 1st! } - if (@submenu == 1) { //Fetch from menu. - switch (BaseClass) { - case Job_Acolyte: - SF_getJobNames 2,Job_Priest,Job_Monk; - break; - case Job_Archer: - SF_getJobNames 3,Job_Hunter,Job_Bard,Job_Dancer; - if (sex == 0) - set @name2$, @name3$; - break; - case Job_Mage: - SF_getJobNames 2,Job_Wizard,Job_Sage; - break; - case Job_Merchant: - SF_getJobNames 2,Job_Blacksmith,Job_Alchem; - break; - case Job_Swordman: - SF_getJobNames 2,Job_Knight,Job_Crusader; - break; - case Job_Thief: - SF_getJobNames 2,Job_Assassin,Job_Rogue; - break; - case Job_Taekwon: - SF_getJobNames 2,Job_Star_Gladiator,Job_Soul_Linker; - break; - default: - callfunc "F_keIntro", e_swt2, "I don't know how to change you from your current job."; + if (@newjob == -1) { //Fetch from menu. + setarray @classes[0], + (@job&EAJ_UPPERMASK)|@type|EAJL_2_1, + (@job&EAJ_UPPERMASK)|@type|EAJL_2_2; + + if (roclass(@classes[0]) == -1) + { //Can't upgrade? + callfunc "F_keIntro", e_swt2, "I cant' change you from your current job."; return; } + + SF_getJobNames 2; set @submenu, select( "- Cancel job change", - "- "+@name1$, - "- "+@name2$ + @names$[0],@names$[1] ); + if (@submenu > 1) + set @newjob, @classes[@submenu-2]; } - switch (BaseClass) { - case Job_Acolyte: - switch (@submenu) { - case 2: //Priest - set @newJob,Job_Priest; - set @weapon,$@kejc_wPriest; - set @weapon2,$@kejc_w2Priest; - break; - case 3: //Monk - set @newJob,Job_Monk; - set @weapon,$@kejc_wMonk; - set @weapon2,$@kejc_w2Monk; - break; - } - break; - case Job_Archer: - switch (@submenu) { - case 2: //Hunter - set @newJob,Job_Hunter; - set @weapon,$@kejc_wHunter; - set @weapon2,$@kejc_w2Hunter; - break; - case 3: //Bard/Dancer - if (sex == 1) { //Bard - set @newJob,Job_Bard; - set @weapon,$@kejc_wBard; - set @weapon2,$@kejc_w2Bard; - } else { //Dancer - set @newJob,Job_Dancer; - set @weapon,$@kejc_wDancer; - set @weapon2,$@kejc_w2Dancer; + if (@newjob > -1) { + set @i, SF_getJobIndex(@newjob); + if (@i > -1) { + if (@newjob&EAJL_2_2) { //2-2 classes + set @weapon, $@kejc_weapon_22[@i]; + set @weapon2,$@kejc_weapon2_22[@i]; + } else { //2-1 classes + set @weapon, $@kejc_weapon_21[@i]; + set @weapon2,$@kejc_weapon2_21[@i]; } - break; - } - break; - case Job_Mage: - switch (@submenu) { - case 2: //Wizard - set @newJob,Job_Wizard; - set @weapon,$@kejc_wWizard; - set @weapon2,$@kejc_w2Wizard; - break; - case 3: //Sage - set @newJob,Job_Sage; - set @weapon,$@kejc_wSage; - set @weapon2,$@kejc_w2Sage; - break; - } - break; - case Job_Merchant: - switch (@submenu) { - case 2: //Blacksmith - set @newJob,Job_Blacksmith; - set @weapon,$@kejc_wBlacksmith; - set @weapon2,$@kejc_w2Blacksmith; - break; - case 3: //Alchemist - set @newJob,Job_Alchem; - set @weapon,$@kejc_wAlchemist; - set @weapon2,$@kejc_w2Alchemist; - break; - } - break; - case Job_Swordman: - switch (@submenu) { - case 2: //Knight - set @newJob,Job_Knight; - set @weapon,$@kejc_wKnight; - set @weapon2,$@kejc_w2Knight; - break; - case 3: //Crusader - set @newJob,Job_Crusader; - set @weapon,$@kejc_wCrusader; - set @weapon2,$@kejc_w2Crusader; - break; - default: - mes "uh oh"; - break; - } - break; - case Job_Thief: - switch (@submenu) { - case 2: //Assassin - set @newJob,Job_Assassin; - set @weapon,$@kejc_wAssassin; - set @weapon2,$@kejc_w2Assassin; - break; - case 3: //Rogue - set @newJob,Job_Rogue; - set @weapon,$@kejc_wRogue; - set @weapon2,$@kejc_w2Rogue; - break; - } - break; - case Job_Taekwon: - switch (@submenu) { - case 2: //Star Gladiator - set @newJob,Job_Star_Gladiator; - set @weapon,$@kejc_wStarGladiator; - set @weapon2,$@kejc_w2StarGladiator; - break; - case 3: //Soul Linker - set @newJob,Job_Soul_Linker; - set @weapon,$@kejc_wSoulLinker; - set @weapon2,$@kejc_w2SoulLinker; - break; + } else { + set @weapon, 0; + set @weapon2, 0; } - break; - } - if (@submenu > 1) { - if (SF_changeJob(@job,Upper,@newJob,@upper,@weapon,@weapon2,$@kejc_cost2ND,0,0)) + if (SF_changeJob(@job,@newJob,@weapon,@weapon2,$@kejc_cost2ND,0,0)) return; } } while (@submenu > 1); @@ -370,9 +200,9 @@ function SF_testChangeJob { if (Zeny < getarg(0)) set @fail, 1; if (BaseLevel < getarg(1)) - set @fail, @fail+2; + set @fail, @fail|2; if (JobLevel < getarg(2)) - set @fail, @fail+4; + set @fail, @fail|4; if (@fail > 0) { if (@fail&1) mes "You need "+getarg(0)+"z for the conversion process."; @@ -391,11 +221,11 @@ function SF_testChangeJob { return 1; } -//SubFunction: SF_changeJob (CurrentJobLv, CurrentJobType, NewJobBase, NewJobType -//Weapon, Weapon2, Zeny, WipeSkills, ResetLv) +//SubFunction: SF_changeJob (CurrentJob, NewJob, Weapon, Weapon2, +// Zeny, WipeSkills, ResetLv) //Attempts to change to the Jobgiven. -//CurrentJobLv is 0-3 (novice, 1st class, 2nd class, s.novice) -//Type is 0-2 (Normal, Advanced Class, Baby) +//CurrentJob is actual job in eA format. +//NewJob is job to change to in eA format. //Weapon is the ID of the weapon to grant //Weapon2 is the alternative weapon granted when your job level is above $@kejc_wBonusLv //Zeny is the money required (if negative, it is money awarded) @@ -404,18 +234,23 @@ function SF_testChangeJob { //Reset Level indicates the base lv must be reset to 1. //Note: Zeny/Base/Job requirements should had been checked with SF_testChangeJob already! function SF_changeJob { - set @newjob,getarg(2); - set @newtype,getarg(3); - set @weapon,getarg(4); - set @weapon2,getarg(5); - set @cost,getarg(6); - set @wipeSkill,getarg(7); - set @resetLv,getarg(8); + set @job, getarg(0); + set @newjob,getarg(1); + set @weapon,getarg(2); + set @weapon2,getarg(3); + set @cost,getarg(4); + set @wipeSkill,getarg(5); + set @resetLv,getarg(6); + + if (roclass(@newjob) == -1) { //Invalid job? + callfunc "F_keIntro", -1, "I can't change you to this job..."; + return 0; + } - set @jobStr$, callfunc("GF_getJobName2",@newjob, @newtype); + set @jobStr$, jobname(roclass(@newjob)); if (@wipeSkill == 0 && SkillPoint > 0 && $@kejc_skillsPolicy == 1) { set @selection, select( - "- Do not change yet", + "- Do not change yet.", "- Change to "+@jobStr$+" (skill points lost)", "- View details" ); @@ -441,14 +276,14 @@ function SF_changeJob { if (@cost > 0) mes "- You will be charged "+@cost+"z."; else if (@cost < 0) - mes "- You will be aided with "+(0-@cost)+"z."; + mes "- You will be awarded with "+(0-@cost)+"z."; if (@weapon > 0) { if (@weapon2 > 0 && $@kejc_wBonusLv) { if (JobLevel < $@kejc_wBonusLv) { mes "- You will receive a "+getitemname(@weapon)+"["+getitemslots(@weapon)+"]."; - mes "- If you wait until Job Lv"+$@kejc_wBonusLv+", you can receive instead a "+getitemname(@weapon2)+"["+getitemslots(@weapon)+"]."; + mes "- If you wait until Job Lv"+$@kejc_wBonusLv+", you can receive instead a "+getitemname(@weapon2)+"["+getitemslots(@weapon2)+"]."; } else { - mes "- You will receive a "+getitemname(@weapon2)+"["+getitemslots(@weapon)+"] for reaching Job Lv"+$@kejc_wBonusLv+"."; + mes "- You will receive a "+getitemname(@weapon2)+"["+getitemslots(@weapon2)+"] for reaching Job Lv"+$@kejc_wBonusLv+"."; } } else mes "- You will receive a "+getitemname(@weapon)+"."; @@ -465,16 +300,15 @@ function SF_changeJob { case 2: //Change //Set/Unset job path variables as needed. if($@kejc_upperPolicy) { - set @class,getarg(0); - set @type, getarg(1); - if(@class == 1 && @type == 0) + if((@job&EAJ_BASEMASK) == @job && @job != EAJ_NOVICE) set kej_class1,class; //Advancing to second class, so... - if(@class == 2) + if(@job&EAJL_2) set kej_class2,class; //Only way of being here is by doing a rebirth - if(@type > 0) + if(@job&~EAJ_UPPERMASK) { set kej_class1,0; //Clear when one is a high class - if(@type > 0 && @class == 1) - set kej_class2,0; //Clear when leaving high 1st class + if(@job&~EAJL_2 && @job&EAJ_BASEMASK != EAJ_NOVICE) + set kej_class2,0; //Clear when leaving high 1st class + } } if (@resetLv) { jobchange Job_Novice_High; //Done to give players those 100 points from High classes @@ -490,44 +324,62 @@ function SF_changeJob { skill 1,9,0; if($@kejc_resetDye) setlook 7,0; - jobchange @newjob, @newtype; - if ($@kejc_announce) - announce strcharinfo(0)+" has been promoted to "+@jobStr$+"!",8; - set Zeny,Zeny-@cost; if ($@kejc_weaponPolicy && @weapon > 0) { - if ($@kejc_wBonusLv && @weapon2 > 0) { - if (JobLevel < $@kejc_wBonusLv) - getitem @weapon,1; - else - getitem @weapon2,1; - } else + if ($@kejc_wBonusLv && @weapon2 > 0 && JobLevel >= $@kejc_wBonusLv) + getitem @weapon2,1; + else getitem @weapon,1; } + jobchange roclass(@newjob); + if ($@kejc_announce) + announce strcharinfo(0)+" has been promoted to "+@jobStr$+"!",8; + set Zeny,Zeny-@cost; emotion e_grat; return 1; default: //Cancel... - callfunc "F_keIntro", e_dots, "...alright."; return 0; } } -//SubFunction: SF_getJobNames(Qty, Jobid1, Jobid2,...) -//Workaround until eA gets a fix for the bug where you can't use callfunc or -//callsub within a menu -function SF_getJobNames { - switch (getarg(0)) { - case 8: - set @name8$, callfunc("GF_getJobName2",getarg(8),@upper); - set @name7$, callfunc("GF_getJobName2",getarg(7),@upper); - set @name6$, callfunc("GF_getJobName2",getarg(6),@upper); - set @name5$, callfunc("GF_getJobName2",getarg(5),@upper); - set @name4$, callfunc("GF_getJobName2",getarg(4),@upper); - case 3: - set @name3$, callfunc("GF_getJobName2",getarg(3),@upper); - case 2: - set @name2$, callfunc("GF_getJobName2",getarg(2),@upper); - set @name1$, callfunc("GF_getJobName2",getarg(1),@upper); + +//SubFunction: SF_getJobIndex(Job) +//Given a job in eA format, retrieves the basic index which is used for the +//config arrays. +function SF_getJobIndex { + set @i, getarg(0); + set @i, @i&EAJ_BASEMASK; + switch (@i) { + case EAJ_ACOLYTE: + return 0; + case EAJ_ARCHER: + return 1; + case EAJ_MAGE: + return 2; + case EAJ_MERCHANT: + return 3; + case EAJ_SWORDMAN: + return 4; + case EAJ_THIEF: + return 5; + case EAJ_TAEKWON: + return 6; + case EAJ_NOVICE: //Super Novice, actually + return 7; + case EAJ_GUNSLINGER: + return 8; + case EAJ_NINJA: + return 9; + default: + return -1; } - return; } -}
\ No newline at end of file +//SubFunction: SF_getJobNames(Qty) +//Fills an array @names$ with the job names taken from the array "classes", +// making each entry start with "- " followed by the job name. +function SF_getJobNames { + set @size, getarg(0); + for (set @i, 0; @i < @size; set @i, @i+1) + setd "@names$["+@i+"]", "- "+jobname(roclass(@classes[@i])); +} + +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt index ec37a26c8..7e22b5355 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt @@ -3,9 +3,9 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 3.4 +//= 3.8 //===== Compatible With: ===================================== -//= eAthena SVN R7896+ +//= eAthena SVN8840+ //===== Description: ========================================= //= Part of the Kafra Express Script Package. //= Enables job changing among classes of the same 'type' @@ -19,7 +19,7 @@ //= kej_prev_dye (cloth dye) //============================================================ -- script keInit_jobSwap -1,{ +- script keInit_jobSwap { OnInit: //Load Config donpcevent "keConfig::OnLoadJobSwap"; end; @@ -36,18 +36,11 @@ function SF_testSwap; function SF_swapJob; function SF_getJobNames; - set @thisLevel, callfunc("GF_getJobLevel", Class); - - set @prevId, kej_prev_job; + set @thisJob, eaclass(Class); + set @type, @thisJob&~EAJ_UPPERMASK; + set @prevJob, eaclass(kej_prev_job); set @prevLv, kej_prev_joblv; - set @prevLevel, 0; - set @prevType, 0; - - if ($@kejs_revertPolicy && @prevId && @prevLv) { - set @prevLevel, callfunc("GF_getJobLevel", @prevId); - set @prevType, callfunc("GF_getJobType", @prevId); - } - + if (SF_canRevert()) { //Qualifies for Reverting do { @@ -62,7 +55,7 @@ function SF_getJobNames; return; break; case 3: //Switch - if (SF_switch() == 0) + if (SF_switch()) return; break; } @@ -80,166 +73,170 @@ function SF_getJobNames; //SubFunction SF_canRevert, specifies if the character can revert to previous job. function SF_canRevert { - if ($@kejs_revertPolicy == 0 || @prevId == 0 || (Upper == 2 && @prevType != 2)) + if ($@kejs_revertPolicy == 0 || @prevLv == 0 || + (@thisJob&EAJL_BABY != @prevJob&EAJL_BABY)) return 0; - if((@thisLevel == @prevLevel && Upper == @prevType) || $@kejs_revertPolicy == 2) + + if ($@kejs_revertPolicy == 2) return 1; - if ($@kejs_SNpolicy && @prevType == Upper && ((@prevLevel == 3 && @thisLevel == 1) || (@prevLevel == 1 && @thisLevel == 3))) + + if ((@thisJob&EAJ_BASEMASK) == EAJ_NOVICE) + { + if ($@kejs_disable&1) + return 0; + if (@prevJob&(EAJL_UPPER|EAJL_2)) + return 0; return 1; - return 0; + } + + if ((@prevJob&EAJ_BASEMASK) == EAJ_NOVICE) + { + if ($@kejs_disable&1) + return 0; + + if (@thisJob&(EAJL_UPPER|EAJL_2)) + return 0; + return 1; + } + + if (@thisJob&~EAJ_UPPERMASK != @prevJob&~EAJ_UPPERMASK) + return 0; + + if (@thisJob&EAJL_2 && !(@prevJob&EAJL_2)) + return 0; + + if (@prevJob&EAJL_2 && !(@thisJob&EAJL_2)) + return 0; + + return 1; } //SubFunction SF_canSwitch, specifies if character can change to another job. function SF_canSwitch { - if (@thisLevel == 3) - return $@kejs_SNpolicy; - if (@thisLevel == 1 || @thisLevel == 2) - return 1; - return 0; + switch(@thisJob&EAJ_BASEMASK) { + case EAJ_NOVICE: + if ($@kejs_disable&1 || !@thisJob&EAJL_2) + return 0; + break; + case EAJ_TAEKWON: + if ($@kejs_disable&2) + return 0; + break; + case EAJ_GUNSLINGER: + if ($@kejs_disable&4) + return 0; + break; + case EAJ_NINJA: + if ($@kejs_disable&8) + return 0; + break; + } + return 1; } //Sub Function SF_switch. Presents the switch job menu. Returns 1 only if the //menu was left by picking "Cancel". function SF_switch { - switch (@thisLevel) { - case 1: - case 3: //First Classes + if (@thisJob&EAJL_2 && (@thisJob&EAJ_BASEMASK) != EAJ_NOVICE) { + //Second Classes + set @cost, SF_calcSwapCost($@kejs_job2ND, $@kejs_cost2ND, $@kejs_discount2ND); + set @preserve, $@kejs_preserve2ND; + if (!SF_testSwap($@kejs_job2ND, @cost)) + return 0; + + setarray @classes[0], + EAJ_Assassin|@type, + EAJ_Rogue|@type, + EAJ_Blacksmith|@type, + EAJ_Alchemist|@type, + EAJ_Hunter|@type, + EAJ_BardDancer|@type, + EAJ_Knight|@type, + EAJ_Crusader|@type, + EAJ_Priest|@type, + EAJ_Monk|@type, + EAJ_Wizard|@type, + EAJ_Sage|@type, + EAJ_Star_Gladiator|@type, + EAJ_Soul_Linker|@type; + + SF_getJobNames getarraysize(@classes); + + if (@type || $@kejs_disable&2) + { //No SG/SL + set @names$[12], ""; + set @names$[13], ""; + } + + do { + set @kmenu, select( + "- Cancel job change", + @names$[0], @names$[1], @names$[2], @names$[3], + @names$[4], @names$[5], @names$[6], @names$[7], + @names$[8], @names$[9], @names$[10], @names$[11], + @names$[12], @names$[13] + ); + + if (@kmenu > 1) { + set @job, roclass(@classes[@kmenu-2]); + if (@job > -1 && SF_swapJob(@job,@cost,@preserve)) + return 1; + } + } while (@kmenu > 1); + return 0; + } else { + //First Classes set @cost, SF_calcSwapCost($@kejs_job1ST, $@kejs_cost1ST, $@kejs_discount1ST); set @preserve, $@kejs_preserve1ST; - if (SF_testSwap($@kejs_job1ST, @cost)) { - do { - if ($@kejs_SNpolicy && Upper != 1) { //S. Novice Menu - SF_getJobNames 7,Job_Acolyte,Job_Archer,Job_Mage,Job_Merchant,Job_Swordman,Job_Thief,Job_SuperNovice; - set @kmenu, select( - "- Cancel job swap", - "- "+@name1$,"- "+@name2$,"- "+@name3$,"- "+@name4$,"- "+@name5$,"- "+@name6$,"- "+@name7$ - ); - } else { - SF_getJobNames 6,Job_Acolyte,Job_Archer,Job_Mage,Job_Merchant,Job_Swordman,Job_Thief; - set @kmenu, select( - "- Cancel job swap", - "- "+@name1$,"- "+@name2$,"- "+@name3$,"- "+@name4$,"- "+@name5$,"- "+@name6$ - ); - } - switch (@kmenu) { - case 2: //Acolyte - if (SF_swapJob(callfunc("GF_getJobId", Job_Acolyte, Upper),@cost,@preserve)) - return 0; - break; - case 3: //Archer - if (SF_swapJob(callfunc("GF_getJobId", Job_Archer, Upper),@cost,@preserve)) - return 0; - break; - case 4: //Mage - if (SF_swapJob(callfunc("GF_getJobId", Job_Mage, Upper),@cost,@preserve)) - return 0; - break; - case 5: //Merchant - if (SF_swapJob(callfunc("GF_getJobId", Job_Merchant, Upper),@cost,@preserve)) - return 0; - break; - case 6: //Swordman - if (SF_swapJob(callfunc("GF_getJobId", Job_Swordman, Upper),@cost,@preserve)) - return 0; - break; - case 7: //Thief - if (SF_swapJob(callfunc("GF_getJobId", Job_Thief, Upper),@cost,@preserve)) - return 0; - break; - case 8: //S. Novice - if (SF_swapJob(callfunc("GF_getJobId", Job_SuperNovice, Upper),@cost,@preserve)) - return 0; - break; - } - } while (@kmenu > 1); - return 1; - } - break; + if (!SF_testSwap($@kejs_job1ST, @cost)) + return 0; + setarray @classes[0], + EAJ_Acolyte|@type, + EAJ_Archer|@type, + EAJ_Mage|@type, + EAJ_Merchant|@type, + EAJ_Swordman|@type, + EAJ_Thief|@type, + EAJ_Taekwon|@type, + EAJ_Super_Novice|@type, + EAJ_GunSlinger|@type, + EAJ_Ninja|@type; - case 2: //Second Classes - set @cost, SF_calcSwapCost($@kejs_job2ND, $@kejs_cost2ND, $@kejs_discount2ND); - set @preserve, $@kejs_preserve2ND; - if (SF_testSwap($@kejs_job2ND, @cost)) { - do { - if (sex == 1) { - SF_getJobNames 12,Job_Alchem,Job_Assassin,Job_Bard,Job_Blacksmith,Job_Crusader,Job_Hunter,Job_Knight,Job_Monk,Job_Priest,Job_Rogue,Job_Sage,Job_Wizard; - set @kmenu, select( - "- Cancel job change", - "- "+@name1$,"- "+@name2$,"- "+@name3$,"- "+@name4$,"- "+@name5$,"- "+@name6$, - "- "+@name7$,"- "+@name8$,"- "+@name9$,"- "+@name10$,"- "+@name11$,"- "+@name12$ - ); - if (@kmenu >= 7) //Dancer should be at pos 7. - set @kmenu, @kmenu+1; - } else { - SF_getJobNames 12,Job_Alchem,Job_Assassin,Job_Blacksmith,Job_Crusader,Job_Dancer,Job_Hunter,Job_Knight,Job_Monk,Job_Priest,Job_Rogue,Job_Sage,Job_Wizard; - set @kmenu, select( - "- Cancel job change", - "- "+@name1$,"- "+@name2$,"- "+@name3$,"- "+@name4$,"- "+@name5$,"- "+@name6$, - "- "+@name7$,"- "+@name8$,"- "+@name9$,"- "+@name10$,"- "+@name11$,"- "+@name12$ - ); - if (@kmenu >= 4) //Bard should be at pos 4. - set @kmenu, @kmenu+1; - } - switch (@kmenu) - { - case 2: //ALCHEMIST - if (SF_swapJob(callfunc("GF_getJobId", Job_Alchem, Upper),@cost,@preserve)) - return 0; - break; - case 3: //ASSASSIN - if (SF_swapJob(callfunc("GF_getJobId", Job_Assassin, Upper),@cost,@preserve)) - return 0; - break; - case 4: //BARD - if (SF_swapJob(callfunc("GF_getJobId", Job_Bard, Upper),@cost,@preserve)) - return 0; - break; - case 5: //BLACKSMITH - if (SF_swapJob(callfunc("GF_getJobId", Job_Blacksmith, Upper),@cost,@preserve)) - return 0; - break; - case 6: //CRUSADER - if (SF_swapJob(callfunc("GF_getJobId", Job_Crusader, Upper),@cost,@preserve)) - return 0; - break; - case 7: //DANCER - if (SF_swapJob(callfunc("GF_getJobId", Job_Dancer, Upper),@cost,@preserve)) - return 0; - break; - case 8: //HUNTER - if (SF_swapJob(callfunc("GF_getJobId", Job_Hunter, Upper),@cost,@preserve)) - return 0; - break; - case 9: //KNIGHT - if (SF_swapJob(callfunc("GF_getJobId", Job_Knight, Upper),@cost,@preserve)) - return 0; - break; - case 10: //MONK - if (SF_swapJob(callfunc("GF_getJobId", Job_Monk, Upper),@cost,@preserve)) - return 0; - break; - case 11: //PRIEST - if (SF_swapJob(callfunc("GF_getJobId", Job_Priest, Upper),@cost,@preserve)) - return 0; - break; - case 12: //ROGUE - if (SF_swapJob(callfunc("GF_getJobId", Job_Rogue, Upper),@cost,@preserve)) - return 0; - break; - case 13: //SAGE - if (SF_swapJob(callfunc("GF_getJobId", Job_Sage, Upper),@cost,@preserve)) - return 0; - break; - case 14: //WIZARD - if (SF_swapJob(callfunc("GF_getJobId", Job_Wizard, Upper),@cost,@preserve)) - return 0; - break; - } - } while (@kmenu > 1); - return 1; + SF_getJobNames getarraysize(@classes); + + if ($@kejs_disable&1 || @type&EAJL_UPPER) + set @names$[7], ""; //No S.Novice + if (@type) + { //No TK/NJ/GS for Baby/Advanced + set @names$[6], ""; + set @names$[8], ""; + set @names$[9], ""; + } else { + if ($@kejs_disable&2) //No TK + set @names$[6], ""; + if ($@kejs_disable&4) //No GS + set @names$[8], ""; + if ($@kejs_disable&8) //No NJ + set @names$[9], ""; } + + do { + set @kmenu, select( + "- Cancel job swap", + @names$[0], @names$[1], @names$[2], + @names$[3], @names$[4], @names$[5], + @names$[6], @names$[7], @names$[8], + @names$[9] + ); + + if (@kmenu > 1) { + set @job, roclass(@classes[@kmenu-2]); + if (@job > -1 && SF_swapJob(@job,@cost,@preserve)) + return 0; + } + } while (@kmenu > 1); + return 0; } - return 0; } //SubFunction: SF_calcSwapCost (MinJob, BaseCost, Discount) @@ -282,8 +279,8 @@ function SF_swapJob { return 0; } - set @newJob$, callfunc("GF_getJobName",@newjobId); - set @oldJob$, callfunc("GF_getJobName",Class); + set @newJob$, jobname(@newjobId); + set @oldJob$, jobname(Class); set @newjoblv, JobLevel*@preserve/100; if (@newjoblv > 1) { @@ -296,10 +293,10 @@ function SF_swapJob { } set @basic, getSkilllv(1); - set @preserve, skillpointcount() -JobLevel -@basic +@newjoblv; //Preserve holds the final amount of SkillPoints you should have. + set @skillpoint, skillpointcount() -JobLevel -@basic +@newjoblv; //Preserve holds the final amount of SkillPoints you should have. - if (@preserve < 0) { - callfunc "F_keIntro", e_gasp, "You need "+(-@preserve)+" more skill points to change class!"; + if (@skillpoint < 0) { + callfunc "F_keIntro", e_gasp, "You need "+(-@skillpoint)+" more skill points to change class!"; return 0; } @@ -311,6 +308,8 @@ function SF_swapJob { set kej_prev_job, Class; set kej_prev_joblv, @thisJoblevel; set kej_prev_skills, SkillPoint; + if($@kejs_saveDye) + set kej_prev_dye,getlook(7); } if ($@kejs_announce) announce strcharinfo(0)+" has changed from "+@oldJob$+" to "+@newJob$+"...",16; @@ -320,10 +319,10 @@ function SF_swapJob { jobchange @newjobId, 0; skill 1,@basic,0; set JobLevel, @newjoblv; - set SkillPoint, @preserve; + set SkillPoint, @skillpoint; setoption(0); sc_end -1; - callfunc "F_keCharge",getarg(2),$@kejs_swapDiscount,1; + callfunc "F_keCharge",getarg(1),$@kejs_swapDiscount,1; emotion e_ok; return 1; @@ -332,11 +331,11 @@ function SF_swapJob { //SubFunction: SF_revertJob (cost) //Reverts to the previous job. function SF_revertJob { - if (Class == kej_prev_job) { + if (@thisJob == @prevJob) { callfunc "F_keIntro", e_no, "Hmm... You can't go back, because your previous class is the same as your current one??"; return 0; } - set @newjob$, callfunc ("GF_getJobName",kej_prev_job); + set @newjob$, jobname(kej_prev_job); set @cost,callfunc("F_keCost",$@kejs_revertCost,$@kejs_revertDiscount); @@ -377,42 +376,17 @@ function SF_revertJob { sc_end -1; if ($@kejs_announce) - announce strcharinfo(0)+" has changed from "+callfunc ("GF_getJobName",@thisJobId)+" to "+@newjob$+"...",16; + announce strcharinfo(0)+" has changed from "+jobname(@thisJobId)+" to "+@newjob$+"...",16; return 1; } -//SubFunction: SF_getJobNames(Qty, Jobid1, Jobid2,...) -//Workaround until eA gets a fix for the bug where you can't use callfunc or -//callsub within a menu +//SubFunction: SF_getJobNames(Qty) +//Fills an array @names$ with the job names taken from the array "classes", +// making each entry start with "- " followed by the job name. function SF_getJobNames { - switch (getarg(0)) { - case 12: - set @name12$, callfunc("GF_getJobName2",getarg(12),Upper); - case 11: - set @name11$, callfunc("GF_getJobName2",getarg(11),Upper); - case 10: - set @name10$, callfunc("GF_getJobName2",getarg(10),Upper); - case 9: - set @name9$, callfunc("GF_getJobName2",getarg(9),Upper); - case 8: - set @name8$, callfunc("GF_getJobName2",getarg(8),Upper); - case 7: - set @name7$, callfunc("GF_getJobName2",getarg(7),Upper); - case 6: - set @name6$, callfunc("GF_getJobName2",getarg(6),Upper); - case 5: - set @name5$, callfunc("GF_getJobName2",getarg(5),Upper); - case 4: - set @name4$, callfunc("GF_getJobName2",getarg(4),Upper); - case 3: - set @name3$, callfunc("GF_getJobName2",getarg(3),Upper); - case 2: - set @name2$, callfunc("GF_getJobName2",getarg(2),Upper); - case 1: - set @name1$, callfunc("GF_getJobName2",getarg(1),Upper); - default: - return; - } + set @size, getarg(0); + for (set @i, 0; @i < @size; set @i, @i+1) + setd "@names$["+@i+"]", "- "+jobname(roclass(@classes[@i])); } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_main.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_main.txt index 42fcba9b3..79daa71d5 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_main.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_main.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 5.4 +//= 5.7 //===== Compatible With: ===================================== //= eAthena SVN R3424+ //===== Description: ========================================= @@ -23,8 +23,8 @@ function script F_KafraExpress { set @name$,getarg(0); set @ke_type,getarg(2); - if ($@kekp_reset) - set @kafraPass,0; + if ($@kekp_reset && @kafraPass > 0) + set @kafraPass,@kafraPass-1; if (getarg(1) != "") cutin getarg(1),2; callfunc "F_keIntro",-1,""; @@ -352,7 +352,10 @@ function script F_kePass { return; } delitem 1084,1; - set @kafraPass,1; + if ($@kekp_reset > 0) + set @kafraPass,$@kekp_reset; + else + set @kafraPass,1; callfunc "F_keIntro", e_lv, "Your Kafra Pass has been activated."; return; } @@ -402,4 +405,4 @@ function script F_keWarp { emotion getarg(2); warp getarg(3),getarg(4),getarg(5); end; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_refine.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_refine.txt index 7fc49fa81..0dca7f49c 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_refine.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_refine.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 2.7 +//= 2.8 //===== Compatible With: ===================================== //= eAthena SVN R3424+ //===== Description: ========================================= @@ -14,7 +14,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_refine -1,{ +- script keInit_refine { OnInit: //Load Config donpcevent "keConfig::OnLoadRefine"; end; @@ -336,4 +336,4 @@ function SF_sellOres { } while (@submenu > 1); } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_rent.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_rent.txt index d773a0e53..b2edbba4e 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_rent.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_rent.txt @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_rent -1,{ +- script keInit_rent { OnInit: //Load Config donpcevent "keConfig::OnLoadRent"; end; @@ -78,4 +78,4 @@ function script F_keRent { break; } return; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_shop.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_shop.txt index cd99358cd..b8fdf9f66 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_shop.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_shop.txt @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_shop -1,{ +- script keInit_shop { OnInit: //Load Config donpcevent "keConfig::OnLoadShop"; end; @@ -63,4 +63,4 @@ function script F_keShop { cutin getarg(1), 255; callshop @shop$, @kmenu-1; end; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_statmarket.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_statmarket.txt index d4fb4d147..c5c69624f 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_statmarket.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_statmarket.txt @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_statmarket -1,{ +- script keInit_statmarket { OnInit: //Load Config donpcevent "keConfig::OnLoadStatMarket"; end; @@ -125,4 +125,4 @@ function script F_keStatMarket { } } while (@kmenu > 1); return; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_stats.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_stats.txt index 334b06a05..364fbfd37 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_stats.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_stats.txt @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_stats -1,{ +- script keInit_stats { OnInit: //Load Config donpcevent "keConfig::OnLoadStats"; end; @@ -127,4 +127,4 @@ function SF_statRaise { } while (@submenu > 1); } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt index 6e61a49ef..a3b732412 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 1.5 +//= 1.6 //===== Compatible With: ===================================== //= eAthena SVN R3424+ //===== Description: ========================================= @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_uncard -1,{ +- script keInit_uncard { OnInit: //Load Config donpcevent "keConfig::OnLoadUncard"; end; @@ -162,4 +162,4 @@ function SF_uncard { return 1; } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt index 594a32820..9c2f7f0a6 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt @@ -3,12 +3,12 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 3.5 +//= 4.2 //===== Compatible With: ===================================== //= eAthena SVN R3424+, RO Episode 8+ (Hugel) //===== Description: ========================================= //= Part of the Kafra Express Script Package. -//= Offers warping to dungeons. +//= Offers warping to dungeons. //===== Additional Comments: ================================= //= See config.txt for configuration. //= Flag values used for dungeons: @@ -22,7 +22,7 @@ //= 0x00000080 Coal Mines //= 0x00000100 Culvert //= 0x00000200 Einbech -//= 0x00000400 Gefenia +//= 0x00000400 Kiehl //= 0x00000800 Geffen //= 0x00001000 GlastHeim //= 0x00002000 Gon Ryun @@ -40,10 +40,12 @@ //= 0x02000000 Toy Factory //= 0x04000000 Turtle Island //= 0x08000000 Umbala - +//= 0x10000000 Odin Temple +//= 0x20000000 Ice Cave +//= 0x40000000 Rachel Temple //============================================================ -- script keInit_warpDungeon -1,{ +- script keInit_warpDungeon { OnInit: //Load Config donpcevent "keConfig::OnLoadWarpDungeon"; end; @@ -67,12 +69,16 @@ function SF_glastHeim; function SF_gonRyun; function SF_hiddenTemple; function SF_juperos; +function SF_kiehl; +function SF_iceCave; function SF_lightHalzen; function SF_louYang; function SF_magma; +function SF_odin; function SF_orcs; function SF_payon; function SF_pyramid; +function SF_rachel; function SF_sphinx; function SF_sunkenShip; function SF_thanatosTower; @@ -86,78 +92,87 @@ function SF_umbala; if ($@kewd_showOnline) { set @kmenu, select ( "- Cancel", - "- Abyss Lake ("+$@kewd_abyssLake*@discount/100+"z/"+(getmapusers("abyss_01") - +getmapusers("abyss_02")+getmapusers("abyss_03"))+" "+$@ked_users$+")", - "- Amatsu Dungeon ("+$@kewd_amatsu*@discount/100+"z/"+(getmapusers("ama_dun01") - +getmapusers("ama_dun02")+getmapusers("ama_dun03"))+" "+$@ked_users$+")", - "- Ant Hell ("+$@kewd_antHell*@discount/100+"z/"+(getmapusers("anthell01") - +getmapusers("anthell02"))+" "+$@ked_users$+")", - "- Ayothaya Ancient Shrine ("+$@kewd_ayothaya*@discount/100+"z/"+(getmapusers("ayo_dun01") - +getmapusers("ayo_dun02"))+" "+$@ked_users$+")", - "- Byalan Dungeon ("+$@kewd_byalan*@discount/100+"z/"+(getmapusers("iz_dun00") - +getmapusers("iz_dun01")+getmapusers("iz_dun02")+getmapusers("iz_dun03") - +getmapusers("iz_dun04"))+" "+$@ked_users$+")", - "- Comodo Caves ("+$@kewd_comodo*@discount/100+"z/"+(getmapusers("beach_dun") - +getmapusers("beach_dun2")+getmapusers("beach_dun3"))+" "+$@ked_users$+")", - "- Clock Tower ("+$@kewd_clockTower*@discount/100+"z/"+(getmapusers("c_tower1") - +getmapusers("c_tower2")+getmapusers("c_tower3")+getmapusers("c_tower4") - +getmapusers("alde_dun01")+getmapusers("alde_dun02")+getmapusers("alde_dun03") - +getmapusers("alde_dun04"))+" "+$@ked_users$+")", - "- Coal Mine ("+$@kewd_coalMines*@discount/100+"z/"+(getmapusers("mjo_dun01") - +getmapusers("mjo_dun02")+getmapusers("mjo_dun03"))+" "+$@ked_users$+")", - "- Culvert ("+$@kewd_culvert*@discount/100+"z/"+(getmapusers("prt_sewb1")+getmapusers("prt_sewb2") - +getmapusers("prt_sewb3")+getmapusers("prt_sewb4"))+" "+$@ked_users$+")", - "- Einbroch Station ("+$@kewd_einbech*@discount/100+"z/"+(getmapusers("ein_dun01") - +getmapusers("ein_dun02"))+" "+$@ked_users$+")", - "- Gefenia ("+$@kewd_gefenia*@discount/100+"z/"+(getmapusers("gefenia01")+getmapusers("gefenia02") - +getmapusers("gefenia03")+getmapusers("gefenia04"))+" "+$@ked_users$+")", - "- Geffen Dungeon ("+$@kewd_geffen*@discount/100+"z/"+(getmapusers("gef_dun00") - +getmapusers("gef_dun01")+getmapusers("gef_dun02")+getmapusers("gef_dun03"))+" "+$@ked_users$+")", - "- Glast Heim ("+$@kewd_glastHeim*@discount/100+"z/"+(getmapusers("gl_cas02")+getmapusers("gl_church") - +getmapusers("gl_chyard")+getmapusers("gl_dun01")+getmapusers("gl_dun02") - +getmapusers("gl_in01")+getmapusers("gl_knt01")+getmapusers("gl_knt02") - +getmapusers("gl_prison")+getmapusers("gl_prison1")+getmapusers("gl_sew01") - +getmapusers("gl_sew02")+getmapusers("gl_sew03")+getmapusers("gl_sew04") - +getmapusers("gl_step")+getmapusers("glast_01"))+" "+$@ked_users$+")", - "- Gon Ryun Dungeon ("+$@kewd_gonRyun*@discount/100+"z/"+(getmapusers("gon_dun01") - +getmapusers("gon_dun02")+getmapusers("gon_dun03"))+" "+$@ked_users$+")", - "- Hidden Temple ("+$@kewd_hiddenTemple*@discount/100+"z/"+(getmapusers("prt_maze01") - +getmapusers("prt_maze02")+getmapusers("prt_maze03"))+" "+$@ked_users$+")", - "- Juperos ("+$@kewd_juperos*@discount/100+"z/"+(getmapusers("juperos_01")+getmapusers("juperos_02") - +getmapusers("jupe_area1")+getmapusers("jupe_area2")+getmapusers("jupe_core") - +getmapusers("jupe_gate")+getmapusers("jupe_area1"))+" "+$@ked_users$+")", - "- LightHalzen Rekkenber ("+$@kewd_lightHalzen*@discount/100+"z/"+(getmapusers("lhz_dun01") - +getmapusers("lhz_dun02")+getmapusers("lhz_dun03"))+" "+$@ked_users$+")", - "- Lou Yang Royal Tomb ("+$@kewd_louYang*@discount/100+"z/"+(getmapusers("lou_dun01") - +getmapusers("lou_dun02")+getmapusers("lou_dun03"))+" "+$@ked_users$+")", - "- Magma Dungeon ("+$@kewd_magma*@discount/100+"z/"+(getmapusers("mag_dun01") - +getmapusers("mag_dun02"))+" "+$@ked_users$+")", - "- Orc Dungeon ("+$@kewd_orc*@discount/100+"z/"+(getmapusers("orcsdun01") - +getmapusers("orcsdun02"))+" "+$@ked_users$+")", - "- Payon Dungeon ("+$@kewd_payon*@discount/100+"z/"+(getmapusers("pay_dun00") - +getmapusers("pay_dun01")+getmapusers("pay_dun02")+getmapusers("pay_dun03") - +getmapusers("pay_dun04"))+" "+$@ked_users$+")", - "- Pyramid ("+$@kewd_pyramid*@discount/100+"z/"+(getmapusers("moc_pryd01")+getmapusers("moc_pryd02") - +getmapusers("moc_pryd03")+getmapusers("moc_pryd04")+getmapusers("moc_pryd05") - +getmapusers("moc_pryd06")+getmapusers("moc_prydb1"))+" "+$@ked_users$+")", - "- Sphinx ("+$@kewd_sphinx*@discount/100+"z/"+(getmapusers("in_sphinx1") - +getmapusers("in_sphinx2")+getmapusers("in_sphinx3")+getmapusers("in_sphinx4") - +getmapusers("in_sphinx5"))+" "+$@ked_users$+")", - "- Sunken Ship ("+$@kewd_sunkenShip*@discount/100+"z/"+(getmapusers("treasure01") - +getmapusers("treasure02"))+" "+$@ked_users$+")", - "- Thanatos Tower ("+$@kewd_thanatosTower*@discount/100+"z/"+(getmapusers("tha_t01") - +getmapusers("tha_t02")+getmapusers("tha_t03")+getmapusers("tha_t04") - +getmapusers("tha_t05")+getmapusers("tha_t06")+getmapusers("tha_t07") - +getmapusers("tha_t08")+getmapusers("tha_t09")+getmapusers("tha_t10") - +getmapusers("tha_t11")+getmapusers("tha_t12")+getmapusers("thana_step") - +getmapusers("thana_boss"))+" "+$@ked_users$+")", - "- Toy Factory ("+$@kewd_toyFactory*@discount/100+"z/"+(getmapusers("xmas_dun01") - +getmapusers("xmas_dun02"))+" "+$@ked_users$+")", - "- Turtle Island ("+$@kewd_turtleIsland*@discount/100+"z/"+(getmapusers("tur_dun01") - +getmapusers("tur_dun02")+getmapusers("tur_dun03")+getmapusers("tur_dun04") - +getmapusers("tur_dun05")+getmapusers("tur_dun06"))+" "+$@ked_users$+")", - "- Umbala Dungeon ("+$@kewd_umbala*@discount/100+"z/"+(getmapusers("um_dun01") - +getmapusers("um_dun02"))+" "+$@ked_users$+")" + "- Abyss Lake ("+$@kewd_abyssLake*@discount/100+"z/"+(getmapusers("abyss_01.gat") + +getmapusers("abyss_02.gat")+getmapusers("abyss_03.gat"))+" "+$@ked_users$+")", + "- Amatsu Dungeon ("+$@kewd_amatsu*@discount/100+"z/"+(getmapusers("ama_dun01.gat") + +getmapusers("ama_dun02.gat")+getmapusers("ama_dun03.gat"))+" "+$@ked_users$+")", + "- Ant Hell ("+$@kewd_antHell*@discount/100+"z/"+(getmapusers("anthell01.gat") + +getmapusers("anthell02.gat"))+" "+$@ked_users$+")", + "- Ayothaya Ancient Shrine ("+$@kewd_ayothaya*@discount/100+"z/"+(getmapusers("ayo_dun01.gat") + +getmapusers("ayo_dun02.gat"))+" "+$@ked_users$+")", + "- Byalan Dungeon ("+$@kewd_byalan*@discount/100+"z/"+(getmapusers("iz_dun00.gat") + +getmapusers("iz_dun01.gat")+getmapusers("iz_dun02.gat")+getmapusers("iz_dun03.gat") + +getmapusers("iz_dun04.gat"))+" "+$@ked_users$+")", + "- Comodo Caves ("+$@kewd_comodo*@discount/100+"z/"+(getmapusers("beach_dun.gat") + +getmapusers("beach_dun2.gat")+getmapusers("beach_dun3.gat"))+" "+$@ked_users$+")", + "- Clock Tower ("+$@kewd_clockTower*@discount/100+"z/"+(getmapusers("c_tower1.gat") + +getmapusers("c_tower2.gat")+getmapusers("c_tower3.gat")+getmapusers("c_tower4.gat") + +getmapusers("alde_dun01.gat")+getmapusers("alde_dun02.gat")+getmapusers("alde_dun03.gat") + +getmapusers("alde_dun04.gat"))+" "+$@ked_users$+")", + "- Coal Mine ("+$@kewd_coalMines*@discount/100+"z/"+(getmapusers("mjo_dun01.gat") + +getmapusers("mjo_dun02.gat")+getmapusers("mjo_dun03.gat"))+" "+$@ked_users$+")", + "- Culvert ("+$@kewd_culvert*@discount/100+"z/"+(getmapusers("prt_sewb1.gat")+getmapusers("prt_sewb2.gat") + +getmapusers("prt_sewb3.gat")+getmapusers("prt_sewb4.gat"))+" "+$@ked_users$+")", + "- Einbroch Station ("+$@kewd_einbech*@discount/100+"z/"+(getmapusers("ein_dun01.gat") + +getmapusers("ein_dun02.gat"))+" "+$@ked_users$+")", + "- Gefenia ("+$@kewd_gefenia*@discount/100+"z/"+(getmapusers("gefenia01.gat")+getmapusers("gefenia02.gat") + +getmapusers("gefenia03.gat")+getmapusers("gefenia04.gat"))+" "+$@ked_users$+")", + "- Geffen Dungeon ("+$@kewd_geffen*@discount/100+"z/"+(getmapusers("gef_dun00.gat") + +getmapusers("gef_dun01.gat")+getmapusers("gef_dun02.gat")+getmapusers("gef_dun03.gat"))+" "+$@ked_users$+")", + "- Glast Heim ("+$@kewd_glastHeim*@discount/100+"z/"+(getmapusers("gl_cas02.gat")+getmapusers("gl_church.gat") + +getmapusers("gl_chyard.gat")+getmapusers("gl_dun01.gat")+getmapusers("gl_dun02.gat") + +getmapusers("gl_in01.gat")+getmapusers("gl_knt01.gat")+getmapusers("gl_knt02.gat") + +getmapusers("gl_prison.gat")+getmapusers("gl_prison1.gat")+getmapusers("gl_sew01.gat") + +getmapusers("gl_sew02.gat")+getmapusers("gl_sew03.gat")+getmapusers("gl_sew04.gat") + +getmapusers("gl_step.gat")+getmapusers("glast_01.gat"))+" "+$@ked_users$+")", + "- Gon Ryun Dungeon ("+$@kewd_gonRyun*@discount/100+"z/"+(getmapusers("gon_dun01.gat") + +getmapusers("gon_dun02.gat")+getmapusers("gon_dun03.gat"))+" "+$@ked_users$+")", + "- Hidden Temple ("+$@kewd_hiddenTemple*@discount/100+"z/"+(getmapusers("prt_maze01.gat") + +getmapusers("prt_maze02.gat")+getmapusers("prt_maze03.gat"))+" "+$@ked_users$+")", + "- Juperos ("+$@kewd_juperos*@discount/100+"z/"+(getmapusers("juperos_01.gat")+getmapusers("juperos_02.gat") + +getmapusers("jupe_area1.gat")+getmapusers("jupe_area2.gat")+getmapusers("jupe_core.gat") + +getmapusers("jupe_gate.gat")+getmapusers("jupe_area1.gat"))+" "+$@ked_users$+")", + "- Kiehl Doll Factory ("+$@kewd_kiehl*@discount/100+"z/"+(getmapusers("kh_dun01.gat") + +getmapusers("kh_dun02.gat"))+" "+$@ked_users$+")", + "- Ice Cave("+$@kewd_iceCave*@discount/100+"z/"+(getmapusers("ice_dun01.gat") + +getmapusers("ice_dun02.gat")+getmapusers("ice_dun03.gat"))+" "+$@ked_users$+")", + "- LightHalzen Rekkenber ("+$@kewd_lightHalzen*@discount/100+"z/"+(getmapusers("lhz_dun01.gat") + +getmapusers("lhz_dun02.gat")+getmapusers("lhz_dun03.gat"))+" "+$@ked_users$+")", + "- Lou Yang Royal Tomb ("+$@kewd_louYang*@discount/100+"z/"+(getmapusers("lou_dun01.gat") + +getmapusers("lou_dun02.gat")+getmapusers("lou_dun03.gat"))+" "+$@ked_users$+")", + "- Magma Dungeon ("+$@kewd_magma*@discount/100+"z/"+(getmapusers("mag_dun01.gat") + +getmapusers("mag_dun02.gat"))+" "+$@ked_users$+")", + "- Odin Temple ("+$@kewd_odin*@discount/100+"z/"+(getmapusers("odin_tem01.gat") + +getmapusers("odin_tem02.gat")+getmapusers("odin_tem03.gat"))+" "+$@ked_users$+")", + "- Orc Dungeon ("+$@kewd_orc*@discount/100+"z/"+(getmapusers("orcsdun01.gat") + +getmapusers("orcsdun02.gat"))+" "+$@ked_users$+")", + "- Payon Dungeon ("+$@kewd_payon*@discount/100+"z/"+(getmapusers("pay_dun00.gat") + +getmapusers("pay_dun01.gat")+getmapusers("pay_dun02.gat")+getmapusers("pay_dun03.gat") + +getmapusers("pay_dun04.gat"))+" "+$@ked_users$+")", + "- Pyramid ("+$@kewd_pyramid*@discount/100+"z/"+(getmapusers("moc_pryd01.gat")+getmapusers("moc_pryd02.gat") + +getmapusers("moc_pryd03.gat")+getmapusers("moc_pryd04.gat")+getmapusers("moc_pryd05.gat") + +getmapusers("moc_pryd06.gat")+getmapusers("moc_prydb1.gat"))+" "+$@ked_users$+")", + "- Rachel Temple ("+$@kewd_rachel*@discount/100+"z/"+(getmapusers("ra_san01.gat") + +getmapusers("ra_san02.gat")+getmapusers("ra_san03.gat")+getmapusers("ra_san04.gat") + +getmapusers("ra_san05.gat"))+" "+$@ked_users$+")", + "- Sphinx ("+$@kewd_sphinx*@discount/100+"z/"+(getmapusers("in_sphinx1.gat") + +getmapusers("in_sphinx2.gat")+getmapusers("in_sphinx3.gat")+getmapusers("in_sphinx4.gat") + +getmapusers("in_sphinx5.gat"))+" "+$@ked_users$+")", + "- Sunken Ship ("+$@kewd_sunkenShip*@discount/100+"z/"+(getmapusers("treasure01.gat") + +getmapusers("treasure02.gat"))+" "+$@ked_users$+")", + "- Thanatos Tower ("+$@kewd_thanatosTower*@discount/100+"z/"+(getmapusers("tha_t01.gat") + +getmapusers("tha_t02.gat")+getmapusers("tha_t03.gat")+getmapusers("tha_t04.gat") + +getmapusers("tha_t05.gat")+getmapusers("tha_t06.gat")+getmapusers("tha_t07.gat") + +getmapusers("tha_t08.gat")+getmapusers("tha_t09.gat")+getmapusers("tha_t10.gat") + +getmapusers("tha_t11.gat")+getmapusers("tha_t12.gat")+getmapusers("thana_step.gat") + +getmapusers("thana_boss.gat"))+" "+$@ked_users$+")", + "- Toy Factory ("+$@kewd_toyFactory*@discount/100+"z/"+(getmapusers("xmas_dun01.gat") + +getmapusers("xmas_dun02.gat"))+" "+$@ked_users$+")", + "- Turtle Island ("+$@kewd_turtleIsland*@discount/100+"z/"+(getmapusers("tur_dun01.gat") + +getmapusers("tur_dun02.gat")+getmapusers("tur_dun03.gat")+getmapusers("tur_dun04.gat") + +getmapusers("tur_dun05.gat")+getmapusers("tur_dun06.gat"))+" "+$@ked_users$+")", + "- Umbala Dungeon ("+$@kewd_umbala*@discount/100+"z/"+(getmapusers("um_dun01.gat") + +getmapusers("um_dun02.gat"))+" "+$@ked_users$+")" ); } else { set @kmenu, select( @@ -178,12 +193,16 @@ function SF_umbala; "- Gon Ryun Dungeon ("+$@kewd_gonRyun*@discount/100+"z)", "- Hidden Temple ("+$@kewd_hiddenTemple*@discount/100+"z)", "- Juperos ("+$@kewd_juperos*@discount/100+"z)", + "- Kiehl Doll Factory ("+$@kewd_kiehl*@discount/100+"z)", + "- Ice Cave ("+$@kewd_iceCave*@discount/100+"z)", "- LightHalzen Rekkenber ("+$@kewd_lightHalzen*@discount/100+"z)", "- Lou Yang Royal Tomb ("+$@kewd_louYang*@discount/100+"z)", "- Magma Dungeon ("+$@kewd_magma*@discount/100+"z)", + "- Odin Temple ("+$@kewd_odin*@discount/100+"z)", "- Orcs Dungeon ("+$@kewd_orc*@discount/100+"z)", "- Payon Dungeon ("+$@kewd_payon*@discount/100+"z)", "- Pyramid ("+$@kewd_pyramid*@discount/100+"z)", + "- Rachel Temple ("+$@kewd_rachel*@discount/100+"z)", "- Sphinx ("+$@kewd_sphinx*@discount/100+"z)", "- Sunken Ship ("+$@kewd_sunkenShip*@discount/100+"z)", "- Thanatos Tower ("+$@kewd_thanatosTower*@discount/100+"z)", @@ -242,39 +261,51 @@ function SF_umbala; SF_juperos(); break; case 18: - SF_lightHalzen(); + SF_kiehl(); break; case 19: - SF_louYang(); + SF_iceCave(); break; case 20: - SF_magma(); + SF_lightHalzen(); break; case 21: - SF_orcs(); + SF_louYang(); break; case 22: - SF_payon(); + SF_magma(); break; case 23: - SF_pyramid(); + SF_odin(); break; case 24: - SF_sphinx(); + SF_orcs(); break; case 25: - SF_sunkenShip(); + SF_payon(); break; case 26: - SF_thanatosTower(); + SF_pyramid(); break; case 27: - SF_toyFactory(); + SF_rachel(); break; case 28: - SF_turtleIsland(); + SF_sphinx(); break; case 29: + SF_sunkenShip(); + break; + case 30: + SF_thanatosTower(); + break; + case 31: + SF_toyFactory(); + break; + case 32: + SF_turtleIsland(); + break; + case 33: SF_umbala(); break; default: @@ -311,7 +342,6 @@ function SF_check { set @discount,@discount*@discountKP/100; set @cost,@cost*@discount/100; - set @inc,@cost*$@kewd_levelCost/100; //@discountKP is used to reverse the price to before the KP discount takes place if (@discountKP == 0) @@ -319,38 +349,27 @@ function SF_check { if ($@kewd_deep == 0) return 1; - switch (getarg(2)) { - case 9: - set @cost9, @cost +8*@inc; - case 8: - set @cost8, @cost +7*@inc; - case 7: - set @cost7, @cost +6*@inc; - case 6: - set @cost6, @cost +5*@inc; - case 5: - set @cost5, @cost +4*@inc; - case 4: - set @cost4, @cost +3*@inc; - case 3: - set @cost3, @cost +2*@inc; - case 2: - set @cost2, @cost +@inc; - } + //Reuse temp variable to set floor costs. + set @mapI, getarg(2); + set @inc,@cost*$@kewd_levelCost/100; + while (@mapI > 1) { + setd "@cost"+@mapI, @cost+(@mapI-1)*@inc; + set @mapI, @mapI-1; + } return 1; } function SF_abyssLake { - if (!(SF_check(0x1, $@kewd_abyssLake, 3, @map$, 1, "hu_fild05"))) + if (!(SF_check(0x1, $@kewd_abyssLake, 3, @map$, 1, "hu_fild05.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Abyss Lake", - "- Entrance ("+@cost+"z/"+getmapusers("abyss_01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("abyss_02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("abyss_03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("abyss_01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("abyss_02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("abyss_03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -362,28 +381,28 @@ function SF_abyssLake { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"hu_fild05",173,308; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"hu_fild05.gat",173,308; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"abyss_02",272,270; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"abyss_02.gat",272,270; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"abyss_03",116,29; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"abyss_03.gat",116,29; break; } } function SF_amatsu { - if (!(SF_check(0x2, $@kewd_amatsu, 3, @map$, 1, "ama_in02"))) + if (!(SF_check(0x2, $@kewd_amatsu, 3, @map$, 1, "ama_in02.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Amatsu Dungeon", - "- Entrance ("+@cost+"z/"+getmapusers("ama_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("ama_dun02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("ama_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("ama_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("ama_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("ama_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -395,25 +414,25 @@ function SF_amatsu { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ama_in02",120,181; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ama_in02.gat",120,181; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ama_dun02",34,41; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ama_dun02.gat",34,41; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"ama_dun03",119,14; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"ama_dun03.gat",119,14; break; } } function SF_antHell { - if (!(SF_check(0x4, $@kewd_antHell, 1, @map$, 2, "moc_fild04","moc_fild15"))) + if (!(SF_check(0x4, $@kewd_antHell, 1, @map$, 2, "moc_fild04.gat","moc_fild15.gat"))) return; if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Ant Hell", - "- Northern Entrance ("+@cost+"z/"+getmapusers("anthell01")+" "+$@ked_users$+")", - "- Southern Entrance ("+@cost+"z/"+getmapusers("anthell02")+" "+$@ked_users$+")" + "- Northern Entrance ("+@cost+"z/"+getmapusers("anthell01.gat")+" "+$@ked_users$+")", + "- Southern Entrance ("+@cost+"z/"+getmapusers("anthell02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -424,24 +443,24 @@ function SF_antHell { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild04",201,327; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild04.gat",201,327; break; case 3: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild15",246,251; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild15.gat",246,251; break; } } function SF_ayothaya { - if (!(SF_check(0x8, $@kewd_ayothaya, 2, @map$, 1, "ayo_fild02"))) + if (!(SF_check(0x8, $@kewd_ayothaya, 2, @map$, 1, "ayo_fild02.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Ancient Shrine", - "- Entrance ("+@cost+"z/"+getmapusers("ayo_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("ayo_dun02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("ayo_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("ayo_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -452,27 +471,27 @@ function SF_ayothaya { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ayo_fild02",273,150; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ayo_fild02.gat",273,150; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ayo_dun02",24,28; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ayo_dun02.gat",24,28; break; } } function SF_byalan { - if (!(SF_check(0x10, $@kewd_byalan, 5, @map$, 1, "izlu2dun"))) + if (!(SF_check(0x10, $@kewd_byalan, 5, @map$, 1, "izlu2dun.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Undersea Tunnel", - "- Entrance ("+@cost+"z/"+getmapusers("iz_dun00")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("iz_dun01")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("iz_dun02")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("iz_dun03")+" "+$@ked_users$+")", - "- Level 5 ("+@cost5+"z/"+getmapusers("iz_dun04")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("iz_dun00.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("iz_dun01.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("iz_dun02.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("iz_dun03.gat")+" "+$@ked_users$+")", + "- Level 5 ("+@cost5+"z/"+getmapusers("iz_dun04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -486,33 +505,33 @@ function SF_byalan { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"izlu2dun",114,84; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"izlu2dun.gat",114,84; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun01",253,252; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun01.gat",253,252; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun02",236,204; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun02.gat",236,204; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun03",32,63; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun03.gat",32,63; break; case 6: - callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun04",26,27; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"iz_dun04.gat",26,27; break; } } function SF_comodo { - if (!(SF_check(0x20, $@kewd_comodo, 1, @map$, 2, "comodo","cmd_fild01"))) + if (!(SF_check(0x20, $@kewd_comodo, 1, @map$, 2, "comodo.gat","cmd_fild01.gat"))) return; if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Comodo Caves", - "- Mao, The Eastern Cave ("+@cost+"z/"+getmapusers("beach_dun3")+" "+$@ked_users$+")", - "- Karu, The Western Cave ("+@cost+"z/"+getmapusers("beach_dun")+" "+$@ked_users$+")", - "- Ruande, The Northern Cave ("+@cost+"z/"+getmapusers("beach_dun2")+" "+$@ked_users$+")" + "- Mao, The Eastern Cave ("+@cost+"z/"+getmapusers("beach_dun3.gat")+" "+$@ked_users$+")", + "- Karu, The Western Cave ("+@cost+"z/"+getmapusers("beach_dun.gat")+" "+$@ked_users$+")", + "- Ruande, The Northern Cave ("+@cost+"z/"+getmapusers("beach_dun2.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -524,33 +543,33 @@ function SF_comodo { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"cmd_fild01",34,325; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"cmd_fild01.gat",34,325; break; case 3: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"comodo",32,209; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"comodo.gat",32,209; break; case 4: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"comodo",180,352; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"comodo.gat",180,352; break; } } function SF_clockTower { - if (!(SF_check(0x40, $@kewd_clockTower, 5, @map$, 1, "aldebaran"))) + if (!(SF_check(0x40, $@kewd_clockTower, 5, @map$, 1, "aldebaran.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Clock Tower", - "- Entrance ("+@cost+"z/"+getmapusers("c_tower1")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("c_tower2")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("c_tower3")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("c_tower4")+" "+$@ked_users$+")", - "- Basement 1 ("+@cost2+"z/"+getmapusers("alde_dun01")+" "+$@ked_users$+")", - "- Basement 2 ("+@cost3+"z/"+getmapusers("alde_dun02")+" "+$@ked_users$+")", - "- Basement 3 ("+@cost4+"z/"+getmapusers("alde_dun03")+" "+$@ked_users$+")", - "- Basement 4 ("+@cost5+"z/"+getmapusers("alde_dun04")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("c_tower1.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("c_tower2.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("c_tower3.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("c_tower4.gat")+" "+$@ked_users$+")", + "- Basement 1 ("+@cost2+"z/"+getmapusers("alde_dun01.gat")+" "+$@ked_users$+")", + "- Basement 2 ("+@cost3+"z/"+getmapusers("alde_dun02.gat")+" "+$@ked_users$+")", + "- Basement 3 ("+@cost4+"z/"+getmapusers("alde_dun03.gat")+" "+$@ked_users$+")", + "- Basement 4 ("+@cost5+"z/"+getmapusers("alde_dun04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -567,43 +586,43 @@ function SF_clockTower { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"aldebaran",140,130; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"aldebaran.gat",140,130; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"c_tower2",268,26; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"c_tower2.gat",268,26; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"c_tower3",68,146; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"c_tower3.gat",68,146; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"c_tower4",185,44; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"c_tower4.gat",185,44; break; case 6: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun01",297,25; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun01.gat",297,25; break; case 7: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun02",43,24; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun02.gat",43,24; break; case 8: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun03",18,267; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun03.gat",18,267; break; case 9: - callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun04",82,267; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"alde_dun04.gat",82,267; break; } } function SF_coalMine { - if (!(SF_check(0x80, $@kewd_coalMines, 3, @map$, 1, "mjolnir_02"))) + if (!(SF_check(0x80, $@kewd_coalMines, 3, @map$, 1, "mjolnir_02.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Mjolnir Dead Pit", - "- Entrance ("+@cost+"z/"+getmapusers("mjo_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("mjo_dun02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("mjo_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("mjo_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("mjo_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("mjo_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -615,29 +634,29 @@ function SF_coalMine { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"mjolnir_02",89,358; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"mjolnir_02.gat",89,358; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"mjo_dun02",376,342; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"mjo_dun02.gat",376,342; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"mjo_dun03",305,260; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"mjo_dun03.gat",305,260; break; } } function SF_culvert { - if (!(SF_check(0x100, $@kewd_culvert, 4, @map$, 1, "prt_fild05"))) + if (!(SF_check(0x100, $@kewd_culvert, 4, @map$, 1, "prt_fild05.gat"))) return; if ($@kewd_deep == 0) { set @submenu, 2; } else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Prontera Culvert", - "- Entrance ("+@cost+"z/"+getmapusers("prt_sewb1")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("prt_sewb2")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("prt_sewb3")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("prt_sewb4")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("prt_sewb1.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("prt_sewb2.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("prt_sewb3.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("prt_sewb4.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -650,30 +669,30 @@ function SF_culvert { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"prt_fild05",274,208; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"prt_fild05.gat",274,208; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb2",19,19; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb2.gat",19,19; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb3",180,169; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb3.gat",180,169; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb4",100,92; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"prt_sewb4.gat",100,92; break; } } function SF_einbech { - if (!(SF_check(0x200, $@kewd_einbech, 2, @map$, 1, "einbech"))) + if (!(SF_check(0x200, $@kewd_einbech, 2, @map$, 1, "einbech.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Einbroch Mines", - "- Entrance ("+@cost+"z/"+getmapusers("ein_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("ein_dun02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("ein_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("ein_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -684,64 +703,64 @@ function SF_einbech { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"einbech",138,244; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"einbech.gat",138,244; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ein_dun02",290,285; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ein_dun02.gat",290,285; break; } } function SF_geffen { - if (!(SF_check(0x800, $@kewd_geffen, 3, @map$, 1, "gef_tower"))) + if (!(SF_check(0x800, $@kewd_geffen, 3, @map$, 1, "gef_tower.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Geffen Dungeon", - "- Entrance ("+@cost+"z/"+getmapusers("gef_dun00")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("gef_dun01")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("gef_dun02")+" "+$@ked_users$+")" -// "- Level 4 ("+@cost4+"z/"+getmapusers("gef_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("gef_dun00.gat")+" "+$@ked_users$+")", + "- Level 1 ("+@cost2+"z/"+getmapusers("gef_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost3+"z/"+getmapusers("gef_dun02.gat")+" "+$@ked_users$+")" +// "- Level 3 ("+@cost4+"z/"+getmapusers("gef_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( "- Cancel warp to Geffen Dungeon", "- Entrance ("+@cost+"z)", - "- Level 2 ("+@cost2+"z)", - "- Level 3 ("+@cost3+"z)" -// "- Level 4 ("+@cost4+"z)" + "- Level 1 ("+@cost2+"z)", + "- Level 2 ("+@cost3+"z)" +// "- Level 3 ("+@cost4+"z)" ); } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gef_tower",147,35; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gef_tower.gat",147,35; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun01",115,236; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun01.gat",115,236; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun02",106,132; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun02.gat",106,132; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun03",203,200; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gef_dun03.gat",203,200; break; } } function SF_gefenia { - if (!(SF_check(0x400, $@kewd_gefenia, 2, @map$, 4, "gefenia01","gefenia02","gefenia03","gefenia04"))) + if (!(SF_check(0x400, $@kewd_gefenia, 2, @map$, 4, "gefenia01.gat","gefenia02.gat","gefenia03.gat","gefenia04.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Gefenia", - "- Level 1 ("+@cost+"z/"+getmapusers("gefenia01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("gefenia02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost2+"z/"+getmapusers("gefenia03")+" "+$@ked_users$+")", - "- Level 4 ("+@cost+"z/"+getmapusers("gefenia04")+" "+$@ked_users$+")" + "- Level 1 ("+@cost+"z/"+getmapusers("gefenia01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("gefenia02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost2+"z/"+getmapusers("gefenia03.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost+"z/"+getmapusers("gefenia04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -754,31 +773,31 @@ function SF_gefenia { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gefenia01",60,169; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gefenia01.gat",60,169; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gefenia02",116,116; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gefenia02.gat",116,116; break; case 4: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gefenia03",119,277; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gefenia03.gat",119,277; break; case 5: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gefenia04",129,86; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gefenia04.gat",129,86; break; } } function SF_glastHeim { - if (!(SF_check(0x1000, $@kewd_glastHeim, 7, @map$, 1, "glast_01"))) + if (!(SF_check(0x1000, $@kewd_glastHeim, 7, @map$, 1, "glast_01.gat"))) return; if ($@kewd_deep == 0) { if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Glast Heim", - "- Church Entrance ("+@cost+"z/"+getmapusers("gl_church")+" "+$@ked_users$+")", - "- Castle Terrace ("+@cost+"z/"+(getmapusers("gl_cas01")+getmapusers("gl_cas02"))+" "+$@ked_users$+")", - "- Staircase Entrance ("+@cost+"z/"+getmapusers("gl_step")+" "+$@ked_users$+")", - "- Chivalry Entrance ("+@cost+"z/"+getmapusers("gl_knt01")+" "+$@ked_users$+")" + "- Church Entrance ("+@cost+"z/"+getmapusers("gl_church.gat")+" "+$@ked_users$+")", + "- Castle Terrace ("+@cost+"z/"+(getmapusers("gl_cas01.gat")+getmapusers("gl_cas02.gat"))+" "+$@ked_users$+")", + "- Staircase Entrance ("+@cost+"z/"+getmapusers("gl_step.gat")+" "+$@ked_users$+")", + "- Chivalry Entrance ("+@cost+"z/"+getmapusers("gl_knt01.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -794,20 +813,20 @@ function SF_glastHeim { } else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Glast Heim", - "- Church Entrance ("+@cost+"z/"+getmapusers("gl_church")+" "+$@ked_users$+")", - "- Churchyard ("+@cost2+"z/"+getmapusers("gl_chyard")+" "+$@ked_users$+")", - "- Castle Terrace ("+@cost+"z/"+(getmapusers("gl_cas01")+getmapusers("gl_cas02"))+" "+$@ked_users$+")", - "- Staircase Entrance ("+@cost+"z/"+getmapusers("gl_step")+" "+$@ked_users$+")", - "- Chivalry Entrance ("+@cost+"z/"+getmapusers("gl_knt01")+" "+$@ked_users$+")", - "- Chivalry Level 2 ("+@cost2+"z/"+getmapusers("gl_knt02")+" "+$@ked_users$+")", - "- Underground Prison 1 ("+@cost2+"z/"+getmapusers("gl_prison")+" "+$@ked_users$+")", - "- Underground Prison 2 ("+@cost3+"z/"+getmapusers("gl_prison1")+" "+$@ked_users$+")", - "- Culvert Level 1 ("+@cost4+"z/"+getmapusers("gl_sew01")+" "+$@ked_users$+")", - "- Culvert Level 2 ("+@cost3+"z/"+getmapusers("gl_sew02")+" "+$@ked_users$+")", - "- Culvert Level 3 ("+@cost4+"z/"+getmapusers("gl_sew03")+" "+$@ked_users$+")", - "- Culvert Level 4 ("+@cost5+"z/"+getmapusers("gl_sew04")+" "+$@ked_users$+")", - "- Underground Cave 1 ("+@cost6+"z/"+getmapusers("gl_dun01")+" "+$@ked_users$+")", - "- Underground Cave 2 ("+@cost7+"z/"+getmapusers("gl_dun02")+" "+$@ked_users$+")" + "- Church Entrance ("+@cost+"z/"+getmapusers("gl_church.gat")+" "+$@ked_users$+")", + "- Churchyard ("+@cost2+"z/"+getmapusers("gl_chyard.gat")+" "+$@ked_users$+")", + "- Castle Terrace ("+@cost+"z/"+(getmapusers("gl_cas01.gat")+getmapusers("gl_cas02.gat"))+" "+$@ked_users$+")", + "- Staircase Entrance ("+@cost+"z/"+getmapusers("gl_step.gat")+" "+$@ked_users$+")", + "- Chivalry Entrance ("+@cost+"z/"+getmapusers("gl_knt01.gat")+" "+$@ked_users$+")", + "- Chivalry Level 2 ("+@cost2+"z/"+getmapusers("gl_knt02.gat")+" "+$@ked_users$+")", + "- Underground Prison 1 ("+@cost2+"z/"+getmapusers("gl_prison.gat")+" "+$@ked_users$+")", + "- Underground Prison 2 ("+@cost3+"z/"+getmapusers("gl_prison1.gat")+" "+$@ked_users$+")", + "- Culvert Level 1 ("+@cost4+"z/"+getmapusers("gl_sew01.gat")+" "+$@ked_users$+")", + "- Culvert Level 2 ("+@cost3+"z/"+getmapusers("gl_sew02.gat")+" "+$@ked_users$+")", + "- Culvert Level 3 ("+@cost4+"z/"+getmapusers("gl_sew03.gat")+" "+$@ked_users$+")", + "- Culvert Level 4 ("+@cost5+"z/"+getmapusers("gl_sew04.gat")+" "+$@ked_users$+")", + "- Underground Cave 1 ("+@cost6+"z/"+getmapusers("gl_dun01.gat")+" "+$@ked_users$+")", + "- Underground Cave 2 ("+@cost7+"z/"+getmapusers("gl_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -830,61 +849,61 @@ function SF_glastHeim { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01",206,136; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01.gat",206,136; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_chyard",147,15; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_chyard.gat",147,15; break; case 4: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01",199,335; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01.gat",199,335; break; case 5: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01",62,107; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01.gat",62,107; break; case 6: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01",69,193; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"glast_01.gat",69,193; break; case 7: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_knt02",157,287; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_knt02.gat",157,287; break; case 8: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_prison",14,70; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gl_prison.gat",14,70; break; case 9: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gl_prison1",150,14; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gl_prison1.gat",150,14; break; case 10: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew01",258,255; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew01.gat",258,255; break; case 11: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew02",108,291; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew02.gat",108,291; break; case 12: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew03",171,283; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew03.gat",171,283; break; case 13: - callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew04",68,277; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"gl_sew04.gat",68,277; break; case 14: - callfunc "F_keWarp",@cost6*100/@discountKP,$@kewd_discount,e_hmm,"gl_dun01",133,271; + callfunc "F_keWarp",@cost6*100/@discountKP,$@kewd_discount,e_hmm,"gl_dun01.gat",133,271; break; case 15: - callfunc "F_keWarp",@cost7*100/@discountKP,$@kewd_discount,e_hmm,"gl_dun02",224,274; + callfunc "F_keWarp",@cost7*100/@discountKP,$@kewd_discount,e_hmm,"gl_dun02.gat",224,274; break; } } function SF_gonRyun { - if (!(SF_check(0x2000, $@kewd_gonRyun, 3, @map$, 1, "gonryun"))) + if (!(SF_check(0x2000, $@kewd_gonRyun, 3, @map$, 1, "gonryun.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Gon Ryun Dungeon", - "- Entrance ("+@cost+"z/"+getmapusers("gon_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("gon_dun02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("gon_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("gon_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("gon_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("gon_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -896,28 +915,28 @@ function SF_gonRyun { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gonryun",161,195; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"gonryun.gat",161,195; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gon_dun02",22,114; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"gon_dun02.gat",22,114; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gon_dun03",68,11; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"gon_dun03.gat",68,11; break; } } function SF_hiddenTemple { - if (!(SF_check(0x4000, $@kewd_hiddenTemple, 3, @map$, 1, "prt_fild01"))) + if (!(SF_check(0x4000, $@kewd_hiddenTemple, 3, @map$, 1, "prt_fild01.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Laberynth Forest", - "- Entrance ("+@cost+"z/"+getmapusers("prt_maze01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("prt_maze02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("prt_maze03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("prt_maze01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("prt_maze02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("prt_maze03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -929,28 +948,28 @@ function SF_hiddenTemple { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"prt_fild01",136,361; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"prt_fild01.gat",136,361; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"prt_maze02",106,62; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"prt_maze02.gat",106,62; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"prt_maze03",23,8; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"prt_maze03.gat",23,8; break; } } function SF_juperos { - if (!(SF_check(0x8000, $@kewd_juperos, 3, @map$, 1, "jupe_cave"))) + if (!(SF_check(0x8000, $@kewd_juperos, 3, @map$, 1, "jupe_cave.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Juperos", - "- Entrance ("+@cost+"z/"+getmapusers("juperos_01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("juperos_02")+" "+$@ked_users$+")", - "- Core ("+@cost3+"z/"+getmapusers("jupe_core")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("juperos_01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("juperos_02.gat")+" "+$@ked_users$+")", + "- Core ("+@cost3+"z/"+getmapusers("jupe_core.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -962,28 +981,89 @@ function SF_juperos { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"jupe_cave",55,52; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"jupe_cave.gat",55,52; + break; + case 3: + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"juperos_02.gat",37,63; + break; + case 4: + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"jupe_gate.gat",-1,-1; + break; + } +} + +function SF_kiehl { + if (!(SF_check(0x400, $@kewd_kiehl, 3, @map$, 1, "yuno_fild08.gat"))) + return; + if ($@kewd_deep == 0) + set @submenu, 2; + else if ($@kewd_showOnline) { + set @submenu, select( + "- Cancel warp to Machine Doll Factory", + "- Entrance ("+@cost+"z/"+getmapusers("kh_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("kh_dun02.gat")+" "+$@ked_users$+")" + ); + } else { + set @submenu, select( + "- Cancel warp to Machine Doll Factory", + "- Entrance ("+@cost+"z)", + "- Level 2 ("+@cost2+"z)" + ); + } + switch (@submenu) { + case 2: + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"yuno_fild08.gat",80,179; + break; + case 3: + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"kh_dun02.gat",41,198; + break; + } +} + +function SF_iceCave { + if (!(SF_check(0x20000000, $@kewd_iceCave, 3, @map$, 1, "ra_fild01.gat"))) + return; + if ($@kewd_deep == 0) + set @submenu, 2; + else if ($@kewd_showOnline) { + set @submenu, select( + "- Cancel warp to the Ice Cave", + "- Entrance ("+@cost+"z/"+getmapusers("ice_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("ice_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("ice_dun03.gat")+" "+$@ked_users$+")" + ); + } else { + set @submenu, select( + "- Cancel warp to the Ice Cave", + "- Entrance ("+@cost+"z)", + "- Level 2 ("+@cost2+"z)", + "- Level 3 ("+@cost3+"z)" + ); + } + switch (@submenu) { + case 2: + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ra_fild01.gat",233,319; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"juperos_02",37,63; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ice_dun02.gat",151,151; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"jupe_gate",-1,-1; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"ice_dun03.gat",148,25; break; } } function SF_lightHalzen { - if (!(SF_check(0x10000, $@kewd_lightHalzen, 3, @map$, 1, "lighthalzen"))) + if (!(SF_check(0x10000, $@kewd_lightHalzen, 3, @map$, 1, "lighthalzen.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Rekkenber", - "- Entrance ("+@cost+"z/"+getmapusers("lou_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("lou_dun02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("lou_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("lhz_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("lhz_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("lhz_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -996,29 +1076,29 @@ function SF_lightHalzen { switch (@submenu) { case 2: //This is the Rekkenber building entrance, which officially is only a dungeon exit. -// callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen",74,72; - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen",303,302; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen.gat",74,72; +// callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen.gat",303,302; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"lhz_dun02",154,18; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"lhz_dun02.gat",154,18; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"lhz_dun03",141,132; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"lhz_dun03.gat",141,132; break; } } function SF_louYang { - if (!(SF_check(0x20000, $@kewd_louYang, 3, @map$, 1, "louyang"))) + if (!(SF_check(0x20000, $@kewd_louYang, 3, @map$, 1, "louyang.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Royal Tomb", - "- Entrance ("+@cost+"z/"+getmapusers("lou_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("lou_dun02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("lou_dun03")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("lou_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("lou_dun02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("lou_dun03.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1030,27 +1110,27 @@ function SF_louYang { }; switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"louyang",41,267; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"louyang.gat",41,267; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"lou_dun02",281,20; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"lou_dun02.gat",281,20; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"lou_dun03",165,39; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"lou_dun03.gat",165,39; break; } } function SF_magma { - if (!(SF_check(0x40000, $@kewd_magma, 2, @map$, 1, "yuno_fild03"))) + if (!(SF_check(0x40000, $@kewd_magma, 2, @map$, 1, "yuno_fild03.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Nogg Road", - "- Entrance ("+@cost+"z/"+getmapusers("mag_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("mag_dun02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("mag_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("mag_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1061,22 +1141,55 @@ function SF_magma { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"yuno_fild03",35,135; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"yuno_fild03.gat",35,135; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"mag_dun02",47,30; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"mag_dun02.gat",47,30; + break; + } +} + +function SF_odin { + if (!(SF_check(0x10000000, $@kewd_odin, 5, @map$, 1, "odin_tem01.gat"))) + return; + if ($@kewd_deep == 0) + set @submenu, 2; + else if ($@kewd_showOnline) { + set @submenu, select( + "- Cancel warp to the Odin Temple", + "- Entrance ("+@cost+"z/"+getmapusers("odin_tem01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("odin_tem02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("odin_tem03.gat")+" "+$@ked_users$+")" + ); + } else { + set @submenu, select( + "- Cancel warp to the Odin Temple", + "- Entrance ("+@cost+"z)", + "- Level 2 ("+@cost2+"z)", + "- Level 3 ("+@cost3+"z)" + ); + } + switch (@submenu) { + case 2: + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"odin_tem01.gat",91,145; + break; + case 3: + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"odin_tem02.gat",25,181; + break; + case 4: + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"odin_tem03.gat",120,54; break; } } function SF_orcs { - if (!(SF_check(0x80000, $@kewd_orc, 2, @map$, 1, "gef_fild10"))) + if (!(SF_check(0x80000, $@kewd_orc, 2, @map$, 1, "gef_fild10.gat"))) return; if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Orcs Dungeon", - "- Front Entrance ("+@cost+"z/"+getmapusers("orcsdun01")+" "+$@ked_users$+")", - "- Back Entrance ("+@cost+"z/"+getmapusers("orcsdun02")+" "+$@ked_users$+")" + "- Front Entrance ("+@cost+"z/"+getmapusers("orcsdun01.gat")+" "+$@ked_users$+")", + "- Back Entrance ("+@cost+"z/"+getmapusers("orcsdun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1087,27 +1200,27 @@ function SF_orcs { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"in_orcs01",34,165; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"in_orcs01.gat",34,165; break; case 3: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"in_orcs01",112,99; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"in_orcs01.gat",112,99; break; } } function SF_payon { - if (!(SF_check(0x100000, $@kewd_payon, 5, @map$, 1, "pay_arche"))) + if (!(SF_check(0x100000, $@kewd_payon, 5, @map$, 1, "pay_arche.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Payon Cave", - "- Entrance ("+@cost+"z/"+getmapusers("pay_dun00")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("pay_dun01")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("pay_dun02")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("pay_dun03")+" "+$@ked_users$+")", - "- Level 5 ("+@cost5+"z/"+getmapusers("pay_dun04")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("pay_dun00.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("pay_dun01.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("pay_dun02.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("pay_dun03.gat")+" "+$@ked_users$+")", + "- Level 5 ("+@cost5+"z/"+getmapusers("pay_dun04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1121,37 +1234,37 @@ function SF_payon { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"pay_arche",41,133; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"pay_arche.gat",41,133; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun01",19,33; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun01.gat",19,33; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun02",19,63; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun02.gat",19,63; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun03",155,159; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun03.gat",155,159; break; case 6: - callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun04",34,202; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"pay_dun04.gat",34,202; break; } } function SF_pyramid { - if (!(SF_check(0x200000, $@kewd_pyramid, 4, @map$,1, "moc_ruins"))) + if (!(SF_check(0x200000, $@kewd_pyramid, 4, @map$,1, "moc_ruins.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Pyramid", - "- Entrance ("+@cost+"z/"+getmapusers("moc_pryd01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("moc_pryd02")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("moc_pryd03")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("moc_pryd04")+" "+$@ked_users$+")", - "- Basement 1 ("+@cost2+"z/"+getmapusers("moc_pryd05")+" "+$@ked_users$+")", - "- Basement 2 ("+@cost3+"z/"+getmapusers("moc_pryd06")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("moc_pryd01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("moc_pryd02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("moc_pryd03.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("moc_pryd04.gat")+" "+$@ked_users$+")", + "- Basement 1 ("+@cost2+"z/"+getmapusers("moc_pryd05.gat")+" "+$@ked_users$+")", + "- Basement 2 ("+@cost3+"z/"+getmapusers("moc_pryd06.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1166,39 +1279,83 @@ function SF_pyramid { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_ruins",62,162; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_ruins.gat",62,162; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd02",10,192; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd02.gat",10,192; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd03",100,92; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd03.gat",100,92; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd04",18,187; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd04.gat",18,187; break; case 6: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd05",94,96; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd05.gat",94,96; break; case 7: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd06",192,11; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"moc_pryd06.gat",192,11; + break; + } +} + +function SF_rachel { + if (!(SF_check(0x40000000, $@kewd_rachel, 5, @map$, 1, "ra_temin.gat"))) + return; + if ($@kewd_deep == 0) + set @submenu, 2; + else if ($@kewd_showOnline) { + set @submenu, select( + "- Cancel warp to Freya's Temple", + "- Entrance ("+@cost+"z/"+getmapusers("ra_san01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("ra_san02.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("ra_san03.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("ra_san04.gat")+" "+$@ked_users$+")", + "- Level 5 ("+@cost5+"z/"+getmapusers("ra_san05.gat")+" "+$@ked_users$+")" + ); + } else { + set @submenu, select( + "- Cancel warp to Freya's Temple", + "- Entrance ("+@cost+"z)", + "- Level 2 ("+@cost2+"z)", + "- Level 3 ("+@cost3+"z)", + "- Level 4 ("+@cost4+"z)", + "- Level 5 ("+@cost5+"z)" + ); + } + + switch (@submenu) { + case 2: + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"ra_temin.gat",276,318; + break; + case 3: + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"ra_san02.gat",36,21; + break; + case 4: + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"ra_san03.gat",10,150; + break; + case 5: + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"ra_san04.gat",204,216; + break; + case 6: + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"ra_san05.gat",149,16; break; } } function SF_sphinx { - if (!(SF_check(0x400000, $@kewd_sphinx, 5, @map$, 1, "moc_fild19"))) + if (!(SF_check(0x400000, $@kewd_sphinx, 5, @map$, 1, "moc_fild19.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to the Sphinx", - "- Entrance ("+@cost+"z/"+getmapusers("in_sphinx1")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("in_sphinx2")+" "+$@ked_users$+")", - "- Level 3 ("+@cost3+"z/"+getmapusers("in_sphinx3")+" "+$@ked_users$+")", - "- Level 4 ("+@cost4+"z/"+getmapusers("in_sphinx4")+" "+$@ked_users$+")", - "- Level 5 ("+@cost5+"z/"+getmapusers("in_sphinx5")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("in_sphinx1.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("in_sphinx2.gat")+" "+$@ked_users$+")", + "- Level 3 ("+@cost3+"z/"+getmapusers("in_sphinx3.gat")+" "+$@ked_users$+")", + "- Level 4 ("+@cost4+"z/"+getmapusers("in_sphinx4.gat")+" "+$@ked_users$+")", + "- Level 5 ("+@cost5+"z/"+getmapusers("in_sphinx5.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1213,33 +1370,33 @@ function SF_sphinx { switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild19",107,100; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild19.gat",107,100; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx2",149,81; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx2.gat",149,81; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx3",210,54; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx3.gat",210,54; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx4",10,222; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx4.gat",10,222; break; case 6: - callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx5",100,99; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"in_sphinx5.gat",100,99; break; } } function SF_sunkenShip { - if (!(SF_check(0x800000, $@kewd_sunkenShip, 2, @map$, 1, "alb2trea"))) + if (!(SF_check(0x800000, $@kewd_sunkenShip, 2, @map$, 1, "alb2trea.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Sunken Ship", - "- Entrance ("+@cost+"z/"+getmapusers("treasure01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("treasure02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("treasure01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("treasure02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1251,31 +1408,35 @@ function SF_sunkenShip { switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"alb2trea",87,103; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"alb2trea.gat",87,103; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"treasure02",102,27; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"treasure02.gat",102,27; break; } } function SF_thanatosTower { - if (!(SF_check(0x1000000, $@kewd_thanatosTower, 9, @map$, 1, "tha_t01"))) + if (!(SF_check(0x1000000, $@kewd_thanatosTower, 13, @map$, 1, "tha_scene01.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Thanatos Tower", - "- Entrance ("+@cost+"z/"+getmapusers("tha_t01")+" "+$@ked_users$+")", - "- Floor 2 ("+@cost2+"z/"+getmapusers("tha_t02")+" "+$@ked_users$+")", - "- Floor 3 ("+@cost3+"z/"+getmapusers("tha_t03")+" "+$@ked_users$+")", - "- Floor 4 ("+@cost4+"z/"+getmapusers("tha_t04")+" "+$@ked_users$+")", - "- Floor 5 ("+@cost5+"z/"+getmapusers("tha_t05")+" "+$@ked_users$+")", - "- Floor 6 ("+@cost6+"z/"+getmapusers("tha_t06")+" "+$@ked_users$+")", - "- Floor 7 ("+@cost7+"z/"+getmapusers("tha_t07")+" "+$@ked_users$+")", - "- Floor 8 ("+@cost8+"z/"+getmapusers("tha_t08")+" "+$@ked_users$+")", - "- Floor 9 ("+@cost9+"z/"+getmapusers("tha_t09")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("tha_t01.gat")+" "+$@ked_users$+")", + "- Floor 2 ("+@cost2+"z/"+getmapusers("tha_t02.gat")+" "+$@ked_users$+")", + "- Floor 3 ("+@cost3+"z/"+getmapusers("tha_t03.gat")+" "+$@ked_users$+")", + "- Floor 4 ("+@cost4+"z/"+getmapusers("tha_t04.gat")+" "+$@ked_users$+")", + "- Floor 5 ("+@cost5+"z/"+getmapusers("tha_t05.gat")+" "+$@ked_users$+")", + "- Floor 6 ("+@cost6+"z/"+getmapusers("tha_t06.gat")+" "+$@ked_users$+")", + "- Floor 7 ("+@cost7+"z/"+getmapusers("tha_t07.gat")+" "+$@ked_users$+")", + "- Floor 8 ("+@cost8+"z/"+getmapusers("tha_t08.gat")+" "+$@ked_users$+")", + "- Floor 9 ("+@cost9+"z/"+getmapusers("tha_t09.gat")+" "+$@ked_users$+")", + "- Floor 10 ("+@cost10+"z/"+getmapusers("tha_t10.gat")+" "+$@ked_users$+")", + "- Floor 11 ("+@cost11+"z/"+getmapusers("tha_t11.gat")+" "+$@ked_users$+")", + "- Floor 12 ("+@cost12+"z/"+getmapusers("tha_t12.gat")+" "+$@ked_users$+")" +// "- Terrace ("+@cost13+"z/"+getmapusers("thana_boss.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1288,42 +1449,58 @@ function SF_thanatosTower { "- Floor 6 ("+@cost6+"z)", "- Floor 7 ("+@cost7+"z)", "- Floor 8 ("+@cost8+"z)", - "- Floor 9 ("+@cost9+"z)" + "- Floor 9 ("+@cost9+"z)", + "- Floor 10 ("+@cost10+"z)", + "- Floor 11 ("+@cost11+"z)", + "- Floor 12 ("+@cost12+"z)" +// "- Terrace ("+@cost13+"z)" ); } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tha_scene01",139,201; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tha_scene01.gat",139,201; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"tha_t02",149,136; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"tha_t02.gat",149,136; break; case 4: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"tha_t03",220,159; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"tha_t03.gat",220,159; break; case 5: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t04",59,144; + callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t04.gat",59,144; break; case 6: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t05",62,9; + callfunc "F_keWarp",@cost5*100/@discountKP,$@kewd_discount,e_hmm,"tha_t05.gat",62,9; break; case 7: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t06",120,225; + callfunc "F_keWarp",@cost6*100/@discountKP,$@kewd_discount,e_hmm,"tha_t06.gat",120,225; break; case 8: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t07",32,166; + callfunc "F_keWarp",@cost7*100/@discountKP,$@kewd_discount,e_hmm,"tha_t07.gat",32,166; break; case 9: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t08",108,44; + callfunc "F_keWarp",@cost8*100/@discountKP,$@kewd_discount,e_hmm,"tha_t08.gat",108,44; break; case 10: - callfunc "F_keWarp",@cost4*100/@discountKP,$@kewd_discount,e_hmm,"tha_t09",87,145; + callfunc "F_keWarp",@cost9*100/@discountKP,$@kewd_discount,e_hmm,"tha_t09.gat",87,145; + break; + case 11: + callfunc "F_keWarp",@cost10*100/@discountKP,$@kewd_discount,e_hmm,"tha_t10.gat",166,138; + break; + case 12: + callfunc "F_keWarp",@cost11*100/@discountKP,$@kewd_discount,e_hmm,"tha_t11.gat",88,36; + break; + case 13: + callfunc "F_keWarp",@cost12*100/@discountKP,$@kewd_discount,e_hmm,"tha_t12.gat",132,55; + break; + case 14: + callfunc "F_keWarp",@cost13*100/@discountKP,$@kewd_discount,e_hmm,"thana_boss.gat",135,126; break; } } function SF_toyFactory { - if (!(SF_check(0x2000000, $@kewd_toyFactory, 2, @map$, 1, "xmas"))) + if (!(SF_check(0x2000000, $@kewd_toyFactory, 2, @map$, 1, "xmas.gat"))) return; if ($@kewd_deep == 0) @@ -1331,8 +1508,8 @@ function SF_toyFactory { else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Toy Factory", - "- Entrance ("+@cost+"z/"+getmapusers("xmas_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("xmas_dun02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("xmas_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("xmas_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1344,16 +1521,16 @@ function SF_toyFactory { switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"xmas",144,306; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"xmas.gat",144,306; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"xmas_dun02",129,133; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"xmas_dun02.gat",129,133; break; } } function SF_turtleIsland { - if (!(SF_check(0x4000000, $@kewd_turtleIsland, 3, @map$, 1, "tur_dun01"))) + if (!(SF_check(0x4000000, $@kewd_turtleIsland, 3, @map$, 1, "tur_dun01.gat"))) return; if ($@kewd_deep == 0) { if ($@kewd_turtleCave) @@ -1363,10 +1540,10 @@ function SF_turtleIsland { } else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Turtle Island", - "- Island Entrance ("+@cost+"z/"+getmapusers("tur_dun01")+" "+$@ked_users$+")", - "- Cave Entrance ("+@cost+"z/"+getmapusers("tur_dun02")+" "+$@ked_users$+")", - "- Cave Level 2 ("+@cost2+"z/"+getmapusers("tur_dun03")+" "+$@ked_users$+")", - "- Cave Level 3 ("+@cost3+"z/"+getmapusers("tur_dun04")+" "+$@ked_users$+")" + "- Island Entrance ("+@cost+"z/"+getmapusers("tur_dun01.gat")+" "+$@ked_users$+")", + "- Cave Entrance ("+@cost+"z/"+getmapusers("tur_dun02.gat")+" "+$@ked_users$+")", + "- Cave Level 2 ("+@cost2+"z/"+getmapusers("tur_dun03.gat")+" "+$@ked_users$+")", + "- Cave Level 3 ("+@cost3+"z/"+getmapusers("tur_dun04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1379,30 +1556,30 @@ function SF_turtleIsland { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun01",153,47; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun01.gat",153,47; break; case 3: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun01",155,234; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun01.gat",155,234; break; case 4: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun03",132,189; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun03.gat",132,189; break; case 5: - callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun04",100,192; + callfunc "F_keWarp",@cost3*100/@discountKP,$@kewd_discount,e_hmm,"tur_dun04.gat",100,192; break; } } function SF_umbala { - if (!(SF_check(0x8000000, $@kewd_umbala, 2, @map$, 1, "umbala"))) + if (!(SF_check(0x8000000, $@kewd_umbala, 2, @map$, 1, "umbala.gat"))) return; if ($@kewd_deep == 0) set @submenu, 2; else if ($@kewd_showOnline) { set @submenu, select( "- Cancel warp to Umbala Dungeon", - "- Entrance ("+@cost+"z/"+getmapusers("um_dun01")+" "+$@ked_users$+")", - "- Level 2 ("+@cost2+"z/"+getmapusers("um_dun02")+" "+$@ked_users$+")" + "- Entrance ("+@cost+"z/"+getmapusers("um_dun01.gat")+" "+$@ked_users$+")", + "- Level 2 ("+@cost2+"z/"+getmapusers("um_dun02.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -1413,10 +1590,10 @@ function SF_umbala { } switch (@submenu) { case 2: - callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"umbala",113,282; + callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"umbala.gat",113,282; break; case 3: - callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"um_dun02",48,31; + callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"um_dun02.gat",48,31; break; } } @@ -1426,336 +1603,137 @@ function SF_umbala { //Invoked when we want to add a map to the list of travelled-to dungeons function script F_keAddTravelDungeon { set @map$, getarg(0); -// Temporary code to update the previous variable format to the new one. - if(kewd_abyss) { - set kewd_travel,kewd_travel|0x1; - set kewd_abyss,0; - } - if(kewd_amatsu) { - set kewd_travel,kewd_travel|0x2; - set kewd_amatsu,0; - } - if(kewd_antHell) { - set kewd_travel,kewd_travel|0x4; - set kewd_antHell,0; - } - if(kewd_ayothaya) { - set kewd_travel,kewd_travel|0x8; - set kewd_ayothaya,0; - } - if(kewd_byalan) { - set kewd_travel,kewd_travel|0x10; - set kewd_byalan,0; - } - if(kewd_comodo) { - set kewd_travel,kewd_travel|0x20; - set kewd_comodo,0; - } - if(kewd_clockTower) { - set kewd_travel,kewd_travel|0x40; - set kewd_clockTower,0; - } - if(kewd_coalMines) { - set kewd_travel,kewd_travel|0x80; - set kewd_coalMines,0; - } - if(kewd_culvert) { - set kewd_travel,kewd_travel|0x100; - set kewd_culvert,0; - } - if(kewd_einbech) { - set kewd_travel,kewd_travel|0x200; - set kewd_einbech,0; - } - if(kewd_geffen) { - set kewd_travel,kewd_travel|0x800; - set kewd_geffen,0; - } - if(kewd_glastHeim) { - set kewd_travel,kewd_travel|0x1000; - set kewd_glastHeim,0; - } - if(kewd_gonRyun) { - set kewd_travel,kewd_travel|0x2000; - set kewd_gonRyun,0; - } - if(kewd_hiddenTemple) { - set kewd_travel,kewd_travel|0x4000; - set kewd_hiddenTemple,0; - } - if(kewd_juperos) { - set kewd_travel,kewd_travel|0x8000; - set kewd_juperos,0; - } - if(kewd_lightHalzen) { - set kewd_travel,kewd_travel|0x10000; - set kewd_lightHalzen,0; - } - if(kewd_louYang) { - set kewd_travel,kewd_travel|0x20000; - set kewd_louYang,0; - } - if(kewd_magma) { - set kewd_travel,kewd_travel|0x40000; - set kewd_magma,0; - } - if(kewd_orc) { - set kewd_travel,kewd_travel|0x80000; - set kewd_orc,0; - } - if(kewd_payon) { - set kewd_travel,kewd_travel|0x100000; - set kewd_payon,0; - } - if(kewd_pyramid) { - set kewd_travel,kewd_travel|0x200000; - set kewd_pyramid,0; - } - if(kewd_sphinx) { - set kewd_travel,kewd_travel|0x400000; - set kewd_sphinx,0; - } - if(kewd_sunkenShip) { - set kewd_travel,kewd_travel|0x800000; - set kewd_sunkenShip,0; - } - if(kewd_thanatosTower) { - set kewd_travel,kewd_travel|0x1000000; - set kewd_thanatosTower,0; - } - if(kewd_toyFactory) { - set kewd_travel,kewd_travel|0x2000000; - set kewd_toyFactory,0; - } - if(kewd_turtleIsland) { - set kewd_travel,kewd_travel|0x4000000; - set kewd_turtleIsland,0; - } - if(kewd_umbala) { - set kewd_travel,kewd_travel|0x8000000; - set kewd_umbala,0; - } - - if(#kewd_abyss) { - set #kewd_travel,#kewd_travel|0x1; - set #kewd_abyss,0; - } - if(#kewd_amatsu) { - set #kewd_travel,#kewd_travel|0x2; - set #kewd_amatsu,0; - } - if(#kewd_antHell) { - set #kewd_travel,#kewd_travel|0x4; - set #kewd_antHell,0; - } - if(#kewd_ayothaya) { - set #kewd_travel,#kewd_travel|0x8; - set #kewd_ayothaya,0; - } - if(#kewd_byalan) { - set #kewd_travel,#kewd_travel|0x10; - set #kewd_byalan,0; - } - if(#kewd_comodo) { - set #kewd_travel,#kewd_travel|0x20; - set #kewd_comodo,0; - } - if(#kewd_clockTower) { - set #kewd_travel,#kewd_travel|0x40; - set #kewd_clockTower,0; - } - if(#kewd_coalMines) { - set #kewd_travel,#kewd_travel|0x80; - set #kewd_coalMines,0; - } - if(#kewd_culvert) { - set #kewd_travel,#kewd_travel|0x100; - set #kewd_culvert,0; - } - if(#kewd_einbech) { - set #kewd_travel,#kewd_travel|0x200; - set #kewd_einbech,0; - } - if(#kewd_geffen) { - set #kewd_travel,#kewd_travel|0x800; - set #kewd_geffen,0; - } - if(#kewd_glastHeim) { - set #kewd_travel,#kewd_travel|0x1000; - set #kewd_glastHeim,0; - } - if(#kewd_gonRyun) { - set #kewd_travel,#kewd_travel|0x2000; - set #kewd_gonRyun,0; - } - if(#kewd_hiddenTemple) { - set #kewd_travel,#kewd_travel|0x4000; - set #kewd_hiddenTemple,0; - } - if(#kewd_juperos) { - set #kewd_travel,#kewd_travel|0x8000; - set #kewd_juperos,0; - } - if(#kewd_lightHalzen) { - set #kewd_travel,#kewd_travel|0x10000; - set #kewd_lightHalzen,0; - } - if(#kewd_louYang) { - set #kewd_travel,#kewd_travel|0x20000; - set #kewd_louYang,0; - } - if(#kewd_magma) { - set #kewd_travel,#kewd_travel|0x40000; - set #kewd_magma,0; - } - if(#kewd_orc) { - set #kewd_travel,#kewd_travel|0x80000; - set #kewd_orc,0; - } - if(#kewd_payon) { - set #kewd_travel,#kewd_travel|0x100000; - set #kewd_payon,0; - } - if(#kewd_pyramid) { - set #kewd_travel,#kewd_travel|0x200000; - set #kewd_pyramid,0; - } - if(#kewd_sphinx) { - set #kewd_travel,#kewd_travel|0x400000; - set #kewd_sphinx,0; - } - if(#kewd_sunkenShip) { - set #kewd_travel,#kewd_travel|0x800000; - set #kewd_sunkenShip,0; - } - if(#kewd_thanatosTower) { - set #kewd_travel,#kewd_travel|0x1000000; - set #kewd_thanatosTower,0; - } - if(#kewd_toyFactory) { - set #kewd_travel,#kewd_travel|0x2000000; - set #kewd_toyFactory,0; - } - if(#kewd_turtleIsland) { - set #kewd_travel,#kewd_travel|0x4000000; - set #kewd_turtleIsland,0; - } - if(#kewd_umbala) { - set #kewd_travel,#kewd_travel|0x8000000; - set #kewd_umbala,0; - } - -// End transition code. if ($@kewd_travel > 1) { - if (@map$ == "hu_fild05" || kewd_travel&0x1) + if (kewd_travel) { //Copy over character permissions. + set #kewd_travel,#kewd_travel|kewd_travel; + set kewd_travel, 0; + } + + if (@map$ == "hu_fild05.gat") set #kewd_travel,#kewd_travel|0x1; - if (@map$ == "ama_in02" || kewd_travel&0x2) + if (@map$ == "ama_in02.gat") set #kewd_travel,#kewd_travel|0x2; - if (@map$ == "moc_fild04" || @map$ == "moc_fild15" || kewd_travel&0x4) + if (@map$ == "moc_fild04.gat" || @map$ == "moc_fild15.gat") set #kewd_travel,#kewd_travel|0x4; - if (@map$ == "ayo_fild02" || kewd_travel&0x8) + if (@map$ == "ayo_fild02.gat") set #kewd_travel,#kewd_travel|0x8; - if (@map$ == "izlu2dun" || kewd_travel&0x10) + if (@map$ == "izlu2dun.gat") set #kewd_travel,#kewd_travel|0x10; - if (@map$ == "comodo" || @map$ == "cmd_fild01" || kewd_travel&0x20) + if (@map$ == "comodo.gat" || @map$ == "cmd_fild01.gat") set #kewd_travel,#kewd_travel|0x20; - if (@map$ == "aldebaran" || kewd_travel&0x40) + if (@map$ == "aldebaran.gat") set #kewd_travel,#kewd_travel|0x40; - if (@map$ == "mjolnir_02" || kewd_travel&0x80) + if (@map$ == "mjolnir_02.gat") set #kewd_travel,#kewd_travel|0x80; - if (@map$ == "prt_fild05" || kewd_travel&0x100) + if (@map$ == "prt_fild05.gat") set #kewd_travel,#kewd_travel|0x100; - if (@map$ == "einbech" || kewd_travel&0x200) + if (@map$ == "einbech.gat") set #kewd_travel,#kewd_travel|0x200; - if (@map$ == "gef_tower" || kewd_travel&0x800) + if (@map$ == "yuno_fild08.gat") + set #kewd_travel,#kewd_travel|0x400; + if (@map$ == "gef_tower.gat") set #kewd_travel,#kewd_travel|0x800; - if (@map$ == "glast_01" || kewd_travel&0x1000) + if (@map$ == "glast_01.gat") set #kewd_travel,#kewd_travel|0x1000; - if (@map$ == "gonryun" || kewd_travel&0x2000) + if (@map$ == "gonryun.gat") set #kewd_travel,#kewd_travel|0x2000; - if (@map$ == "prt_fild01" || kewd_travel&0x4000) + if (@map$ == "prt_fild01.gat") set #kewd_travel,#kewd_travel|0x4000; - if (@map$ == "jupe_cave" || kewd_travel&0x8000) + if (@map$ == "jupe_cave.gat") set #kewd_travel,#kewd_travel|0x8000; - if (@map$ == "lighthalzen" || kewd_travel&0x10000) + if (@map$ == "lighthalzen.gat") set #kewd_travel,#kewd_travel|0x10000; - if (@map$ == "louyang" || kewd_travel&0x20000) + if (@map$ == "louyang.gat") set #kewd_travel,#kewd_travel|0x20000; - if (@map$ == "yuno_fild03" || kewd_travel&0x40000) + if (@map$ == "yuno_fild03.gat") set #kewd_travel,#kewd_travel|0x40000; - if (@map$ == "in_orcs01" || kewd_travel&0x80000) + if (@map$ == "in_orcs01.gat") set #kewd_travel,#kewd_travel|0x80000; - if (@map$ == "pay_arche" || kewd_travel&0x100000) + if (@map$ == "pay_arche.gat") set #kewd_travel,#kewd_travel|0x100000; - if (@map$ == "moc_ruins" || kewd_travel&0x200000) + if (@map$ == "moc_ruins.gat") set #kewd_travel,#kewd_travel|0x200000; - if (@map$ == "moc_fild19" || kewd_travel&0x400000) + if (@map$ == "moc_fild19.gat") set #kewd_travel,#kewd_travel|0x400000; - if (@map$ == "alb2trea" || kewd_travel&0x800000) + if (@map$ == "alb2trea.gat") set #kewd_travel,#kewd_travel|0x800000; - if (@map$ == "tha_t01" || kewd_travel&0x1000000) + if (@map$ == "tha_scene01.gat") set #kewd_travel,#kewd_travel|0x1000000; - if (@map$ == "xmas" || kewd_travel&0x2000000) + if (@map$ == "xmas.gat") set #kewd_travel,#kewd_travel|0x2000000; - if (@map$ == "tur_dun01" || kewd_travel&0x4000000) + if (@map$ == "tur_dun01.gat") set #kewd_travel,#kewd_travel|0x4000000; - if (@map$ == "umbala" || kewd_travel&0x8000000) + if (@map$ == "umbala.gat") set #kewd_travel,#kewd_travel|0x8000000; + if (@map$ == "odin_tem01.gat") + set #kewd_travel,#kewd_travel|0x10000000; + if (@map$ == "ra_fild01.gat") + set #kewd_travel,#kewd_travel|0x20000000; + if (@map$ == "ra_temin.gat") + set #kewd_travel,#kewd_travel|0x40000000; } else { - if (@map$ == "hu_fild05") + if (@map$ == "hu_fild05.gat") set kewd_travel,kewd_travel|0x1; - if (@map$ == "ama_in02") + if (@map$ == "ama_in02.gat") set kewd_travel,kewd_travel|0x2; - if (@map$ == "moc_fild04" || @map$ == "moc_fild15") + if (@map$ == "moc_fild04.gat" || @map$ == "moc_fild15.gat") set kewd_travel,kewd_travel|0x4; - if (@map$ == "ayo_fild02") + if (@map$ == "ayo_fild02.gat") set kewd_travel,kewd_travel|0x8; - if (@map$ == "izlu2dun") + if (@map$ == "izlu2dun.gat") set kewd_travel,kewd_travel|0x10; - if (@map$ == "comodo" || @map$ == "cmd_fild01") + if (@map$ == "comodo.gat" || @map$ == "cmd_fild01.gat") set kewd_travel,kewd_travel|0x20; - if (@map$ == "aldebaran") + if (@map$ == "aldebaran.gat") set kewd_travel,kewd_travel|0x40; - if (@map$ == "mjolnir_02") + if (@map$ == "mjolnir_02.gat") set kewd_travel,kewd_travel|0x80; - if (@map$ == "prt_fild05") + if (@map$ == "prt_fild05.gat") set kewd_travel,kewd_travel|0x100; - if (@map$ == "einbech") + if (@map$ == "einbech.gat") set kewd_travel,kewd_travel|0x200; - if (@map$ == "gef_tower") + if (@map$ == "yuno_fild08.gat") + set kewd_travel,kewd_travel|0x400; + if (@map$ == "gef_tower.gat") set kewd_travel,kewd_travel|0x800; - if (@map$ == "glast_01") + if (@map$ == "glast_01.gat") set kewd_travel,kewd_travel|0x1000; - if (@map$ == "gonryun") + if (@map$ == "gonryun.gat") set kewd_travel,kewd_travel|0x2000; - if (@map$ == "prt_fild01") + if (@map$ == "prt_fild01.gat") set kewd_travel,kewd_travel|0x4000; - if (@map$ == "jupe_cave") + if (@map$ == "jupe_cave.gat") set kewd_travel,kewd_travel|0x8000; - if (@map$ == "lighthalzen") + if (@map$ == "lighthalzen.gat") set kewd_travel,kewd_travel|0x10000; - if (@map$ == "louyang") + if (@map$ == "louyang.gat") set kewd_travel,kewd_travel|0x20000; - if (@map$ == "yuno_fild03") + if (@map$ == "yuno_fild03.gat") set kewd_travel,kewd_travel|0x40000; - if (@map$ == "in_orcs01") + if (@map$ == "in_orcs01.gat") set kewd_travel,kewd_travel|0x80000; - if (@map$ == "pay_arche") + if (@map$ == "pay_arche.gat") set kewd_travel,kewd_travel|0x100000; - if (@map$ == "moc_ruins") + if (@map$ == "moc_ruins.gat") set kewd_travel,kewd_travel|0x200000; - if (@map$ == "moc_fild19") + if (@map$ == "moc_fild19.gat") set kewd_travel,kewd_travel|0x400000; - if (@map$ == "alb2trea") + if (@map$ == "alb2trea.gat") set kewd_travel,kewd_travel|0x800000; - if (@map$ == "tha_t01") + if (@map$ == "tha_scene01.gat") set kewd_travel,kewd_travel|0x1000000; - if (@map$ == "xmas") + if (@map$ == "xmas.gat") set kewd_travel,kewd_travel|0x2000000; - if (@map$ == "tur_dun01") + if (@map$ == "tur_dun01.gat") set kewd_travel,kewd_travel|0x4000000; - if (@map$ == "umbala") + if (@map$ == "umbala.gat") set kewd_travel,kewd_travel|0x8000000; + if (@map$ == "odin_tem01.gat") + set kewd_travel,kewd_travel|0x10000000; + if (@map$ == "ra_fild01.gat") + set kewd_travel,kewd_travel|0x20000000; + if (@map$ == "ra_temin.gat") + set kewd_travel,kewd_travel|0x40000000; } return; } diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_pvp.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_pvp.txt index e1d7a5cb1..d014bca89 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_pvp.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_pvp.txt @@ -13,7 +13,7 @@ //= See config.txt for configuration. //============================================================ -- script keInit_warpPvp -1,{ +- script keInit_warpPvp { OnInit: //Load Config donpcevent "keConfig::OnLoadWarpPvp"; end; @@ -33,29 +33,29 @@ function script F_keWarpPvp { if ($@kewp_showOnline) { set @kmenu, select( "- Cancel", - "- All Levels Rooms ("+($@kewp_cost*@cost)+"z/"+(getmapusers("pvp_n_8-1")+getmapusers("pvp_n_8-2") - +getmapusers("pvp_n_8-3")+getmapusers("pvp_n_8-4")+getmapusers("pvp_n_8-5"))+" "+$@ked_users$+")", + "- All Levels Rooms ("+($@kewp_cost*@cost)+"z/"+(getmapusers("pvp_n_8-1.gat")+getmapusers("pvp_n_8-2.gat") + +getmapusers("pvp_n_8-3.gat")+getmapusers("pvp_n_8-4.gat")+getmapusers("pvp_n_8-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv1-$@kewp_range)+"-"+($@kewp_baseLv1+$@kewp_range)+" Rooms ("+($@kewp_cost1*@cost)+"z/" - +(getmapusers("pvp_n_1-1")+getmapusers("pvp_n_1-2")+getmapusers("pvp_n_1-3") - +getmapusers("pvp_n_1-4")+getmapusers("pvp_n_1-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_1-1.gat")+getmapusers("pvp_n_1-2.gat")+getmapusers("pvp_n_1-3.gat") + +getmapusers("pvp_n_1-4.gat")+getmapusers("pvp_n_1-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv2-$@kewp_range)+"-"+($@kewp_baseLv2+$@kewp_range)+" Rooms ("+($@kewp_cost2*@cost)+"z/" - +(getmapusers("pvp_n_2-1")+getmapusers("pvp_n_2-2")+getmapusers("pvp_n_2-3") - +getmapusers("pvp_n_2-4")+getmapusers("pvp_n_2-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_2-1.gat")+getmapusers("pvp_n_2-2.gat")+getmapusers("pvp_n_2-3.gat") + +getmapusers("pvp_n_2-4.gat")+getmapusers("pvp_n_2-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv3-$@kewp_range)+"-"+($@kewp_baseLv3+$@kewp_range)+" Rooms ("+($@kewp_cost3*@cost)+"z/" - +(getmapusers("pvp_n_3-1")+getmapusers("pvp_n_3-2")+getmapusers("pvp_n_3-3") - +getmapusers("pvp_n_3-4")+getmapusers("pvp_n_3-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_3-1.gat")+getmapusers("pvp_n_3-2.gat")+getmapusers("pvp_n_3-3.gat") + +getmapusers("pvp_n_3-4.gat")+getmapusers("pvp_n_3-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv4-$@kewp_range)+"-"+($@kewp_baseLv4+$@kewp_range)+" Rooms ("+($@kewp_cost4*@cost)+"z/" - +(getmapusers("pvp_n_4-1")+getmapusers("pvp_n_4-2")+getmapusers("pvp_n_4-3") - +getmapusers("pvp_n_4-4")+getmapusers("pvp_n_4-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_4-1.gat")+getmapusers("pvp_n_4-2.gat")+getmapusers("pvp_n_4-3.gat") + +getmapusers("pvp_n_4-4.gat")+getmapusers("pvp_n_4-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv5-$@kewp_range)+"-"+($@kewp_baseLv5+$@kewp_range)+" Rooms ("+($@kewp_cost5*@cost)+"z/" - +(getmapusers("pvp_n_5-1")+getmapusers("pvp_n_5-2")+getmapusers("pvp_n_5-3") - +getmapusers("pvp_n_5-4")+getmapusers("pvp_n_5-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_5-1.gat")+getmapusers("pvp_n_5-2.gat")+getmapusers("pvp_n_5-3.gat") + +getmapusers("pvp_n_5-4.gat")+getmapusers("pvp_n_5-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv6-$@kewp_range)+"-"+($@kewp_baseLv6+$@kewp_range)+" Rooms ("+($@kewp_cost6*@cost)+"z/" - +(getmapusers("pvp_n_6-1")+getmapusers("pvp_n_6-2")+getmapusers("pvp_n_6-3") - +getmapusers("pvp_n_6-4")+getmapusers("pvp_n_6-5"))+" "+$@ked_users$+")", + +(getmapusers("pvp_n_6-1.gat")+getmapusers("pvp_n_6-2.gat")+getmapusers("pvp_n_6-3.gat") + +getmapusers("pvp_n_6-4.gat")+getmapusers("pvp_n_6-5.gat"))+" "+$@ked_users$+")", "- Levels "+($@kewp_baseLv7-$@kewp_range)+"-"+($@kewp_baseLv7+$@kewp_range)+" Rooms ("+($@kewp_cost7*@cost)+"z/" - +(getmapusers("pvp_n_7-1")+getmapusers("pvp_n_7-2")+getmapusers("pvp_n_7-3") - +getmapusers("pvp_n_7-4")+getmapusers("pvp_n_7-5"))+" "+$@ked_users$+")" + +(getmapusers("pvp_n_7-1.gat")+getmapusers("pvp_n_7-2.gat")+getmapusers("pvp_n_7-3.gat") + +getmapusers("pvp_n_7-4.gat")+getmapusers("pvp_n_7-5.gat"))+" "+$@ked_users$+")" ); } else { set @kmenu, select( @@ -101,7 +101,7 @@ function script F_keWarpPvp { //SubFunction: SF_pvpMenu (int map-group, int cost, int min level, int max level) //Displays the list of the five available Pvp rooms to warp to. -//map-group is the first index of the pvp map names (in pvp_n_2-3 it would be 2) +//map-group is the first index of the pvp map names (in pvp_n_2-3.gat it would be 2) function SF_pvpMenu { if (getarg(4)) { if (BaseLevel < getarg(3)) { @@ -118,11 +118,11 @@ function SF_pvpMenu { if ($@kewp_showOnline) { set @submenu, select( "- Cancel Warp (Rooms for "+@msg$+"/"+(getarg(1)*@cost)+"z)", - "- Room Sandwich ("+getmapusers("pvp_n_"+getarg(0)+"-1")+" "+$@ked_users$+")", - "- Room Rock On ("+getmapusers("pvp_n_"+getarg(0)+"-2")+" "+$@ked_users$+")", - "- Four Room ("+getmapusers("pvp_n_"+getarg(0)+"-3")+" "+$@ked_users$+")", - "- Room Undercross ("+getmapusers("pvp_n_"+getarg(0)+"-4")+" "+$@ked_users$+")", - "- Room Compass ("+getmapusers("pvp_n_"+getarg(0)+"-5")+" "+$@ked_users$+")" + "- Room Sandwich ("+getmapusers("pvp_n_"+getarg(0)+"-1.gat")+" "+$@ked_users$+")", + "- Room Rock On ("+getmapusers("pvp_n_"+getarg(0)+"-2.gat")+" "+$@ked_users$+")", + "- Four Room ("+getmapusers("pvp_n_"+getarg(0)+"-3.gat")+" "+$@ked_users$+")", + "- Room Undercross ("+getmapusers("pvp_n_"+getarg(0)+"-4.gat")+" "+$@ked_users$+")", + "- Room Compass ("+getmapusers("pvp_n_"+getarg(0)+"-5.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -136,21 +136,21 @@ function SF_pvpMenu { } switch (@submenu) { case 2: - callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-1",-1,-1; + callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-1.gat",-1,-1; break; case 3: - callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-2",-1,-1; + callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-2.gat",-1,-1; break; case 4: - callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-3",-1,-1; + callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-3.gat",-1,-1; break; case 5: - callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-4",-1,-1; + callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-4.gat",-1,-1; break; case 6: - callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-5",-1,-1; + callfunc "F_keWarp",getarg(1),getarg(2),e_com,"pvp_n_"+getarg(0)+"-5.gat",-1,-1; break; } } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt index 2c1e12bb9..29c8207c7 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 2.1 +//= 2.2 //===== Compatible With: ===================================== //= eAthena SVN R3424+, RO Episode 8+ (Hugel) //===== Description: ========================================= @@ -33,9 +33,10 @@ //= 0x00040000 Prontera //= 0x00080000 Umbala //= 0x00100000 Yuno +//= 0x00200000 Rachel //============================================================ -- script keInit_warpTown -1,{ +- script keInit_warpTown { OnInit: //Load Config donpcevent "keConfig::OnLoadWarpTown"; end; @@ -54,37 +55,40 @@ function script F_keWarpTown { if ($@kewt_showOnline) { set @kmenu, select( "- Cancel", - "- Alberta ("+@cost+"z/"+(getmapusers("alberta")+getmapusers("alberta_in"))+" "+$@ked_users$+")", - "- Al De Baran ("+@cost+"z/"+(getmapusers("aldebaran")+getmapusers("aldeba_in"))+" "+$@ked_users$+")", - "- Amatsu ("+@cost+"z/"+(getmapusers("amatsu")+getmapusers("ama_in01")+getmapusers("ama_in02")) + "- Alberta ("+@cost+"z/"+(getmapusers("alberta.gat")+getmapusers("alberta_in.gat"))+" "+$@ked_users$+")", + "- Al De Baran ("+@cost+"z/"+(getmapusers("aldebaran.gat")+getmapusers("aldeba_in.gat"))+" "+$@ked_users$+")", + "- Amatsu ("+@cost+"z/"+(getmapusers("amatsu.gat")+getmapusers("ama_in01.gat")+getmapusers("ama_in02.gat")) +" "+$@ked_users$+")", - "- Ayothaya ("+@cost+"z/"+(getmapusers("ayothaya")+getmapusers("ayo_in01")+getmapusers("ayo_in02")) + "- Ayothaya ("+@cost+"z/"+(getmapusers("ayothaya.gat")+getmapusers("ayo_in01.gat")+getmapusers("ayo_in02.gat")) +" "+$@ked_users$+")", - "- Comodo ("+@cost+"z/"+(getmapusers("comodo")+getmapusers("cmd_in01")+getmapusers("cmd_in02")) + "- Comodo ("+@cost+"z/"+(getmapusers("comodo.gat")+getmapusers("cmd_in01.gat")+getmapusers("cmd_in02.gat")) +" "+$@ked_users$+")", - "- Einbech ("+@cost+"z/"+(getmapusers("einbech"))+" "+$@ked_users$+")", - "- Einbroch ("+@cost+"z/"+(getmapusers("einbroch")+getmapusers("ein_in01"))+" "+$@ked_users$+")", - "- Geffen ("+@cost+"z/"+(getmapusers("geffen")+getmapusers("geffen_in")+getmapusers("gef_tower")) + "- Einbech ("+@cost+"z/"+(getmapusers("einbech.gat"))+" "+$@ked_users$+")", + "- Einbroch ("+@cost+"z/"+(getmapusers("einbroch.gat")+getmapusers("ein_in01.gat"))+" "+$@ked_users$+")", + "- Geffen ("+@cost+"z/"+(getmapusers("geffen.gat")+getmapusers("geffen_in.gat")+getmapusers("gef_tower.gat")) +" "+$@ked_users$+")", - "- Gon Ryun ("+@cost+"z/"+(getmapusers("gonryun")+getmapusers("gon_in"))+" "+$@ked_users$+")", - "- Hugel ("+@cost+"z/"+(getmapusers("hugel")+getmapusers("hu_in01"))+" "+$@ked_users$+")", - "- Izlude ("+@cost+"z/"+(getmapusers("izlude")+getmapusers("izlude_in"))+" "+$@ked_users$+")", - "- Jawaii ("+@cost+"z/"+(getmapusers("jawaii")+getmapusers("jawaii_in"))+" "+$@ked_users$+")", - "- LightHalzen ("+@cost+"z/"+(getmapusers("lighthalzen")+getmapusers("lhz_in01") - +getmapusers("lhz_in02")+getmapusers("lhz_in03"))+" "+$@ked_users$+")", - "- Lou Yang ("+@cost+"z/"+(getmapusers("louyang")+getmapusers("lou_in01")+getmapusers("lou_in02")) + "- Gon Ryun ("+@cost+"z/"+(getmapusers("gonryun.gat")+getmapusers("gon_in.gat"))+" "+$@ked_users$+")", + "- Hugel ("+@cost+"z/"+(getmapusers("hugel.gat")+getmapusers("hu_in01.gat"))+" "+$@ked_users$+")", + "- Izlude ("+@cost+"z/"+(getmapusers("izlude.gat")+getmapusers("izlude_in.gat"))+" "+$@ked_users$+")", + "- Jawaii ("+@cost+"z/"+(getmapusers("jawaii.gat")+getmapusers("jawaii_in.gat"))+" "+$@ked_users$+")", + "- LightHalzen ("+@cost+"z/"+(getmapusers("lighthalzen.gat")+getmapusers("lhz_in01.gat") + +getmapusers("lhz_in02.gat")+getmapusers("lhz_in03.gat"))+" "+$@ked_users$+")", + "- Lou Yang ("+@cost+"z/"+(getmapusers("louyang.gat")+getmapusers("lou_in01.gat")+getmapusers("lou_in02.gat")) +" "+$@ked_users$+")", - "- Lutie ("+@cost+"z/"+(getmapusers("xmas")+getmapusers("xmas_in"))+" "+$@ked_users$+")", - "- Morocc ("+@cost+"z/"+(getmapusers("morocc")+getmapusers("morocc_in")+getmapusers("moc_castle")) + "- Lutie ("+@cost+"z/"+(getmapusers("xmas.gat")+getmapusers("xmas_in.gat"))+" "+$@ked_users$+")", + "- Morocc ("+@cost+"z/"+(getmapusers("morocc.gat")+getmapusers("morocc_in.gat")+getmapusers("moc_castle.gat")) +" "+$@ked_users$+")", - "- Niflheim ("+@niflcost+"z/"+(getmapusers("niflheim")+getmapusers("nif_in"))+" "+$@ked_users$+")", - "- Payon ("+@cost+"z/"+(getmapusers("payon")+getmapusers("payon_in01")+getmapusers("payon_in02")) + "- Niflheim ("+@niflcost+"z/"+(getmapusers("niflheim.gat")+getmapusers("nif_in.gat"))+" "+$@ked_users$+")", + "- Payon ("+@cost+"z/"+(getmapusers("payon.gat")+getmapusers("payon_in01.gat")+getmapusers("payon_in02.gat")) +" "+$@ked_users$+")", - "- Prontera ("+@cost+"z/"+(getmapusers("prontera")+getmapusers("prt_castle") - +getmapusers("prt_church")+getmapusers("prt_in"))+" "+$@ked_users$+")", - "- Umbala ("+@cost+"z/"+(getmapusers("umbala")+getmapusers("um_in"))+" "+$@ked_users$+")", - "- Yuno ("+@cost+"z/"+(getmapusers("yuno")+getmapusers("yuno_in01")+getmapusers("yuno_in02") - +getmapusers("yuno_in03")+getmapusers("yuno_in04")+getmapusers("yuno_in05"))+" "+$@ked_users$+")" + "- Prontera ("+@cost+"z/"+(getmapusers("prontera.gat")+getmapusers("prt_castle.gat") + +getmapusers("prt_church.gat")+getmapusers("prt_in.gat"))+" "+$@ked_users$+")", + "- Rachel ("+@cost+"z/"+(getmapusers("rachel.gat")+getmapusers("ra_in01.gat") + +getmapusers("ra_temple.gat")+getmapusers("ra_temin.gat")+getmapusers("ra_temsky.gat") + +getmapusers("que_rachel.gat"))+" "+$@ked_users$+")", + "- Umbala ("+@cost+"z/"+(getmapusers("umbala.gat")+getmapusers("um_in.gat"))+" "+$@ked_users$+")", + "- Yuno ("+@cost+"z/"+(getmapusers("yuno.gat")+getmapusers("yuno_in01.gat")+getmapusers("yuno_in02.gat") + +getmapusers("yuno_in03.gat")+getmapusers("yuno_in04.gat")+getmapusers("yuno_in05.gat"))+" "+$@ked_users$+")" ); } else { set @kmenu, select( @@ -108,6 +112,7 @@ function script F_keWarpTown { "- Niflheim ("+@niflcost+"z)", "- Payon ("+@cost+"z)", "- Prontera ("+@cost+"z)", + "- Rachel ("+@cost+"z)", "- Umbala ("+@cost+"z)", "- Yuno ("+@cost+"z)" ); @@ -115,67 +120,67 @@ function script F_keWarpTown { switch (@kmenu) { case 2: //Alberta if (SF_check(0x1)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"alberta",117,56; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"alberta.gat",117,56; break; case 3: //AlDeBaran if (SF_check(0x2)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"aldebaran",139,124; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"aldebaran.gat",139,124; break; case 4: //Amatsu if (SF_check(0x4)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"amatsu",197,88; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"amatsu.gat",197,88; break; case 5: //Ayathoya if (SF_check(0x8)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"ayothaya",202,174; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"ayothaya.gat",202,174; break; case 6: //Comodo if (SF_check(0x10)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"comodo",189,150; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"comodo.gat",189,150; break; case 7: //Einbech if (SF_check(0x20)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbech",137,220; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbech.gat",137,220; break; case 8: //Einbroch if (SF_check(0x40)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbroch",64,199; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbroch.gat",64,199; break; case 9: //Geffen if (SF_check(0x80)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"geffen",120,66; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"geffen.gat",120,66; break; case 10: //GonRyun if (SF_check(0x100)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"gonryun",160,180; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"gonryun.gat",160,180; break; case 11: //Hugel if (SF_check(0x200)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"hugel",96,105; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"hugel.gat",96,105; break; case 12: //Izlude if (SF_check(0x400)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"izlude",127,97; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"izlude.gat",127,97; break; case 13: //Jawaii if (SF_check(0x800)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"jawaii",214,223; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"jawaii.gat",214,223; break; case 14: //LightHalzen if (SF_check(0x1000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"lighthalzen",158,92; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"lighthalzen.gat",158,92; break; case 15: //LouYang if (SF_check(0x2000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"louyang",218,118; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"louyang.gat",218,118; break; case 16: //Lutie if (SF_check(0x4000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"xmas",148,133; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"xmas.gat",148,133; break; case 17: //Morocc if (SF_check(0x8000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"morocc",162,91; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"morocc.gat",162,91; break; case 18: //Niflheim if (SF_check(0x10000)) { @@ -183,30 +188,34 @@ function script F_keWarpTown { mes "...?"; callfunc "F_keIntro", e_no, "For some reason I can't warp you there!"; } else - callfunc "F_keWarp",$@kewt_niflCost,$@kewd_discount,e_yawn,"niflheim",194,185; + callfunc "F_keWarp",$@kewt_niflCost,$@kewd_discount,e_yawn,"niflheim.gat",194,185; } break; case 19: //Payon if (SF_check(0x20000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"payon",159,181; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"payon.gat",159,181; break; case 20: //Prontera if (SF_check(0x40000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"prontera",156,175; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"prontera.gat",156,175; break; - case 21: //Umbala + case 21: //Rachel + if (SF_check(0x200000)) + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"rachel.gat",137,133; + break; + case 22: //Umbala if (SF_check(0x80000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"umbala",88,153; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"umbala.gat",88,153; break; - case 22: //Yuno + case 23: //Yuno if (SF_check(0x100000)) - SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"yuno",158,77; + SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"yuno.gat",158,77; break; } } while (@kmenu > 1); return; -//SubFunction SF_check(char-flag, account_flag) +//SubFunction SF_check(flag) //Checks if the character can warp to that town taking into consideration //traveller's mode. function SF_check { @@ -410,91 +419,95 @@ function script F_keAddTravelTown { // End update code. if ($@kewt_travel > 1) { - if (@map$ == "alberta" || kewt_travel&0x1) + if (@map$ == "alberta.gat" || kewt_travel&0x1) set #kewt_travel,#kewt_travel|0x1; - if (@map$ == "aldebaran" || kewt_travel&0x2) + if (@map$ == "aldebaran.gat" || kewt_travel&0x2) set #kewt_travel,#kewt_travel|0x2; - if (@map$ == "amatsu" || kewt_travel&0x4) + if (@map$ == "amatsu.gat" || kewt_travel&0x4) set #kewt_travel,#kewt_travel|0x4; - if (@map$ == "ayothaya" || kewt_travel&0x8) + if (@map$ == "ayothaya.gat" || kewt_travel&0x8) set #kewt_travel,#kewt_travel|0x8; - if (@map$ == "comodo" || kewt_travel&0x10) + if (@map$ == "comodo.gat" || kewt_travel&0x10) set #kewt_travel,#kewt_travel|0x10; - if (@map$ == "einbech" || kewt_travel&0x20) + if (@map$ == "einbech.gat" || kewt_travel&0x20) set #kewt_travel,#kewt_travel|0x20; - if (@map$ == "einbroch" || kewt_travel&0x40) + if (@map$ == "einbroch.gat" || kewt_travel&0x40) set #kewt_travel,#kewt_travel|0x40; - if (@map$ == "geffen" || kewt_travel&0x80) + if (@map$ == "geffen.gat" || kewt_travel&0x80) set #kewt_travel,#kewt_travel|0x80; - if (@map$ == "gonryun" || kewt_travel&0x100) + if (@map$ == "gonryun.gat" || kewt_travel&0x100) set #kewt_travel,#kewt_travel|0x100; - if (@map$ == "hugel" || kewt_travel&0x200) + if (@map$ == "hugel.gat" || kewt_travel&0x200) set #kewt_travel,#kewt_travel|0x200; - if (@map$ == "izlude" || kewt_travel&0x400) + if (@map$ == "izlude.gat" || kewt_travel&0x400) set #kewt_travel,#kewt_travel|0x400; - if (@map$ == "jawaii" || kewt_travel&0x800) + if (@map$ == "jawaii.gat" || kewt_travel&0x800) set #kewt_travel,#kewt_travel|0x800; - if (@map$ == "lighthalzen" || kewt_travel&1000) + if (@map$ == "lighthalzen.gat" || kewt_travel&1000) set #kewt_travel,#kewt_travel|0x1000; - if (@map$ == "louyang" || kewt_travel&0x2000) + if (@map$ == "louyang.gat" || kewt_travel&0x2000) set #kewt_travel,#kewt_travel|0x2000; - if (@map$ == "xmas" || kewt_travel&0x4000) + if (@map$ == "xmas.gat" || kewt_travel&0x4000) set #kewt_travel,#kewt_travel|0x4000; - if (@map$ == "morocc" || kewt_travel&0x8000) + if (@map$ == "morocc.gat" || kewt_travel&0x8000) set #kewt_travel,#kewt_travel|0x8000; - if (@map$ == "niflheim" || kewt_travel&0x10000) + if (@map$ == "niflheim.gat" || kewt_travel&0x10000) set #kewt_travel,#kewt_travel|0x10000; - if (@map$ == "payon" || kewt_travel&0x20000) + if (@map$ == "payon.gat" || kewt_travel&0x20000) set #kewt_travel,#kewt_travel|0x20000; - if (@map$ == "prontera" || kewt_travel&0x40000) + if (@map$ == "prontera.gat" || kewt_travel&0x40000) set #kewt_travel,#kewt_travel|0x40000; - if (@map$ == "umbala" || kewt_travel&0x80000) + if (@map$ == "umbala.gat" || kewt_travel&0x80000) set #kewt_travel,#kewt_travel|0x80000; - if (@map$ == "yuno" || kewt_travel&0x100000) + if (@map$ == "yuno.gat" || kewt_travel&0x100000) set #kewt_travel,#kewt_travel|0x100000; + if (@map$ == "rachel.gat" || kewt_travel&0x200000) + set #kewt_travel,#kewt_travel|0x200000; } else { - if (@map$ == "alberta") + if (@map$ == "alberta.gat") set kewt_travel,kewt_travel|0x1; - if (@map$ == "aldebaran") + if (@map$ == "aldebaran.gat") set kewt_travel,kewt_travel|0x2; - if (@map$ == "amatsu") + if (@map$ == "amatsu.gat") set kewt_travel,kewt_travel|0x4; - if (@map$ == "ayothaya") + if (@map$ == "ayothaya.gat") set kewt_travel,kewt_travel|0x8; - if (@map$ == "comodo") + if (@map$ == "comodo.gat") set kewt_travel,kewt_travel|0x10; - if (@map$ == "einbech") + if (@map$ == "einbech.gat") set kewt_travel,kewt_travel|0x20; - if (@map$ == "einbroch") + if (@map$ == "einbroch.gat") set kewt_travel,kewt_travel|0x40; - if (@map$ == "geffen") + if (@map$ == "geffen.gat") set kewt_travel,kewt_travel|0x80; - if (@map$ == "gonryun") + if (@map$ == "gonryun.gat") set kewt_travel,kewt_travel|0x100; - if (@map$ == "hugel") + if (@map$ == "hugel.gat") set kewt_travel,kewt_travel|0x200; - if (@map$ == "izlude") + if (@map$ == "izlude.gat") set kewt_travel,kewt_travel|0x400; - if (@map$ == "jawaii") + if (@map$ == "jawaii.gat") set kewt_travel,kewt_travel|0x800; - if (@map$ == "lighthalzen") + if (@map$ == "lighthalzen.gat") set kewt_travel,kewt_travel|0x1000; - if (@map$ == "louyang") + if (@map$ == "louyang.gat") set kewt_travel,kewt_travel|0x2000; - if (@map$ == "xmas") + if (@map$ == "xmas.gat") set kewt_travel,kewt_travel|0x4000; - if (@map$ == "morocc") + if (@map$ == "morocc.gat") set kewt_travel,kewt_travel|0x8000; - if (@map$ == "niflheim") + if (@map$ == "niflheim.gat") set kewt_travel,kewt_travel|0x10000; - if (@map$ == "payon") + if (@map$ == "payon.gat") set kewt_travel,kewt_travel|0x20000; - if (@map$ == "prontera") + if (@map$ == "prontera.gat") set kewt_travel,kewt_travel|0x40000; - if (@map$ == "umbala") + if (@map$ == "umbala.gat") set kewt_travel,kewt_travel|0x80000; - if (@map$ == "yuno") + if (@map$ == "yuno.gat") set kewt_travel,kewt_travel|0x100000; + if (@map$ == "rachel.gat") + set kewt_travel,kewt_travel|0x200000; } return; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_woe.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_woe.txt index 28175a643..b0d5e5b35 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_woe.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_woe.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Skotlex //===== Current Version: ===================================== -//= 1.7 +//= 1.8 //===== Compatible With: ===================================== //= eAthena SVN R3424+, RO Episode 4.1+ (War of Emperium) //===== Description: ========================================= @@ -14,7 +14,7 @@ //= Remove the comment on lines 52,53 and 63 to enable direct G. Dungeon warping //============================================================ -- script keInit_warpWoe -1,{ +- script keInit_warpWoe { OnInit: //Load Config donpcevent "keConfig::OnLoadWarpWoe"; end; @@ -25,7 +25,7 @@ function script F_keWarpWOE { callfunc "F_keIntro", e_srt, "Sorry, these warps are only available to people who belong to a Guild."; return; } - if ($@kewg_checkAgit && !agitcheck()) { + if ($@kewg_checkAgit && agitcheck() == 0) { callfunc "F_keIntro", e_srt, "Sorry, these warps are only enabled during the Guild Wars."; return; } @@ -37,20 +37,20 @@ function script F_keWarpWOE { if ($@kewg_showOnline) { set @kmenu, select( "- Cancel", - "- Al De Baran Guild ("+($@kewg_alDeBaran*@cost/100)+"z/"+(getmapusers("alde_gld") - +getmapusers("aldeg_cas01")+getmapusers("aldeg_cas02")+getmapusers("aldeg_cas03") - +getmapusers("aldeg_cas04")+getmapusers("aldeg_cas05"))+" "+$@ked_users$+")", - "- Geffen Guild ("+($@kewg_geffen*@cost/100)+"z/"+(getmapusers("gef_fild13") - +getmapusers("gefg_cas01")+getmapusers("gefg_cas02")+getmapusers("gefg_cas03") - +getmapusers("gefg_cas04")+getmapusers("gefg_cas05"))+" "+$@ked_users$+")", - "- Payon Guild ("+($@kewg_payon*@cost/100)+"z/"+(getmapusers("pay_gld") - +getmapusers("payg_cas01")+getmapusers("payg_cas02")+getmapusers("payg_cas03") - +getmapusers("payg_cas04")+getmapusers("payg_cas05"))+" "+$@ked_users$+")", - "- Prontera Guild ("+($@kewg_prontera*@cost/100)+"z/"+(getmapusers("prt_gld") - +getmapusers("prtg_cas01")+getmapusers("prtg_cas02")+getmapusers("prtg_cas03") - +getmapusers("prtg_cas04")+getmapusers("prtg_cas05"))+" "+$@ked_users$+")", -// "- Guild Dungeons ("+(getmapusers("gld_dun01")+getmapusers("gld_dun02") -// +getmapusers("gld_dun03")+getmapusers("gld_dun04"))+" "+$@ked_users$+")", + "- Al De Baran Guild ("+($@kewg_alDeBaran*@cost/100)+"z/"+(getmapusers("alde_gld.gat") + +getmapusers("aldeg_cas01.gat")+getmapusers("aldeg_cas02.gat")+getmapusers("aldeg_cas03.gat") + +getmapusers("aldeg_cas04.gat")+getmapusers("aldeg_cas05.gat"))+" "+$@ked_users$+")", + "- Geffen Guild ("+($@kewg_geffen*@cost/100)+"z/"+(getmapusers("gef_fild13.gat") + +getmapusers("gefg_cas01.gat")+getmapusers("gefg_cas02.gat")+getmapusers("gefg_cas03.gat") + +getmapusers("gefg_cas04.gat")+getmapusers("gefg_cas05.gat"))+" "+$@ked_users$+")", + "- Payon Guild ("+($@kewg_payon*@cost/100)+"z/"+(getmapusers("pay_gld.gat") + +getmapusers("payg_cas01.gat")+getmapusers("payg_cas02.gat")+getmapusers("payg_cas03.gat") + +getmapusers("payg_cas04.gat")+getmapusers("payg_cas05.gat"))+" "+$@ked_users$+")", + "- Prontera Guild ("+($@kewg_prontera*@cost/100)+"z/"+(getmapusers("prt_gld.gat") + +getmapusers("prtg_cas01.gat")+getmapusers("prtg_cas02.gat")+getmapusers("prtg_cas03.gat") + +getmapusers("prtg_cas04.gat")+getmapusers("prtg_cas05.gat"))+" "+$@ked_users$+")", +// "- Guild Dungeons ("+(getmapusers("gld_dun01.gat")+getmapusers("gld_dun02.gat") +// +getmapusers("gld_dun03.gat")+getmapusers("gld_dun04.gat"))+" "+$@ked_users$+")", "- See "+$@ked_users$+" distribution" ); } else { @@ -65,16 +65,16 @@ function script F_keWarpWOE { } switch (@kmenu) { case 2: //Al De Baran - callfunc "F_keWarp",$@kewg_alDeBaran,$@kewg_discount,44,"alde_gld",153,160; + callfunc "F_keWarp",$@kewg_alDeBaran,$@kewg_discount,44,"alde_gld.gat",153,160; break; case 3: //Geffen - callfunc "F_keWarp",$@kewg_geffen,$@kewg_discount,44,"gef_fild13",243,180; + callfunc "F_keWarp",$@kewg_geffen,$@kewg_discount,44,"gef_fild13.gat",243,180; break; case 4: //Payon - callfunc "F_keWarp",$@kewg_payon,$@kewg_discount,44,"pay_gld",249,177; + callfunc "F_keWarp",$@kewg_payon,$@kewg_discount,44,"pay_gld.gat",249,177; break; case 5: //Prontera - callfunc "F_keWarp",$@kewg_prontera,$@kewg_discount,44,"prt_gld",119,160; + callfunc "F_keWarp",$@kewg_prontera,$@kewg_discount,44,"prt_gld.gat",119,160; break; case 6: //Guild Dungeons SF_dungeons(); @@ -83,36 +83,36 @@ function script F_keWarpWOE { mes "The current distribution of "+$@ked_users$+" is as follows:"; next; mes "[Al De Baran]"; - mes "- Guild Grounds: "+getmapusers("alde_gld"); - mes "- Castle 1 - Noisyubantian: "+getmapusers("aldeg_cas01"); - mes "- Castle 2 - Hohensyubangawoo: "+getmapusers("aldeg_cas02"); - mes "- Castle 3 - Nyirenverk: "+getmapusers("aldeg_cas03"); - mes "- Castle 4 - Byirtsburi: "+getmapusers("aldeg_cas04"); - mes "- Castle 5 - Rotenburk: "+getmapusers("aldeg_cas05"); + mes "- Guild Grounds: "+getmapusers("alde_gld.gat"); + mes "- Castle 1 - Noisyubantian: "+getmapusers("aldeg_cas01.gat"); + mes "- Castle 2 - Hohensyubangawoo: "+getmapusers("aldeg_cas02.gat"); + mes "- Castle 3 - Nyirenverk: "+getmapusers("aldeg_cas03.gat"); + mes "- Castle 4 - Byirtsburi: "+getmapusers("aldeg_cas04.gat"); + mes "- Castle 5 - Rotenburk: "+getmapusers("aldeg_cas05.gat"); next; mes "[Geffen]"; - mes "- Guild Grounds: "+getmapusers("gef_fild13"); - mes "- Castle 1 - Reprion: "+getmapusers("gefg_cas01"); - mes "- Castle 2 - Yolbriger: "+getmapusers("gefg_cas02"); - mes "- Castle 3 - Isinlife: "+getmapusers("gefg_cas03"); - mes "- Castle 4 - Berigel: "+getmapusers("gefg_cas04"); - mes "- Castle 5 - Melsedetsu: "+getmapusers("gefg_cas05"); + mes "- Guild Grounds: "+getmapusers("gef_fild13.gat"); + mes "- Castle 1 - Reprion: "+getmapusers("gefg_cas01.gat"); + mes "- Castle 2 - Yolbriger: "+getmapusers("gefg_cas02.gat"); + mes "- Castle 3 - Isinlife: "+getmapusers("gefg_cas03.gat"); + mes "- Castle 4 - Berigel: "+getmapusers("gefg_cas04.gat"); + mes "- Castle 5 - Melsedetsu: "+getmapusers("gefg_cas05.gat"); next; mes "[Payon]"; - mes "- Guild Grounds: "+getmapusers("pay_gld"); - mes "- Castle 1 - Mingting: "+getmapusers("payg_cas01"); - mes "- Castle 2 - Tiantan: "+getmapusers("payg_cas02"); - mes "- Castle 3 - Fuying: "+getmapusers("payg_cas03"); - mes "- Castle 4 - Honglou: "+getmapusers("payg_cas04"); - mes "- Castle 5 - Zhulinxian: "+getmapusers("payg_cas05"); + mes "- Guild Grounds: "+getmapusers("pay_gld.gat"); + mes "- Castle 1 - Mingting: "+getmapusers("payg_cas01.gat"); + mes "- Castle 2 - Tiantan: "+getmapusers("payg_cas02.gat"); + mes "- Castle 3 - Fuying: "+getmapusers("payg_cas03.gat"); + mes "- Castle 4 - Honglou: "+getmapusers("payg_cas04.gat"); + mes "- Castle 5 - Zhulinxian: "+getmapusers("payg_cas05.gat"); next; mes "[Prontera]"; - mes "- Guild Grounds: "+getmapusers("prt_gld"); - mes "- Castle 1 - Creamhilt: "+getmapusers("prtg_cas01"); - mes "- Castle 2 - Sbanhealt: "+getmapusers("prtg_cas02"); - mes "- Castle 3 - Lazrigees: "+getmapusers("prtg_cas03"); - mes "- Castle 4 - Squagul: "+getmapusers("prtg_cas04"); - mes "- Castle 5 - Guindull: "+getmapusers("prtg_cas05"); + mes "- Guild Grounds: "+getmapusers("prt_gld.gat"); + mes "- Castle 1 - Creamhilt: "+getmapusers("prtg_cas01.gat"); + mes "- Castle 2 - Sbanhealt: "+getmapusers("prtg_cas02.gat"); + mes "- Castle 3 - Lazrigees: "+getmapusers("prtg_cas03.gat"); + mes "- Castle 4 - Squagul: "+getmapusers("prtg_cas04.gat"); + mes "- Castle 5 - Guindull: "+getmapusers("prtg_cas05.gat"); next; callfunc "F_keIntro", -1, ""; break; @@ -125,10 +125,10 @@ function SF_dungeons { if ($@kewg_showOnline) { set @submenu, select( "- Cancel", - "- Baldur Dungeon ("+($@kewg_baldur*@cost/100)+"z/"+getmapusers("gld_dun01")+" "+$@ked_users$+")", - "- Luina Dungeon ("+($@kewg_luina*@cost/100)+"z/"+getmapusers("gld_dun02")+" "+$@ked_users$+")", - "- Valkyrie Dungeon ("+($@kewg_valkyrie*@cost/100)+"z/"+getmapusers("gld_dun03")+" "+$@ked_users$+")", - "- Britoniah Dungeon ("+($@kewg_britoniah*@cost/100)+"z/"+getmapusers("gld_dun04")+" "+$@ked_users$+")" + "- Baldur Dungeon ("+($@kewg_baldur*@cost/100)+"z/"+getmapusers("gld_dun01.gat")+" "+$@ked_users$+")", + "- Luina Dungeon ("+($@kewg_luina*@cost/100)+"z/"+getmapusers("gld_dun02.gat")+" "+$@ked_users$+")", + "- Valkyrie Dungeon ("+($@kewg_valkyrie*@cost/100)+"z/"+getmapusers("gld_dun03.gat")+" "+$@ked_users$+")", + "- Britoniah Dungeon ("+($@kewg_britoniah*@cost/100)+"z/"+getmapusers("gld_dun04.gat")+" "+$@ked_users$+")" ); } else { set @submenu, select( @@ -141,19 +141,19 @@ function SF_dungeons { } switch (@submenu) { case 2: //Baldur - callfunc "F_keWarp",$@kewg_baldur,$@kewg_discount,44,"gld_dun01",119,18; + callfunc "F_keWarp",$@kewg_baldur,$@kewg_discount,44,"gld_dun01.gat",119,18; break; case 3: //Luina - callfunc "F_keWarp",$@kewg_luina,$@kewg_discount,44,"gld_dun02",174,113; + callfunc "F_keWarp",$@kewg_luina,$@kewg_discount,44,"gld_dun02.gat",174,113; break; case 4: //Valkyrie - callfunc "F_keWarp",$@kewg_valkyrie,$@kewg_discount,44,"gld_dun03",37,34; + callfunc "F_keWarp",$@kewg_valkyrie,$@kewg_discount,44,"gld_dun03.gat",37,34; break; case 5: //Britoniah - callfunc "F_keWarp",$@kewg_britoniah,$@kewg_discount,44,"gld_dun04",42,230; + callfunc "F_keWarp",$@kewg_britoniah,$@kewg_discount,44,"gld_dun04.gat",42,230; break; } } while (@submenu > 1); } -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/readme.txt b/npc/custom/eAAC_Scripts/kafraExpress/readme.txt index 9b3468fc6..716d272a9 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/readme.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/readme.txt @@ -6,7 +6,7 @@ This file's purpose is to give an indepth explanation about setting up, and configuring the Kafra Express Script Package (KESP). It is intended to be viewed by a text editor using fixed-width font and 80-character long lines. -Document Version v1.9 (15/June/2006) +Document Version v2.0 (27/September/2006) //////////////////////////////////////////////////////////////////////////////// Table of Contents //////////////////////////////////////////////////////////////////////////////// @@ -231,11 +231,14 @@ costs 100z to heal 1000. ------------- The cost of using the storage, guild storage (respectively) -(1) kekp_reset +(#) kekp_reset -------------- -For Kafra Passes. When 1, the Pass expires when starting a chat with the -Kafra. Otherwise the variable remains active a pretty long time (probably all -session). +For Kafra Passes. When set, the Pass expires after starting a chat with the +Kafra the amount of times specified. Otherwise the variable remains active a +pretty long time (probably all session). For example, if set to 2, after +activating the pass and opening the storage, the Pass will still be active +the next time you speak to a kafra, it will expire on the "third" time you +speak to her. ($) kekp_reserveCost -------------------- @@ -387,10 +390,12 @@ Specificies the number of hair dyes (#) kedy_clothJ1ST (#) kedy_clothJ2ND (#) kedy_clothJSN -(#) kedy_clothJWED ------------------ Specifies the number of cloth dyes based on job-type: Novices, First Classes, -Second Classes, Super Novices, Wedding Class. +Second Classes, Super Novices. +Note that special classes like Xmas or Wedding tend to not have palettes, and +it should be handled server-side so that switching palettes with this module +will not cause you client crashes. //////////////////////////////////////////////////////////////////////////////// [06] Module: Job Changer (ke_jobchange.txt) @@ -426,6 +431,15 @@ What to do about the advanced classes? case the path could not be determined (players changed jobs previously using other npcs), players will be able to select their next job. +(#) kejc_disable +---------------- +Permits disabling some job trees from the changer (add as required): + 1: You can't change to a S. Novice + 2: You can't change to Taekwon (but if you are a Taekwon already, you can + still change to Soul Linker/Star Gladiator) + 4: Can't change to GunSlinger + 8: Can't change to Ninja + (1) kejc_announce ----------------- When 1, a global announce will be done upon change. @@ -473,46 +487,21 @@ one. ----------------- When characters reach this job level, they will receive the premium weapon instead of the normal one. If 0, premium weapons are disabled. -(#) kejc_wAcolyte -(#) kejc_wArcher -(#) kejc_wMage -(#) kejc_wMerchant -(#) kejc_wSwordman -(#) kejc_wThief -(#) kejc_wSuperNovice -(#) kejc_wPriest -(#) kejc_wMonk -(#) kejc_wHunter -(#) kejc_wBard -(#) kejc_wDancer -(#) kejc_wWizard -(#) kejc_wSage -(#) kejc_wBlacksmith -(#) kejc_wAlchemist -(#) kejc_wKnight -(#) kejc_wCrusader -(#) kejc_wAssassin -(#) kejc_wRogue +(#) kejc_weapon1[] +(#) kejc_weapon_21[] +(#) kejc_weapon_22[] ----------------------- -ID of the normal weapons received upon job change (if weapon policy is in -effect). - -(#) kejc_w2Priest -(#) kejc_w2Monk -(#) kejc_w2Hunter -(#) kejc_w2Bard -(#) kejc_w2Dancer -(#) kejc_w2Wizard -(#) kejc_w2Sage -(#) kejc_w2Blacksmith -(#) kejc_w2Alchemist -(#) kejc_w2Knight -(#) kejc_w2Crusader -(#) kejc_w2Assassin -(#) kejc_w2Rogue +These arrays contain the IDs of the normal weapons received upon job change +for first, 2-1 and 2-2 classes (if weapon policy is in effect). Refer to the +comments in the config file for identifying which position is for which job. + +(#) kejc_weapon2_21[] +(#) kejc_weapon2_22[] -------------------- -ID of the premium weapons received upon job chane (if bonus weapon policy is -in effect). Note that first classes can't get a bonus weapon. +These arrays contain the ID of the premium weapons received upon job change +(if bonus weapon policy is in effect). Note that first classes can't get a +bonus weapon, and that Bard/Dancers both receive the same weapon. Refer to the +comments in the config file for identifying which position is for which job. //////////////////////////////////////////////////////////////////////////////// [07] Module: Job Swapper (ke_jobswap.txt) @@ -531,10 +520,17 @@ classes, they can't change back to a normal one. Variables ================================================================================ -(1) kejs_SNpolicy +(#) kejs_disable ----------------- -Determines what to do with Super Novices. if 0, they can't swap jobs, if 1, -they are considered first classes. +You can disable some classes from swapping using this setting (add numbers as +appropiate): + 1: Super Novices may not swap/swap to. + 2: Disable swapping for Taekwon/Star Gladiator/Soul Linker classes. + 4: Disable swapping to/from GunSlinger. + 8: Disable swapping to/from Ninja. +For example, if you set it to 12 (8+4), the swap menu will not include +Gunslinger nor Ninja, and they will find that they can't swap to other classes +neither. (#) kejs_revertPolicy --------------------- @@ -965,9 +961,8 @@ saves, all charaters of the corresponding account have the warp unlocked). (1) kewd_deep ------------- -This variable decides whether deep or short warps will be used. There's no -need to set it as it will be set automatically based on which file was -included (ke_warp_short.txt or ke_warp_deep.txt). +This variable decides whether deep or short warps will be used. As explained +on the description, enabling deep warps allows warping to any dungeon level. (%) kewd_levelCost ------------------ @@ -989,31 +984,10 @@ Only used on short warps. If 1, then warping to Turtle Dungeon should lead directly to the cave's entrance, otherwise it warps you to the Island's entrance. -($) kewd_amatsu -($) kewd_antHell -($) kewd_ayothaya -($) kewd_byalan -($) kewd_comodo -($) kewd_clockTower -($) kewd_coalMines -($) kewd_culvert -($) kewd_gefenia -($) kewd_geffen -($) kewd_glastHeim -($) kewd_gonRyun -($) kewd_hiddenTemple -($) kewd_louYang -($) kewd_magma -($) kewd_orc -($) kewd_payon -($) kewd_pyramids -($) kewd_sphinx -($) kewd_sunkenShip -($) kewd_toyFactory -($) kewd_turtleIsland -($) kewd_umbala +($) kewd_<dungeon name> --------------------- -Base cost of warping to each dungeon, that is, the entrance level cost. +There is a config variable for every dungeon, it specifies the base cost of +warping to that dungeon (which is, the entrance level cost). //////////////////////////////////////////////////////////////////////////////// [16] Module: PvP Warping (ke_pvp.txt) @@ -1021,9 +995,9 @@ Base cost of warping to each dungeon, that is, the entrance level cost. Description ================================================================================ -The PvP warping module leads to the pvp maps named pvp_n_*-*. It has two +The PvP warping module leads to the pvp maps named pvp_n_*-*.gat. It has two modes: simple and advanced. On simple mode, every player of every level gets -thrown into the pvp_n_1-* maps to nuke it out, on advanced mode each of +thrown into the pvp_n_1-*.gat maps to nuke it out, on advanced mode each of the map groups gets their own range of permissible levels to enter. Since there is no sure way how characters should escape from a pvp map, they are currently given a butterfly wing when they warp. @@ -1136,15 +1110,15 @@ sprite on-screen that characters speak with. An enabled kafra may look like this: //Alberta -alberta,113,53,7 script Kafra Express 116,{ - callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta",116,57; +alberta.gat,113,53,7 script Kafra Express 116,{ + callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta.gat",116,57; } And a disabled/commented Kafra would look like this: //Prontera Guild Grounds -//prt_gld,127,163,5 script Kafra Express 115,{ -// callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld",129,170; +//prt_gld.gat,127,163,5 script Kafra Express 115,{ +// callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld.gat",129,170; //} For scripters, the way to define an NPC is not new, and beyond the scope of diff --git a/npc/custom/eAAC_Scripts/messageboards.txt b/npc/custom/eAAC_Scripts/messageboards.txt index 78e6c96f7..7dae78cfc 100644 --- a/npc/custom/eAAC_Scripts/messageboards.txt +++ b/npc/custom/eAAC_Scripts/messageboards.txt @@ -10,7 +10,7 @@ L_Menu01: mes "[Robert]"; mes "What would you like to do??"; next; -if((getgmlevel(0) >= 90)) menu "Public board",L_pubgmmenu,"Gm Board",L_gmmenu,"Close Public Board",L_clospub,"Open Public Board",L_openpub; +if((getgmlevel() >= 90)) menu "Public board",L_pubgmmenu,"Gm Board",L_gmmenu,"Close Public Board",L_clospub,"Open Public Board",L_openpub; if(($messagepubclose == 1)) goto L_pubclosed; menu "Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave; L_pubgmmenu: @@ -326,8 +326,8 @@ mes "Posted By: "+$messageboardpostname$[@tempview]+"."; mes "On: "+$messageboardpostdate$[@tempview]+"."; mes $messageboardpost$[@tempview]+"."; next; -if(($mymessage[@tempview] == 5) && (getgmlevel()>=99)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy,"Delete This message",L_Del; -if((getgmlevel()>=99)) menu "Next Message",L_top2,"Delete This message",L_Del; +if(($mymessage[@tempview] == 5) && (getgmlevel()>0)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy,"Delete This message",L_Del; +if((getgmlevel()>0)) menu "Next Message",L_top2,"Delete This message",L_Del; if(($mymessage[@tempview] == 5)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy; menu "Next message",L_top2; close; diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt index d9aafd330..1ffd4ff6a 100644 --- a/npc/custom/eAAC_Scripts/quest_warper.txt +++ b/npc/custom/eAAC_Scripts/quest_warper.txt @@ -4,7 +4,7 @@ //= Old Warper 2 by Darkchild - Remade with quest format by DZeroX //= Huge Rewrite by Neouni //===== Current Version: ========================================== -//= 2.0c +//= 2.0b //===== Compatible With: ========================================== //= Any eAthena Version //===== Description: ============================================== @@ -70,8 +70,8 @@ // - Limits dungeon based on Depth, access special setup menu thru GM-Menu // - Dungeon fees split up based on Basic , Advanced & Overseas // - Old Dungeon fee system removed, all dungeon fees now set to 0 -//-2.0b - Special warpname menu option name bug fixed -//-2.0c - Parenthesis fixes [KarLaeda] +//-2.0b +// - Special warpname menu option name bug fixed //================================================================= //========================Function=&=Script======================== @@ -145,7 +145,7 @@ next; if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; //----------------Healpart if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; - if ($QW_HF == 0 && $QW_HP == 0) mes "Healing = ^FF0000 Off ^000000"; + if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; //----------------Storage if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; @@ -263,7 +263,7 @@ Setprice: if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; //----------------Storage - if ($QW_S_PRICE != 0 && $QW_S_PRICE != 60) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; //----------------Guild-Storage @@ -349,7 +349,7 @@ case 8: case 9: next; - if ($QW_S_PRICE != 0 && $QW_S_PRICE != 60) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; mes "Storage cost, if set to 60 Kafra pricing will be handled"; @@ -391,8 +391,8 @@ case 1: goto SpecialWarpMenu; case 2: next; - mes "set the map in the ^0000FFmapname^000000 format"; - mes "when this warpmap is set the option for players will show once they meet the requirements"; + mes "set the map in the ^0000FFmapname.gat^000000 format"; + mes "when this warpmap is set the option for players will show once they meet the requirments"; mes "to disable Special Warp Menu option clear this !"; input $QW_SP_WarpMap$; goto SpecialWarpMenu; @@ -526,16 +526,16 @@ PHeal: if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; set @total, @HpPrice+@SpPrice; mes "for a total of "+@total+" zeny"; - if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; - - if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; + if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; + + if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; set @healfee, @HpPrice+@SpPrice; - if (getarg(0) == 1 && getarg(1) == 1 && Zeny<@healfee) goto Zeny_Short_Both; - if (getarg(0) == 1 && Zeny<@healfee) goto Zeny_short_HP; - if (getarg(1) == 1 && Zeny<@healfee) goto Zeny_short_SP; + if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; + if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; + if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; set Zeny, Zeny-@healfee; - if (getarg(0) == 1 && getarg(1) == 1) percentheal 100,100; + if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; if (getarg(0) == 1) percentheal 100,0; if (getarg(1) == 1) percentheal 0,100; close; @@ -553,34 +553,37 @@ Zeny_short_HP: mes "do you want me to partly heal your HP ?"; if (select("Yes","No") == 2) goto L_end; set @Hp, Zeny/$QW_HP_H_PRICE; - set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Hp == 1) mes "your not worth the effort"; - if (@Hp == 1) goto L_end; - set Zeny, Zeny-@HpPrice; + set @HpPrice, @Hp*$QW_HP_H_PRICE; + if (@Hp == 1) mes "your not worth the effort"; + if (@Hp == 1) goto L_end; + set Zeny, Zeny-@HpPrice; heal @Hp,0; close; end; + Zeny_short_SP: mes "[Warpra]"; mes "do you want me to partly heal your SP ?"; if (select("Yes","No") == 2) goto L_end; set @Sp, Zeny/$QW_HP_S_PRICE; - set @SpPrice, @Sp*$QW_HP_S_PRICE; - if (@Sp == 1) mes "your not worth the effort"; - if (@Sp == 1) goto L_end; - set Zeny, Zeny-@SpPrice; + set @SpPrice, @Sp*$QW_HP_S_PRICE; + if (@Sp == 1) mes "your not worth the effort"; + if (@Sp == 1) goto L_end; + set Zeny, Zeny-@SpPrice; heal 0,@Sp; close; end; + //=============================Storage============================= L_Storage: next; if(basicskillcheck() > 0 && getskilllv(1) < 6) goto L_StorageJBlow; set @fee, $QW_S_PRICE; - if ($QW_S_PRICE == 60 && BaseJob == Job_Novice) set @fee, 30; + if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; + if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; if(Zeny<@fee) callsub L_Short_on_zeny,2; set Zeny, Zeny-@fee; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); @@ -732,14 +735,14 @@ function script QWS_MMarray { set @Mi,0; // That's our loop counter. set @Mj,0; // That's the menu lines counter. //----------------GameMaster-Menu - if (getgmlevel()>=80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getgmlevel()>=80) set @Mmenuref[@Mj],@Mi; - if (getgmlevel()>=80) set @Mj,@Mj+1; + if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; + if (getgmlevel()>= 80) set @Mj,@Mj+1; set @Mi,@Mi+1; //----------------Special-Warp callfunc "QWS_TownStamps"; callfunc "QWS_DungeonStamps"; - if (@Tstamp == @MaxTstamp && @Dstamp == @MaxDstamp && $QW_SP_WarpMap$ != "") { + if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; set @Mmenuref[@Mj],@Mi; set @Mj,@Mj+1; @@ -799,14 +802,14 @@ function script QWS_MMarray { // setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu // setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) // -// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town +// setarray @pTmap$[@Ti], "prontera.gat"; // mapfilename of town // setarray @pTXcoords[@Ti], 156; // X warp coords // setarray @pTYcoords[@Ti], 187; // Y warp coords // // QWS_Make_Town_Menu XXX; // // the full wap commands send out by this script for these example would be -//warp example_01 123 123 +//warp example_01.gat 123 123 // // use the same XXX number as you used when making your own town warpra // Read below how @@ -814,11 +817,11 @@ function script QWS_MMarray { // example: // //syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +//mapname.gat,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ // // Full example using fake map & coords // -//example_01,213,213,4 script Warpra 112,{ +//example_01.gat,213,213,4 script Warpra 112,{ // callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; // close; // } @@ -833,7 +836,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Prontera"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "prontera"; + setarray @pTmap$[@Ti], "prontera.gat"; setarray @pTXcoords[@Ti], 156; setarray @pTYcoords[@Ti], 187; @@ -842,7 +845,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Alberta"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "alberta"; + setarray @pTmap$[@Ti], "alberta.gat"; setarray @pTXcoords[@Ti], 27; setarray @pTYcoords[@Ti], 236; @@ -851,7 +854,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Aldebaran"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "aldebaran"; + setarray @pTmap$[@Ti], "aldebaran.gat"; setarray @pTXcoords[@Ti], 145; setarray @pTYcoords[@Ti], 120; @@ -860,7 +863,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Amatsu"; setarray @pTprice[@Ti], $QW_OW_PRICE; - setarray @pTmap$[@Ti], "amatsu"; + setarray @pTmap$[@Ti], "amatsu.gat"; setarray @pTXcoords[@Ti], 197; setarray @pTYcoords[@Ti], 86; @@ -869,7 +872,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Ayothaya"; setarray @pTprice[@Ti], $QW_OW_PRICE; - setarray @pTmap$[@Ti], "ayothaya"; + setarray @pTmap$[@Ti], "ayothaya.gat"; setarray @pTXcoords[@Ti], 150; setarray @pTYcoords[@Ti], 57; @@ -878,7 +881,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Comodo"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "comodo"; + setarray @pTmap$[@Ti], "comodo.gat"; setarray @pTXcoords[@Ti], 188; setarray @pTYcoords[@Ti], 161; @@ -887,7 +890,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Einbech"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "einbech"; + setarray @pTmap$[@Ti], "einbech.gat"; setarray @pTXcoords[@Ti], 172; setarray @pTYcoords[@Ti], 126; @@ -896,7 +899,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Einbroch"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "einbroch"; + setarray @pTmap$[@Ti], "einbroch.gat"; setarray @pTXcoords[@Ti], 230; setarray @pTYcoords[@Ti], 191; @@ -905,7 +908,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Geffen"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "geffen"; + setarray @pTmap$[@Ti], "geffen.gat"; setarray @pTXcoords[@Ti], 119; setarray @pTYcoords[@Ti], 66; @@ -914,7 +917,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Gonryun"; setarray @pTprice[@Ti], $QW_OW_PRICE; - setarray @pTmap$[@Ti], "gonryun"; + setarray @pTmap$[@Ti], "gonryun.gat"; setarray @pTXcoords[@Ti], 150; setarray @pTYcoords[@Ti], 130; @@ -923,7 +926,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Hugel"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "hugel"; + setarray @pTmap$[@Ti], "hugel.gat"; setarray @pTXcoords[@Ti], 95; setarray @pTYcoords[@Ti], 121; @@ -932,7 +935,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Izlude"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "izlude"; + setarray @pTmap$[@Ti], "izlude.gat"; setarray @pTXcoords[@Ti], 128; setarray @pTYcoords[@Ti], 111; @@ -941,7 +944,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Jawaii"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "jawaii"; + setarray @pTmap$[@Ti], "jawaii.gat"; setarray @pTXcoords[@Ti], 243; setarray @pTYcoords[@Ti], 115; @@ -950,7 +953,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Lighthalzen"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "lighthalzen"; + setarray @pTmap$[@Ti], "lighthalzen.gat"; setarray @pTXcoords[@Ti], 158; setarray @pTYcoords[@Ti], 110; @@ -959,7 +962,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Louyang"; setarray @pTprice[@Ti], $QW_OW_PRICE; - setarray @pTmap$[@Ti], "louyang"; + setarray @pTmap$[@Ti], "louyang.gat"; setarray @pTXcoords[@Ti], 210; setarray @pTYcoords[@Ti], 108; @@ -968,7 +971,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Lutie"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "xmas"; + setarray @pTmap$[@Ti], "xmas.gat"; setarray @pTXcoords[@Ti], 148; setarray @pTYcoords[@Ti], 131; @@ -977,7 +980,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Morroc"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "morocc"; + setarray @pTmap$[@Ti], "morocc.gat"; setarray @pTXcoords[@Ti], 159; setarray @pTYcoords[@Ti], 93; @@ -986,7 +989,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Niflheim"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "niflheim"; + setarray @pTmap$[@Ti], "niflheim.gat"; setarray @pTXcoords[@Ti], 195; setarray @pTYcoords[@Ti], 186; @@ -995,7 +998,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Payon"; setarray @pTprice[@Ti], $QW_BW_PRICE; - setarray @pTmap$[@Ti], "payon"; + setarray @pTmap$[@Ti], "payon.gat"; setarray @pTXcoords[@Ti], 152; setarray @pTYcoords[@Ti], 75; @@ -1004,7 +1007,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Umbala"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "umbala"; + setarray @pTmap$[@Ti], "umbala.gat"; setarray @pTXcoords[@Ti], 130; setarray @pTYcoords[@Ti], 130; @@ -1013,7 +1016,7 @@ function script QWS_Tarray { setarray @pTmenuitems$[@Ti], "Yuno"; setarray @pTprice[@Ti], $QW_AW_PRICE; - setarray @pTmap$[@Ti], "yuno"; + setarray @pTmap$[@Ti], "yuno.gat"; setarray @pTXcoords[@Ti], 160; setarray @pTYcoords[@Ti], 168; @@ -1043,10 +1046,10 @@ menu_item: set @Ti,@Ti+1; return; } - if (@pTprice[@Ti] != 0 && $QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0 && $QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; - if (@pTprice[@Ti] != 0 && $QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0 && $QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; set @Tmenuref[@Tj],@Ti; set @Tj,@Tj+1; set @Ti,@Ti+1; @@ -1063,7 +1066,7 @@ menu_item: // setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") // setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) // -// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level +// setarray @DGat$[@Dref], "example_01.gat", "example_02.gat"; // mapfilename of dungeon level // setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select // setarray @DXcoords[@Dref], 123, 234; // X warp coords // setarray @DYcoords[@Dref], 123, 234;// Y warp coords @@ -1073,10 +1076,10 @@ menu_item: // // the full wap commands send out by this scripts for these examples would be // for Example Level 1: -//warp example_01 123 123 +//warp example_01.gat 123 123 // // for Example Level 2: -//warp example_02 234 234 +//warp example_02.gat 234 234 // // use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon // (usually half way near a warp to next level) @@ -1085,11 +1088,11 @@ menu_item: // example: // //syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +//mapname.gat,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ // // Full example using fake map & coords // -//example_01,213,213,4 script Warpra Helper 112,{ +//example_01.gat,213,213,4 script Warpra Helper 112,{ // callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; // close; // } @@ -1107,7 +1110,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; + setarray @DGat$[@Dref], "abyss_01.gat", "abyss_02.gat", "abyss_03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 265, 275, 116; setarray @DYcoords[@Dref], 273, 270, 27; @@ -1121,7 +1124,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_OW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "ama_dun01", "ama_dun02", "ama_dun03"; + setarray @DGat$[@Dref], "ama_dun01.gat", "ama_dun02.gat", "ama_dun03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 227, 32, 119; setarray @DYcoords[@Dref], 10, 43, 15; @@ -1135,7 +1138,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[2], 2; - setarray @DGat$[@Dref], "anthell01", "anthell02"; + setarray @DGat$[@Dref], "anthell01.gat", "anthell02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 32, 34; setarray @DYcoords[@Dref], 262, 263; @@ -1149,7 +1152,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_OW_FEE"; setarray @DLevels[3], 2; - setarray @DGat$[@Dref], "ayo_dun01", "ayo_dun02"; + setarray @DGat$[@Dref], "ayo_dun01.gat", "ayo_dun02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 275, 150; setarray @DYcoords[@Dref], 17, 13; @@ -1163,7 +1166,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[4], 5; - setarray @DGat$[@Dref], "iz_dun00", "iz_dun01", "iz_dun02", "iz_dun03", "iz_dun04"; + setarray @DGat$[@Dref], "iz_dun00.gat", "iz_dun01.gat", "iz_dun02.gat", "iz_dun03.gat", "iz_dun04.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; setarray @DXcoords[@Dref], 168, 41, 236, 32, 26; setarray @DYcoords[@Dref], 168, 37, 204, 63, 27; @@ -1177,7 +1180,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[5], 8; - setarray @DGat$[@Dref], "c_tower1", "c_tower2", "c_tower3", "c_tower4", "alde_dun01", "alde_dun02", "alde_dun03", "alde_dun04"; + setarray @DGat$[@Dref], "c_tower1.gat", "c_tower2.gat", "c_tower3.gat", "c_tower4.gat", "alde_dun01.gat", "alde_dun02.gat", "alde_dun03.gat", "alde_dun04.gat"; setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F"; setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 130; setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 130; @@ -1191,7 +1194,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[6], 3; - setarray @DGat$[@Dref], "mjo_dun01", "mjo_dun02", "mjo_dun03"; + setarray @DGat$[@Dref], "mjo_dun01.gat", "mjo_dun02.gat", "mjo_dun03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 52, 381, 302; setarray @DYcoords[@Dref], 17, 343, 261; @@ -1205,7 +1208,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[7], 4; - setarray @DGat$[@Dref], "prt_sewb1", "prt_sewb2", "prt_sewb3", "prt_sewb4"; + setarray @DGat$[@Dref], "prt_sewb1.gat", "prt_sewb2.gat", "prt_sewb3.gat", "prt_sewb4.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; setarray @DXcoords[@Dref], 132, 19, 180, 100; setarray @DYcoords[@Dref], 248, 19, 169, 92; @@ -1219,7 +1222,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[8], 2; - setarray @DGat$[@Dref], "ein_dun01", "ein_dun02"; + setarray @DGat$[@Dref], "ein_dun01.gat", "ein_dun02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 22, 292; setarray @DYcoords[@Dref], 14, 290; @@ -1233,7 +1236,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[9], 4; - setarray @DGat$[@Dref], "gefenia01", "gefenia02", "gefenia03", "gefenia04"; + setarray @DGat$[@Dref], "gefenia01.gat", "gefenia02.gat", "gefenia03.gat", "gefenia04.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; setarray @DXcoords[@Dref], 59, 201, 264, 33; setarray @DYcoords[@Dref], 167, 35, 236, 270; @@ -1247,7 +1250,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 4; - setarray @DGat$[@Dref], "gef_dun00", "gef_dun01", "gef_dun02", "gef_dun03"; + setarray @DGat$[@Dref], "gef_dun00.gat", "gef_dun01.gat", "gef_dun02.gat", "gef_dun03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; setarray @DXcoords[@Dref], 104, 115, 106, 203; setarray @DYcoords[@Dref], 100, 236, 132, 200; @@ -1261,7 +1264,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 17; - setarray @DGat$[@Dref], "glast_01", "gl_church", "gl_chyard", "gl_in01", "gl_cas01", "gl_cas02", "gl_knt01", "gl_knt02", "gl_prison", "gl_prison1", "gl_step", "gl_sew01", "gl_sew02", "gl_sew03", "gl_sew04", "gl_dun01", "gl_dun02"; + setarray @DGat$[@Dref], "glast_01.gat", "gl_church.gat", "gl_chyard.gat", "gl_in01.gat", "gl_cas01.gat", "gl_cas02.gat", "gl_knt01.gat", "gl_knt02.gat", "gl_prison.gat", "gl_prison1.gat", "gl_step.gat", "gl_sew01.gat", "gl_sew02.gat", "gl_sew03.gat", "gl_sew04.gat", "gl_dun01.gat", "gl_dun02.gat"; setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2"; setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224; setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274; @@ -1275,7 +1278,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_OW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "gon_dun01", "gon_dun02", "gon_dun03"; + setarray @DGat$[@Dref], "gon_dun01.gat", "gon_dun02.gat", "gon_dun03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 143, 17, 68; setarray @DYcoords[@Dref], 59, 114, 9; @@ -1289,7 +1292,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "prt_maze01", "prt_maze02", "prt_maze03"; + setarray @DGat$[@Dref], "prt_maze01.gat", "prt_maze02.gat", "prt_maze03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 176, 94, 23; setarray @DYcoords[@Dref], 6, 19, 8; @@ -1303,7 +1306,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "juperos_01", "juperos_02"; + setarray @DGat$[@Dref], "juperos_01.gat", "juperos_02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 53, 36; setarray @DYcoords[@Dref], 247, 60; @@ -1317,7 +1320,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "kh_dun01", "kh_dun02"; + setarray @DGat$[@Dref], "kh_dun01.gat", "kh_dun02.gat"; setarray @DLevelName$[@Dref], "1st Floor", "2nd Floor"; setarray @DXcoords[@Dref], 63, 42; setarray @DYcoords[@Dref], 10, 197; @@ -1331,7 +1334,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "lhz_dun01", "lhz_dun02", "lhz_dun03"; + setarray @DGat$[@Dref], "lhz_dun01.gat", "lhz_dun02.gat", "lhz_dun03.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 150, 150, 140; setarray @DYcoords[@Dref], 287, 18, 137; @@ -1345,7 +1348,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_OW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "lou_dun02", "lou_dun03"; + setarray @DGat$[@Dref], "lou_dun02.gat", "lou_dun03.gat"; setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2"; setarray @DXcoords[@Dref], 282, 165; setarray @DYcoords[@Dref], 20, 38; @@ -1359,7 +1362,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "mag_dun01", "mag_dun02"; + setarray @DGat$[@Dref], "mag_dun01.gat", "mag_dun02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 126, 47; setarray @DYcoords[@Dref], 69, 32; @@ -1373,7 +1376,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 1; - setarray @DGat$[@Dref], "odin_tem01"; + setarray @DGat$[@Dref], "odin_tem01.gat"; setarray @DLevelName$[@Dref], "Level 1"; setarray @DXcoords[@Dref], 96; setarray @DYcoords[@Dref], 145; @@ -1387,7 +1390,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "orcsdun01", "orcsdun02"; + setarray @DGat$[@Dref], "orcsdun01.gat", "orcsdun02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 32, 21; setarray @DYcoords[@Dref], 169, 185; @@ -1401,7 +1404,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 5; - setarray @DGat$[@Dref], "pay_dun00", "pay_dun01", "pay_dun02", "pay_dun03", "pay_dun04"; + setarray @DGat$[@Dref], "pay_dun00.gat", "pay_dun01.gat", "pay_dun02.gat", "pay_dun03.gat", "pay_dun04.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; setarray @DXcoords[@Dref], 22, 19, 19, 155, 201; setarray @DYcoords[@Dref], 180, 33, 63, 159, 204; @@ -1415,7 +1418,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 6; - setarray @DGat$[@Dref], "moc_pryd01", "moc_pryd02", "moc_pryd03", "moc_pryd04", "moc_pryd05", "moc_pryd06"; + setarray @DGat$[@Dref], "moc_pryd01.gat", "moc_pryd02.gat", "moc_pryd03.gat", "moc_pryd04.gat", "moc_pryd05.gat", "moc_pryd06.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2"; setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192; setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8; @@ -1429,7 +1432,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 5; - setarray @DGat$[@Dref], "in_sphinx1", "in_sphinx2", "in_sphinx3", "in_sphinx4", "in_sphinx5"; + setarray @DGat$[@Dref], "in_sphinx1.gat", "in_sphinx2.gat", "in_sphinx3.gat", "in_sphinx4.gat", "in_sphinx5.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; setarray @DXcoords[@Dref], 192, 149, 210, 10, 100; setarray @DYcoords[@Dref], 9, 81, 54, 222, 99; @@ -1443,7 +1446,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_BW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "treasure01", "treasure02"; + setarray @DGat$[@Dref], "treasure01.gat", "treasure02.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2"; setarray @DXcoords[@Dref], 69, 102; setarray @DYcoords[@Dref], 24, 27; @@ -1457,7 +1460,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 13; - setarray @DGat$[@Dref], "tha_t01", "tha_t02", "tha_t03", "tha_t04", "tha_t05", "tha_t06", "tha_t07", "tha_t08", "tha_t09", "tha_t10", "tha_t11", "tha_t12", "thana_boss"; + setarray @DGat$[@Dref], "tha_t01.gat", "tha_t02.gat", "tha_t03.gat", "tha_t04.gat", "tha_t05.gat", "tha_t06.gat", "tha_t07.gat", "tha_t08.gat", "tha_t09.gat", "tha_t10.gat", "tha_t11.gat", "tha_t12.gat", "thana_boss.gat"; setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss"; setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85; setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76; @@ -1471,7 +1474,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 2; - setarray @DGat$[@Dref], "xmas_dun01", "xmas_dun02"; + setarray @DGat$[@Dref], "xmas_dun01.gat", "xmas_dun02.gat"; setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room"; setarray @DXcoords[@Dref], 205, 129; setarray @DYcoords[@Dref], 16, 133; @@ -1485,7 +1488,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_AW_FEE"; setarray @DLevels[@Di], 4; - setarray @DGat$[@Dref], "tur_dun01", "tur_dun02", "tur_dun03", "tur_dun04"; + setarray @DGat$[@Dref], "tur_dun01.gat", "tur_dun02.gat", "tur_dun03.gat", "tur_dun04.gat"; setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3"; setarray @DXcoords[@Dref], 161, 148, 132, 100; setarray @DYcoords[@Dref], 34, 256, 190, 192; @@ -1499,7 +1502,7 @@ function script QWS_Darray { setarray @pDfee$[@Di], "$QW_OW_FEE"; setarray @DLevels[@Di], 3; - setarray @DGat$[@Dref], "um_dun01", "um_dun02", "yggdrasil01"; + setarray @DGat$[@Dref], "um_dun01.gat", "um_dun02.gat", "yggdrasil01.gat"; setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain"; setarray @DXcoords[@Dref], 205, 48, 40; setarray @DYcoords[@Dref], 16, 30, 63; @@ -1569,16 +1572,17 @@ function script QWS_DLarray { set @DWj,0; // That's the menu lines counter. cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu do { - if ($QW_DL == 0 || $QW_DDL >= @DDepth[@DWref]) { + if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { + set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); - if (@warpprice != 0 && $QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; - if (@warpprice == 0 && $QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; - if (@warpprice != 0 && $QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; - if (@warpprice == 0 && $QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; + if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; + if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; set @DWLmenuref[@DWj],@DWref; - - set @DWj,@DWj+1; + + set @DWj,@DWj+1; } set @DWref, @DWref+1; set @DWi,@DWi+1; @@ -1777,7 +1781,7 @@ function script QWS_Dungeon_Warpra { function QWS_D_getbin; function QWS_D_setbin; - if (QWS_D_getbin(getarg(0)) == 0 && getarg(1) != "") { + if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { mes "[Warpra]"; mes getarg(1)+" unlocked!"; QWS_D_setbin(getarg(0)); @@ -1823,7 +1827,7 @@ function script QWS_Town_Warpra { function QWS_T_getbin; function QWS_T_setbin; - if (QWS_T_getbin(getarg(0)) == 0 && getarg(1) != "") { + if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { mes "[Warpra]"; mes getarg(1)+" unlocked!"; QWS_T_setbin(getarg(0)); @@ -1863,274 +1867,274 @@ binget: } //============================Warpras============================== -alb2trea,73,101,4 script Warpra 113,{ +alb2trea.gat,73,101,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -ama_fild01,178,325,1 script Warpra 113,{ +ama_fild01.gat,178,325,1 script Warpra 113,{ callfunc "Q_Warpra",1; } -gef_fild10,71,339,4 script Warpra 113,{ +gef_fild10.gat,71,339,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -izlu2dun,104,82,4 script Warpra 113,{ +izlu2dun.gat,104,82,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -mjolnir_02,85,363,4 script Warpra 113,{ +mjolnir_02.gat,85,363,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -moc_fild04,207,331,4 script Warpra 113,{ +moc_fild04.gat,207,331,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -moc_fild19,106,97,4 script Warpra 113,{ +moc_fild19.gat,106,97,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -moc_ruins,64,166,4 script Warpra 113,{ +moc_ruins.gat,64,166,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -niflheim,197,192,3 script Warpra 113,{ +niflheim.gat,197,192,3 script Warpra 113,{ callfunc "Q_Warpra",1; } -pay_arche,39,135,4 script Warpra 113,{ +pay_arche.gat,39,135,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -prt_fild05,273,215,4 script Warpra 113,{ +prt_fild05.gat,273,215,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -tur_dun01,148,239,4 script Warpra 113,{ +tur_dun01.gat,148,239,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -valkyrie,48,35,8 script Warpra 113,{ +valkyrie.gat,48,35,8 script Warpra 113,{ callfunc "Q_Warpra",1; } -yuno_fild03,37,135,4 script Warpra 113,{ +yuno_fild03.gat,37,135,4 script Warpra 113,{ callfunc "Q_Warpra",1; } -alberta,32,240,4 script Warpra 113,{ +alberta.gat,32,240,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",1,"Alberta Town"; close; } -aldebaran,146,118,4 script Warpra 113,{ +aldebaran.gat,146,118,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; close; } -ayothaya,216,171,5 script Warpra 113,{ +ayothaya.gat,216,171,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; close; } -amatsu,193,81,1 script Warpra 113,{ +amatsu.gat,193,81,1 script Warpra 113,{ callfunc "QWS_Town_Warpra",3,"Amatsu Town"; close; } -comodo,195,158,4 script Warpra 113,{ +comodo.gat,195,158,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",5,"Comodo Town"; close; } -einbroch,229,196,5 script Warpra 113,{ +einbroch.gat,229,196,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",7,"Einbroch Town"; close; } -einbech,173,131,5 script Warpra 113,{ +einbech.gat,173,131,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",6,"Einbech Town"; close; } -geffen,116,66,4 script Warpra 113,{ +geffen.gat,116,66,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",8,"Geffen Town"; close; } -gonryun,152,130,4 script Warpra 113,{ +gonryun.gat,152,130,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",9,"Gonryun Town"; close; } -hugel,90,127,5 script Warpra 113,{ +hugel.gat,90,127,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",10,"Hugel Town"; close; } -jawaii,107,182,5 script Warpra 113,{ +jawaii.gat,107,182,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",12,"Jawaii Town"; close; } -izlude,132,116,4 script Warpra 113,{ +izlude.gat,132,116,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",11,"Izlude Town"; close; } -lighthalzen,153,100,5 script Warpra 113,{ +lighthalzen.gat,153,100,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; close; } -louyang,211,106,4 script Warpra 113,{ +louyang.gat,211,106,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",14,"Louyang Town"; close; } -morocc,157,95,4 script Warpra 113,{ +morocc.gat,157,95,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",16,"Morroc Town"; close; } -nif_fild01,319,77,1 script Warpra 113,{ +nif_fild01.gat,319,77,1 script Warpra 113,{ callfunc "QWS_Town_Warpra",17,"Niflheim Town"; close; } -payon,183,110,4 script Warpra 113,{ +payon.gat,183,110,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",18,"Payon Town"; close; } -prontera,147,172,5 script Warpra 113,{ +prontera.gat,147,172,5 script Warpra 113,{ callfunc "QWS_Town_Warpra",0,"Prontera Town"; close; } -umbala,133,130,4 script Warpra 113,{ +umbala.gat,133,130,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",19,"Umbala Town"; close; } -xmas,151,136,4 script Warpra 113,{ +xmas.gat,151,136,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",15,"Lutie Town"; close; } -yuno,138,162,4 script Warpra 113,{ +yuno.gat,138,162,4 script Warpra 113,{ callfunc "QWS_Town_Warpra",20,"Yuno Town"; close; } -abyss_02,274,266,1 script Warpra 113,{ +abyss_02.gat,274,266,1 script Warpra 113,{ callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; close; } -ama_dun02,192,118,5 script Warpra Helper 112,{ +ama_dun02.gat,192,118,5 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; close; } -anthell02,170,165,3 script Warpra Helper 112,{ +anthell02.gat,170,165,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; close; } -ayo_dun02,258,193,5 script Warpra Helper 112,{ +ayo_dun02.gat,258,193,5 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; close; } -ein_dun02,292,282,1 script Warpra Helper 112,{ +ein_dun02.gat,292,282,1 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; close; } -iz_dun03,202,47,2 script Warpra Helper 112,{ +iz_dun03.gat,202,47,2 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; close; } -c_tower3,129,106,4 script Warpra Helper 112,{ +c_tower3.gat,129,106,4 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; close; } -mjo_dun02,39,25,4 script Warpra Helper 112,{ +mjo_dun02.gat,39,25,4 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; close; } -prt_sewb2,176,30,3 script Warpra Helper 112,{ +prt_sewb2.gat,176,30,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; close; } -gefenia03,137,34,0 script Warpra Helper 112,{ +gefenia03.gat,137,34,0 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; close; } -gef_dun02,218,61,2 script Warpra Helper 112,{ +gef_dun02.gat,218,61,2 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; close; } -glast_01,371,308,3 script Warpra Helper 112,{ +glast_01.gat,371,308,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; close; } -gon_dun01,167,273,4 script Warpra Helper 112,{ +gon_dun01.gat,167,273,4 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; close; } -juperos_02,127,154,5 script Warpra Helper 112,{ +juperos_02.gat,127,154,5 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; close; } -kh_dun01,14,224,3 script Warpra Helper 112,{ +kh_dun01.gat,14,224,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; close; } -lhz_dun02,156,151,5 script Warpra Helper 112,{ +lhz_dun02.gat,156,151,5 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; close; } -lou_dun02,168,264,4 script Warpra Helper 112,{ +lou_dun02.gat,168,264,4 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; close; } -mag_dun02,46,41,3 script Warpra Helper 112,{ +mag_dun02.gat,46,41,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; close; } -odin_tem01,115,148,3 script Warpra Helper 112,{ +odin_tem01.gat,115,148,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; close; } -orcsdun01,185,11,3 script Warpra Helper 112,{ +orcsdun01.gat,185,11,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; close; } -pay_dun03,162,143,3 script Warpra Helper 112,{ +pay_dun03.gat,162,143,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; close; } -moc_pryd02,101,95,3 script Warpra Helper 112,{ +moc_pryd02.gat,101,95,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; close; } -in_sphinx2,274,268,1 script Warpra Helper 112,{ +in_sphinx2.gat,274,268,1 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; close; } -tha_t07,111,162,3 script Warpra Helper 112,{ +tha_t07.gat,111,162,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; close; } -treasure02,104,40,3 script Warpra Helper 112,{ +treasure02.gat,104,40,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; close; } -xmas_dun02,124,131,3 script Warpra Helper 112,{ +xmas_dun02.gat,124,131,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; close; } -um_dun02,44,28,3 script Warpra Helper 112,{ +um_dun02.gat,44,28,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; close; } -tur_dun02,162,23,3 script Warpra Helper 112,{ +tur_dun02.gat,162,23,3 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; close; } -prt_maze02,102,69,4 script Warpra Helper 112,{ +prt_maze02.gat,102,69,4 script Warpra Helper 112,{ callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; close; } diff --git a/npc/custom/eAAC_Scripts/roll_a_dice.txt b/npc/custom/eAAC_Scripts/roll_a_dice.txt index 8c177e3f1..0f1fdf81b 100644 --- a/npc/custom/eAAC_Scripts/roll_a_dice.txt +++ b/npc/custom/eAAC_Scripts/roll_a_dice.txt @@ -241,4 +241,4 @@ L_againa: menu "Yes",L_play,"No",L_go; -}
\ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/vendmachine.txt b/npc/custom/eAAC_Scripts/vendmachine.txt index d3d4f4d0a..bbd7602c6 100644 --- a/npc/custom/eAAC_Scripts/vendmachine.txt +++ b/npc/custom/eAAC_Scripts/vendmachine.txt @@ -1,10 +1,12 @@ //===================================== // Vending Machine Script -// v2.3 +// v2.4 //===================================== // by Celestria //===================================== // Changelog: +// 2.4 - Made optimizations according to suggestions made by erKURITA. Script is now significantly shorter. +// // 2.3 - Added in "Slam" feature, as well as admin ability to turn machine on and off. // - Added admin menu. Allows GMs to put machines in/out of service, and to clear // all jammed items. @@ -46,16 +48,8 @@ p_track01,45,58,4 script Vending Machine#1 910,{ setarray @item[0], 12143, 519, 565; setarray @price[0], 100, 50, 200; - set @itemn$[0], getitemname(@item[0]); - set @itemn$[1], getitemname(@item[1]); - set @itemn$[2], getitemname(@item[2]); - set @itemn$[3], getitemname(@item[3]); - set @itemn$[4], getitemname(@item[4]); - set @itemn$[5], getitemname(@item[5]); - set @itemn$[6], getitemname(@item[6]); - set @itemn$[7], getitemname(@item[7]); - set @itemn$[8], getitemname(@item[8]); - set @itemn$[9], getitemname(@item[9]); + for (set @i,0; @i < 10; set @i,@i+1) + set @itemn$[@i],getitemname(@item[@i]); set @menu$[0], @itemn$[0]+" - "+@price[0]; set @menu$[1], @itemn$[1]+" - "+@price[1]; @@ -127,32 +121,16 @@ M_Ooo3: close; M_Fix: - set $itemjam0$[@machine],"0"; - set $itemjam1$[@machine],"0"; - set $itemjam2$[@machine],"0"; - set $itemjam3$[@machine],"0"; - set $itemjam4$[@machine],"0"; - set $itemjam5$[@machine],"0"; - set $itemjam6$[@machine],"0"; - set $itemjam7$[@machine],"0"; - set $itemjam8$[@machine],"0"; - set $itemjam9$[@machine],"0"; + for (set @i,0; @i < 10; set @i,@i+1) + setd "$itemjam"+@i+"$[@machine]",""; mes "All jammed items have been fixed."; close; } function script F_Vend2 { - if(strcharinfo(0)==$itemjam0$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam1$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam2$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam3$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam4$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam5$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam6$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam7$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam8$[@machine]) goto B_StillJammed; - if(strcharinfo(0)==$itemjam9$[@machine]) goto B_StillJammed; + for (set @i,0; @i < 10; set @i,@i+1) + if(strcharinfo(0)==getd("$itemjam"+@i+"$[@machine]")) goto B_StillJammed; set @jammed,rand(1,@jamrate); mes "You peek inside the vending machine to see what's available."; next; @@ -214,16 +192,8 @@ B_Broke: B_Buy: if (@menu$[@num] == "Cancel") goto B_Cancel; - if(@num==0){if($itemjam0$[@machine]!="0") set @jammed,0;} - if(@num==1){if($itemjam1$[@machine]!="0") set @jammed,0;} - if(@num==2){if($itemjam2$[@machine]!="0") set @jammed,0;} - if(@num==3){if($itemjam3$[@machine]!="0") set @jammed,0;} - if(@num==4){if($itemjam4$[@machine]!="0") set @jammed,0;} - if(@num==5){if($itemjam5$[@machine]!="0") set @jammed,0;} - if(@num==6){if($itemjam6$[@machine]!="0") set @jammed,0;} - if(@num==7){if($itemjam7$[@machine]!="0") set @jammed,0;} - if(@num==8){if($itemjam8$[@machine]!="0") set @jammed,0;} - if(@num==9){if($itemjam9$[@machine]!="0") set @jammed,0;} + for (set @i,0; @i < 10; set @i,@i+1) + if(@num==@i) if(getd("$itemjam"+@i+"$[@machine]")) set @jammed,0; if(Zeny < @price[@num]) goto B_Broke; set Zeny,Zeny-@price[@num]; if(@jammed == 1) goto B_Jamitem; @@ -239,16 +209,8 @@ B_Get2: mes "What the!?"; mes "Two "+@itemn$[@num]+"s popped out!"; mes "It must be your lucky day."; - if(@num==0) set $itemjam0$[@machine],"0"; - if(@num==1) set $itemjam1$[@machine],"0"; - if(@num==2) set $itemjam2$[@machine],"0"; - if(@num==3) set $itemjam3$[@machine],"0"; - if(@num==4) set $itemjam4$[@machine],"0"; - if(@num==5) set $itemjam5$[@machine],"0"; - if(@num==6) set $itemjam6$[@machine],"0"; - if(@num==7) set $itemjam7$[@machine],"0"; - if(@num==8) set $itemjam8$[@machine],"0"; - if(@num==9) set $itemjam9$[@machine],"0"; + for (set @i,0; @i < 10; set @i,@i+1) + if(@num==@i) setd "$itemjam"+@i+"$[@machine]",""; close; B_Jamitem: mes "Vrrrrrrrr~"; @@ -257,16 +219,8 @@ B_Jamitem: mes "["+strcharinfo(0)+"]"; mes "Dammit!"; mes "I hate it when these damn things jam!"; - if(@num==0) set $itemjam0$[@machine],strcharinfo(0); - if(@num==1) set $itemjam1$[@machine],strcharinfo(0); - if(@num==2) set $itemjam2$[@machine],strcharinfo(0); - if(@num==3) set $itemjam3$[@machine],strcharinfo(0); - if(@num==4) set $itemjam4$[@machine],strcharinfo(0); - if(@num==5) set $itemjam5$[@machine],strcharinfo(0); - if(@num==6) set $itemjam6$[@machine],strcharinfo(0); - if(@num==7) set $itemjam7$[@machine],strcharinfo(0); - if(@num==8) set $itemjam8$[@machine],strcharinfo(0); - if(@num==9) set $itemjam9$[@machine],strcharinfo(0); + for (set @i,0; @i < 10; set @i,@i+1) + if(@num==@i) setd "$itemjam"+@i+"$[@machine]",strcharinfo(0); close; } |