Selaa lähdekoodia

Added easter, xmas event npcs. Added custom blackjack npc. [kobra_k88]

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@13 54d463be-8e91-2dee-dedb-b68131a5f0ec
(no author) 20 vuotta sitten
vanhempi
commit
34c9cc4beb

+ 52 - 58
conf-tmpl/map_athena.conf

@@ -103,9 +103,8 @@ npc: npc/sample/PCLoginEvent.txt
 // ---------------- Your Own Npcs -----------------------
 //Add Them Here ;)
 
-//---------------------- Global Scripts Functions -------------------------------
-npc: npc/other/Global_Functions.txt
-//------------------------------ Cities -----------------------------------------
+
+//------------------------ Cities ----------------------------
 npc: npc/cities/alberta.txt
 npc: npc/cities/aldebaran.txt
 npc: npc/cities/amatsu.txt
@@ -121,7 +120,8 @@ npc: npc/cities/gonryun.txt
 npc: npc/cities/umbala.txt
 npc: npc/cities/niflheim.txt
 
-//------------------------------ Jobs --------------------------------------
+
+//-------------------------- Jobs -------------------------------
 //Novice
 npc: npc/jobs/novice/novice.txt
 npc: npc/jobs/novice/supernovice.txt
@@ -169,14 +169,9 @@ npc: npc/jobs/2-2-1/Paladin.txt
 npc: npc/jobs/2-2-1/Professor.txt
 npc: npc/jobs/2-2-1/Stalker.txt
 
-//---------------------- Merchants --------------------------
-//Shops
-npc: npc/merchants/shops.txt
-
-//towns have good shops for 2-2 now
-//npc: npc/merchants/2-2shop.txt
 
-// Other sellers
+//------------------------- Merchants ----------------------------
+npc: npc/merchants/shops.txt
 npc: npc/merchants/refine.txt
 npc: npc/merchants/dye_maker.txt
 npc: npc/merchants/clothes_dyer.txt
@@ -187,12 +182,14 @@ npc: npc/merchants/milk_trader.txt
 npc: npc/merchants/renters.txt
 npc: npc/merchants/alchemist.txt
 
+// Custom
+//npc: npc/merchants/custom/2-2shop.txt
 // Free Falcon & Peco breeder, Free Carts
 //npc: npc/merchants/custom/breeder.txt
 
 
-//------------------------------- Quests ------------------------------------
-// Cities Quests
+//--------------------------- Quests ------------------------------
+// Item Quests
 npc: npc/quests/quests_alberta.txt
 npc: npc/quests/quests_aldebaran.txt
 npc: npc/quests/quests_comodo.txt
@@ -213,7 +210,6 @@ npc: npc/quests/doomed_swords.txt
 npc: npc/quests/bongun.txt
 npc: npc/quests/munak.txt
 npc: npc/quests/bongunsword.txt
-// Monster Taming
 npc: npc/quests/monstertamers.txt
 
 // Custom Quests, might be balance breaking (Enable if you want)
@@ -229,12 +225,11 @@ npc: npc/quests/custom/new_hats.txt
 // Above Npcs are better ^_^
 //npc: npc/quests/custom/event_32_new_hats.txt
 npc: npc/quests/custom/valhallen.txt
-npc: npc/quests/custom/uneasy_cemetery.txt
 //both Lord Kaho, but different and quest.txt has balmung to:
 //npc: npc/quests/custom/kaho_balmung.txt
 //npc: npc/quests/custom/kahohorn.txt
 
-//-------------------------- Skill Quests ---------------------------------
+//----------------------- Skill Quests -----------------------------
 npc: npc/quests/skills/acolyte_skills.txt
 npc: npc/quests/skills/archer_skills.txt
 npc: npc/quests/skills/mage_skills.txt
@@ -243,9 +238,9 @@ npc: npc/quests/skills/novice_skills.txt
 npc: npc/quests/skills/swordsman_skills.txt
 npc: npc/quests/skills/thief_skills.txt
 
-// Extra Skills NPC (Not required anymore since skill quests are done)
 //npc: npc/other/platinum_skills.txt
 
+
 // -------------------------- Guides -------------------------------
 npc: npc/guides/guides_alb.txt
 npc: npc/guides/guides_alde.txt
@@ -260,7 +255,8 @@ npc: npc/guides/guides_umb.txt
 npc: npc/guides/guides_nif.txt
 //more to come
 
-// -------------------------- Kafras -------------------------------------
+
+// -------------------------- Kafras --------------------------------
 npc: npc/kafras/functions_kafras.txt
 npc: npc/kafras/kafras_alb.txt
 npc: npc/kafras/kafras_alde.txt
@@ -275,14 +271,22 @@ npc: npc/kafras/kafras_yun.txt
 npc: npc/kafras/kafras_new.txt
 //more to come
 
-//---------------------------- Others -----------------------------------
+
+//---------------------------- Events --------------------------------
+npc: ncp/events/easter.txt
+//npc: npc/events/valentinesday.txt
+//npc: npc/events/alchemist.txt
+//npc: npc/events/twintowers.txt
+npc: npc/events/custom/uneasy_cemetery.txt
+//npc: npc/events/custom/draculax.txt
+
+
+//---------------------------- Others --------------------------------
 npc: npc/other/books.txt
 npc: npc/other/msg_boards.txt
 npc: npc/other/pvp.txt
 npc: npc/other/IceCream.txt
 npc: npc/other/card_remover.txt
-
-
 //npc: npc/other/wedding.txt
 //npc: npc/other/Valkyrie.txt
 //npc: npc/other/gefenia.txt
@@ -290,18 +294,18 @@ npc: npc/other/card_remover.txt
 //npc: npc/other/tougijou.txt
 //npc: npc/other/arena_mvp.txt
 
-//---------------------------- Events -----------------------------------
-// jRO/kRO/mRO/tRO/etc NPC: Valentine's Day (Sells Chocolates)
-//npc: npc/events/valentinesday.txt
-// ?RO NPC: Alchemist (Allows trading of elemental stones)
-//npc: npc/events/alchemist.txt
-// mRO NPC: Twin Towers (Free Warp to several dungeons)
-//npc: npc/events/twintowers.txt
+// Global Scripts Functions ------------------
+npc: npc/other/Global_Functions.txt
+
 
-//-------------------------- Unofficial NPCs ------------------------------
-// Bank Npc
+//------------------------- Unofficial NPCs --------------------------
 npc: npc/other/kafra_bank.txt
 //npc: npc/other/bank.txt
+//npc: npc/jobs/custom/reset.txt
+//npc: npc/jobs/custom/jobchange.txt
+//npc: npc/other/heal.txt
+//npc: npc/other/heal_payment.txt
+npc: npc/other/blackjack.txt
 
 // Warper NPC (Enable for free warp service)
 // 1st is Warper with only option for cities and dungeons
@@ -309,26 +313,17 @@ npc: npc/other/kafra_bank.txt
 // 2nd you can choose which lvl of the dungeon (you have to disabled 1 if you use 2!)
 //npc: npc/other/warper2.txt
 
-// Reset NPC (Enable for special reset events)
-//npc: npc/jobs/custom/reset.txt
-//Multi-Jobchanger
-//npc: npc/jobs/custom/jobchange.txt
-
 // Free Stylist NPC - Cloths/Hair Dye - (Requires 77 dye palletes)
 //npc: npc/merchants/custom/dye.txt
 
-// Free healing
-//npc: npc/other/heal.txt
-// Payment healings
-//npc: npc/other/heal_payment.txt
-
-// Dracula X Script to display usage of npcskilleffect command
-//npc: npc/events/custom/draculax.txt
-
 // Dev NPCs
 npc: npc/other/devnpc.txt
 
-//--------------------------- Guild Wars ------------------------------------
+//= MC Cameri's Bank NPC
+//npc: npc/other/mc_cameri/bank.txt
+
+
+//-------------------------- Guild Wars ---------------------------------
 //Guild Wars: General
 npc: npc/guild/gldfunc_manager.txt
 npc: npc/guild/gldfunc_dunsw.txt
@@ -384,7 +379,7 @@ npc: npc/guild/nguild/nguild_treas.txt
 npc: npc/guild/nguild/nguild_guardians.txt
 
 
-//----------------------- Guild Wars(Non-optimized) -------------------------
+//------------------ Guild Wars(Non-optimized) -----------------------
 //Guild Wars: General
 //npc: npc/guild/old/ev_agit_event.txt
 
@@ -466,7 +461,7 @@ npc: npc/guild/nguild/nguild_guardians.txt
 
 
 //--------------------- Warps ---------------------------
-//= Cities ==============================================
+//= Cities ============================
 npc: npc/warps/cities/alberta.txt
 npc: npc/warps/cities/aldebaran.txt
 npc: npc/warps/cities/amatsu.txt
@@ -483,7 +478,7 @@ npc: npc/warps/cities/prontera.txt
 npc: npc/warps/cities/umbala.txt
 npc: npc/warps/cities/yggdrasil.txt
 npc: npc/warps/cities/yuno.txt
-//= Dungeons ===========================================
+//= Dungeons =============================
 npc: npc/warps/dungeons/alberta_duns.txt
 npc: npc/warps/dungeons/alde_ct.txt
 npc: npc/warps/dungeons/amatsu_dun.txt
@@ -501,7 +496,7 @@ npc: npc/warps/dungeons/payon_dun.txt
 npc: npc/warps/dungeons/prt_dun.txt
 npc: npc/warps/dungeons/umbala_dun.txt
 npc: npc/warps/dungeons/yuno_dun.txt
-//= Fields =============================================
+//= Fields ===============================
 npc: npc/warps/fields/amatsu_fild.txt
 npc: npc/warps/fields/com_fild.txt
 npc: npc/warps/fields/gefenia.txt
@@ -515,16 +510,15 @@ npc: npc/warps/fields/payon_fild.txt
 npc: npc/warps/fields/prontera_fild.txt
 npc: npc/warps/fields/umbala_fild.txt
 npc: npc/warps/fields/yuno_fild.txt
-//= Guilds =============================================
+//= Guilds ==============================
 npc: npc/warps/guild/guildcastles.txt
-//= Other ==============================================
+//= Other ================================
 npc: npc/warps/other/jobquests.txt
 npc: npc/warps/other/other.txt
-//= MC Cameri's Bank NPC ===============================
-//npc: npc/warps/other/mc_cameri/bank.txt
-//= PVP ================================================
+//= PVP ==================================
 npc: npc/warps/pvp/pvp.txt
 
+
 //--------------------- Mobs ---------------------------
 npc: npc/mobs/pvp.txt
 npc: npc/mobs/fields/amatsu.txt
@@ -1048,11 +1042,11 @@ map: louyang.gat
 //Requires kRO Sakray 04-07 or newer
 //(Akaru's SuperGRF required version: 1.53)
 //map: siege_test.gat
-//map: n_castle.gat
-//map: nguild_gef.gat
-//map: nguild_prt.gat
-//map: nguild_pay.gat
-//map: nguild_alde.gat
+map: n_castle.gat
+map: nguild_gef.gat
+map: nguild_prt.gat
+map: nguild_pay.gat
+map: nguild_alde.gat
 
 //--- Ep6.7 - Jawaii ---
 //Requires kRO Sakray 06-22 or newer

+ 2 - 2
db/mob_db.txt

@@ -523,8 +523,8 @@
 //ID,Name,JName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,ADelay,aMotion,dMotion,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per
 1900,VALARIS,Valaris,99,668000,0,107250,37895,1,440,510,35,45,1,152,96,85,120,95,10,10,0,7,67,181,100,676,1152,768,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,4147,1,13000,0,608,1000,750,400,923,3800
 1901,VALARIS_WORSHIPPER,Valaris's Worshipper,50,8578,0,2706,1480,1,260,310,15,25,1,75,55,1,93,45,10,12,0,7,27,149,100,868,480,120,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,4129,1,0,0,0,0,0,0,0,0
-1920,EASTER_EGG,Easter Egg,3,300,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,128,1000,1001,1,1,1010,250,935,500,558,300,501,200,501,200,713,800,558,300,558,300,0,0,0,0,0,0,0,0
-1921,EASTER_BUNNY,Easter Bunny,6,1800,0,60,55,1,20,26,0,40,1,36,6,0,11,80,10,10,0,2,60,181,200,1456,456,336,2250,200,515,8000,727,1200,746,1500,706,30,622,50,534,5000,4006,70,0,0,0,0,0,0,0,0
+1920,EASTER_EGG,Easter Egg,3,300,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,128,1000,1001,1,1,1010,250,935,700,558,1200,501,200,713,800,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1921,EASTER_BUNNY,Easter Bunny,6,1800,0,60,55,1,20,26,0,40,1,36,6,0,11,80,10,10,0,2,60,181,200,1456,456,336,2250,200,558,5000,727,1200,746,1500,706,30,622,50,534,5000,4006,70,0,0,0,0,0,0,0,0
 // eAthena Custom Equipped Mobs,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 1970,PORING_,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,131,400,1872,672,480,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,4001,20,0,0,0,0,0,0,0,0
 1971,CHONCHON__,ChonChon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,129,200,1076,576,480,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,4009,5,0,0,0,0,0,0,0,0

+ 6 - 5
npc/Changelog.txt

@@ -30,6 +30,8 @@ Other Ppl
 
 Date		Added
 ======
+11/05
+	* Added easter and xmas event npcs.  Added custom blackjack npc.
 11/02
 	* Added unofficial nguild castles.  Updated stats for Stone Shooter, Wooden Golem, Hyegun,
 	  Civil Servant, Dancing Dragon, Baby Garm, and Increase Soil mobs in mob db.  Drops are still
@@ -38,8 +40,8 @@ Date		Added
 	* Set Comodo Kafra to warp to Umbala (11/2/04 patch) [Aria]
 10/31
 	* Fixed Dev NPCs giving off errors... [Aria]
-	* Fixed prob. with duplicating mobs in wizard.txt.  Corrected some item names in sage.txt.  Corrected mode values
-	  for hornet, wolf, baby desert wolf, and peco peco in mob db.[kobra_k88]
+	* Fixed prob. with duplicating mobs in wizard.txt.  Corrected some item names in sage.txt.
+	  Corrected mode values for hornet, wolf, baby desert wolf, and peco peco in mob db.[kobra_k88]
 10/30
 	* Commented out unfinished Dev NPCs and added npc line to map_athena.conf [Aria]
 10/29
@@ -48,9 +50,8 @@ Date		Added
 	* Re-organized mob scripts.[kobra_k88]
 	* Updated mob placements with info from emperium.org.[Lupus]
 	* Fixed Aldebaran (gatekeeper conditions bugs and wrong Key ID). Fixed some typos in other cities [Lupus]
-	* assassin.txt, rogue.txt: added clothes dye reset before job change since
-	  thiefs with custom dyes were getting errors upon job change.
-	  updated towns.txt and nopenatly.txt mapflags.[kobra_k88]
+	* assassin.txt, rogue.txt: added clothes dye reset before job change since thiefs with custom dyes
+	  were getting errors upon job change. Updated towns.txt and nopenatly.txt mapflags.[kobra_k88]
 10/26
 	* Added more quotes -_- [Aria]
 	* Fixed Mouse's devnpc only saying his quotes once per server reset [Aria]

+ 0 - 0
npc/quests/custom/uneasy_cemetery.txt → npc/events/custom/uneasy_cemetery.txt


+ 196 - 0
npc/events/easter.txt

@@ -0,0 +1,196 @@
+//===== eAthena Script =======================================
+//= Easter Egg Event
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//=
+//===== Description: =========================================
+//= Break easter eggs in towns an cities to find chocolates.
+//= Exchange the chocolates for prizes.
+//= Includes Easter egg and Easter bunny mobs.
+//===== Additional Comments: =================================
+//= Not sure about "Gold coin" as being one of the prizes.
+//============================================================
+
+
+geffen.gat,95,201,3	script	Shilo	50,
+{
+	mes "[Shilo]";
+	if(easter_Q == 1) goto L_Check;
+	mes "*Sigh*...... Where is my sister!?";
+	next;
+	mes "[Shilo]";
+	mes "Oh.... Hi there! I'm extremely excited! You know why?";
+	next;
+	mes "[Shilo]";
+	mes "My favorite holiday is here...... ^D2A200Easter^000000!!";
+	next;
+	mes "[Shilo]";
+	mes "I can't wait to go find some easter eggs......";
+	next;
+	if(@talked == 1) menu "I want to look for these eggs.",sM_0, "... Eggs? Why?",M_0, "You seriously bore me...*yawn*..",M_End;
+	menu "... Eggs? Why?",M_0, "You seriously bore me...*yawn*..",M_End;
+
+	M_0:
+		mes "[Shilo]";
+		mes "You mean you've never been on an ^5533FFEaster Egg Hunt^000000 before?";
+		next;
+		mes "[Shilo]";
+		mes "They're the best! See every year, people from all over hide ^5533FFEaster eggs^000000 through out Rune Midgard.";
+		mes "And it's our job to go find as many as possible and collect all of the goodies inside of them.";
+		next;
+		mes "[Shilo]";
+		mes "See, along time ago, the Peco Peco roamed the land free of any hostilities...........";
+		mes "All over Rune Midgard, they did as the pleased, and they reproduced without any fears.";
+		next;
+		mes "[Shilo]";
+		mes "The Peco Peco population thrived and kept growing...... Eventually their numbers got out of hand.";
+		mes "The people of Rune Midgard decided that they needed to do something about the overwhelming population of Peco Pecos.";
+		next;
+		mes "[Shilo]";
+		mes "So they set out to destroy as many of the Peco Peco eggs they could find!!";
+		next;
+		mes "[Shilo]";
+		mes "Many children found the destruction of helpless Peco Peco eggs to be unbearable.";
+		mes "They were very sad about this and pleaded with their parents to stop.";
+		next;
+		mes "[Shilo]";
+		mes "Unfortunately they could not stop.";
+		mes "If they did nothing the fertile lands of Rune Midard would be destoryed by the Peco Pecos.";
+		next;
+		mes "[Shilo]";
+		mes "So they decided to try to convince the children that destroying the eggs was a good thing.";
+		mes "The parents starting making fake peco peco eggs that had treats in them.";
+		next;
+		mes "[Shilo]";
+		mes "They hid them all over town and had the children search for them.";
+		mes "Once found, the children would break the eggs and find the treats.  They would then feel happy about breaking Peco Peco eggs.";
+		next;
+		mes "[Shilo]";
+		mes "Now the Peco Peco has natural enemies, like desert wolves, which keep the Peco Peco population in check.";
+		mes "Therefore the people of Rune Midgard no longer have to destroy defenseless Peco Peco eggs.";
+		next;
+		mes "[Shilo]";
+		mes "But we still carry on the tradition of hiding fake eggs all over Rune Midgard every year.";
+		mes "And that is the story behind Easter in Rune Midgard.";
+		next;
+		mes "[Shilo]";
+		mes "You know..... it looks like I'm going to be here for alonge while.  I'll tell you what........";
+		next;
+		mes "[Shilo]";
+		mes "If you go out and find some ^5533FFEaster eggs^000000 and bring me back their special 'treats', I will give you something for them....";
+		mes "What do you say?";
+		set @talked, 1;
+		next;
+		menu "What do I have to do?",sM_0, "Nah, I'm to busy.",sM_End;
+
+		sM_0:
+			mes "[Shilo]";
+			mes "All you have to do is go hunt for some Easter eggs which can be found in the towns and cities all over Rune Midgard.";
+			next;
+			mes "[Shilo]";
+			mes "When you find them, break em.  If you're lucky, there will be delicious ^D2A200'Chocolates'^000000 inside of them.";
+			mes "Find at least ^00950010^000000, and bring them to me and I will give you a ^FF5533prize^000000.";
+			next;
+			mes "[Shilo]";
+			mes "The more you bring to me, the better my gift to you will be.";
+			next;
+			mes "[Shilo]";
+			mes "I'll will give you something for:";
+			mes "^00950010 ^D2A200Chocolates";		// 1 gold coin ?
+			mes "^5533FF50 ^D2A200Chocolates^000000";		// 1 old blue box
+			mes "and ^FF3355150 ^D2A200Chocolates^000000";		// 1 old purple box
+			next;
+			mes "[Shilo]";
+			mes "So what do you say?";
+			next;
+			menu "Sounds fun, I'll do it!",ssM_0, "I have better things to do",ssM_End;
+	
+			ssM_0:
+				mes "[Shilo]";
+				mes "Great! But I must warn you............";
+				next;
+				mes "[Shilo]";
+				mes "During your hunt, you may come across the protectors of these eggs.......";
+				next;
+				mes "[Shilo]";
+				mes "They have a bright, light blue color and are very 'fluffy'..........";
+				mes "Though I have never seen one, I've heard many stories about them.";
+				next;
+				mes "[Shilo]";
+				mes "The have come to be know as....... '^FF3355Easter Bunnies^000000'!!";
+				mes "Be safe and good luck.  I'll be waiting here.";
+				set easter_Q, 1;
+				close;
+
+			ssM_End:
+				mes "[Shilo]";
+				mes "Well it's your loss.........";
+				emotion 9;
+				close;
+		sM_End:
+			mes "[Shilo]";
+			mes "Ahh, I understand.  Farewell.";
+			close;
+	M_End:
+		mes "[Shilo]";
+		mes "........... Well, you're not all that exciting to talk with either..........";
+		emotion 9;
+		close;
+
+
+//---------------------
+L_Check:
+//----------
+	mes "Find any ^D2A200Chocolate^000000 yet?";
+	next;
+	mes "[Shilo]";
+	if(countitem(558)<10) goto L_NotEnuf;
+	mes "Great.  You have " + countitem(558) +" ^D2A200Chocolates^000000.  Here is your prize.....";
+	if(countitem(558)>=150) goto L_150;
+	if(countitem(558)>=50) goto L_50;
+
+	L_10:
+		getitem 671,1;
+		goto L_Cont;
+	L_50:
+		getitem 603,1;
+		goto L_Cont;
+	L_150:
+		getitem 617,1;
+
+	L_Cont:
+	mes "Have fun and happy Easter!";
+	close;
+
+	L_NotEnuf:
+		mes "You don't have enough ^D2A200Chocolate^000000 for a prize.";
+		close;
+}
+
+
+// Easter Eggs
+//=====================================================
+alberta.gat,0,0,0,0	monster	Easter Egg	1920,100,0,0,0
+aldebaran.gat,0,0,0,0	monster	Easter Egg	1920,150,0,0,0
+amatsu.gat,0,0,0,0	monster	Easter Egg	1920,100,0,0,0
+comodo.gat,0,0,0,0	monster	Easter Egg	1920,100,0,0,0
+geffen.gat,0,0,0,0	monster	Easter Egg	1920,120,0,0,0
+gonryun.gat,0,0,0,0	monster	Easter Egg	1920,100,0,0,0
+izlude.gat,0,0,0,0	monster	Easter Egg	1920,80,0,0,0
+louyang.gat,0,0,0,0	monster	Easter Egg	1920,200,0,0,0
+morocc.gat,0,0,0,0	monster	Easter Egg	1920,250,0,0,0
+payon.gat,0,0,0,0	monster	Easter Egg	1920,150,0,0,0
+prontera.gat,0,0,0,0	monster	Easter Egg	1920,250,0,0,0
+umbala.gat,0,0,0,0	monster	Easter Egg	1920,100,0,0,0
+yuno.gat,0,0,0,0	monster	Easter Egg	1920,150,0,0,0
+
+// Easter Bunny
+//======================================================
+alberta.gat,0,0,0,0	monster	Easter Bunny	1921,1,1200000,900000,0
+geffen.gat,0,0,0,0	monster	Easter Bunny	1921,1,1200000,900000,0
+morocc.gat,0,0,0,0	monster	Easter Bunny	1921,2,1200000,900000,0
+payon.gat,0,0,0,0	monster	Easter Bunny	1921,1,1200000,900000,0
+prontera.gat,0,0,0,0	monster	Easter Bunny	1921,2,840000,420000,0

+ 0 - 0
npc/events/valentines_day.txt → npc/events/valentinesday.txt


+ 251 - 0
npc/events/xmas.txt

@@ -0,0 +1,251 @@
+//===== eAthena Script =======================================
+//= X-mas Event
+//===== By: ==================================================
+//=
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//=
+//===== Description: =========================================
+//= Beat up Antonios and grab his socks.  Get at least 3 and
+//= give them to Santa Claus Claus in exchange for a present.
+//= Includes X-mas mobs.
+//= This npc will disable, the current Santa Claus Claus npc.
+//===== Additional Comments: =================================
+//=
+//============================================================
+
+
+xmas_in.gat,100,96,4	script	Father Christmas::Santa2	718,{
+	mes "[Santa Claus]";
+	mes "I'm having a bit of a problem...";
+	mes "Do you care to listen?";
+	next;
+	menu "Listen to Santa Claus.",M_0, "Give Santa Claus Proof.",M_1, "Cancel.",M_End;
+
+	M_0:
+		mes "[Santa Claus]";
+		mes "My problem is this.";
+		mes "There seems to be a man out there";
+		mes "that is impersonating me and spreading";
+		mes "terror throughout the land.";
+		next;
+		mes "[Santa Claus]";
+		mes "Like the Grinch of legend, he's taking";
+		mes "all the children's toys and keeping them";
+		mes "for himself.";
+		next;
+		mes "[Santa Claus]";
+		mes "I'm too busy here creating my batch of ";
+		mes "toys for next year, so I can't go";
+		mes "out and find him myself.";
+		mes "So I would like you to go out and";
+		mes "Destroy this man for me.";
+		next;
+		mes "[Santa Claus]";
+		mes "He has in his posession one of my";
+		mes "magic sacks, however, so he will";
+		mes "escape into it into another place when";
+		mes "you attack him each time.";
+		next;
+		mes "[Santa Claus]";
+		mes "However,";
+		mes "In his haste, he tends to drop things.";
+		mes "If by chance he drops one of his stockings";
+		mes "with holes that he uses to steal the";
+		mes "poor children's toys, pick it up.";
+		next;
+		mes "[Santa Claus]";
+		mes "If you collect 3 of these, I will give";
+		mes "you a prototype mystery box that";
+		mes "I've been keeping around the";
+		mes "lab.  It spits out random presents";
+		mes "and saves me a ton of work.";
+		close;
+	M_1:
+		mes "[Santa Claus]";
+		if(countitem(7034) < 3) goto L_NotEnuf;
+		mes "Seems you've been doing a";
+		mes "good job of taking down those";
+		mes "fake Santas.  Keep it up!";
+		next;
+		delitem 7034,3;
+		getitem 644,1;
+		mes "[Santa Claus]";
+		mes "There's your reward.";
+		mes "If you get 3 more, I'll give you another.";
+		mes "Hope you get a good item.";
+		close;
+	
+		L_NotEnuf:
+			mes "You don't have enough socks as proof.";
+			mes "Go take down those evil Santas";
+			mes "and get more for me and I'll";
+			mes "reward you.";
+			close;
+	M_End:
+		mes "[Santa Claus]";
+		mes "I see.  Well, at the very least";
+		mes "we shall meet again on Chirstmas morning.";
+		close;
+
+OnInit:
+	disablenpc "Santa1";
+	end;
+}
+
+
+//========================================================
+// X-mas Mobs
+//========================================================
+gef_fild00.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild00.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild02.gat,0,0,0,0	monster	Gobline Xmas	1245,5,0,0,0
+gef_fild02.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild03.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild04.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild05.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild07.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild09.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild10.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild10.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild11.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild11.gat,0,0,0,0	monster	Gobline Xmas	1245,5,0,0,0
+gef_fild11.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+
+glast_01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+glast_01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+
+mjolnir_01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_02.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_03.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_04.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_05.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_06.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_06.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_07.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_09.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_10.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_10.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_11.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_11.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+mjolnir_12.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+mjolnir_12.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+
+moc_fild01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild02.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild03.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild04.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild05.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild06.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild06.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild07.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild09.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild10.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild10.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild11.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild11.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild12.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild12.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild13.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild13.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild14.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild14.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild15.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild15.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild16.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild16.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild17.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild17.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+moc_fild18.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+moc_fild18.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+
+pay_fild01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild02.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild03.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild04.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild05.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild06.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild06.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild07.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild09.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild10.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild10.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+pay_fild11.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+pay_fild11.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+
+prt_fild00.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild00.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild01.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild02.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild03.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild04.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild05.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild06.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild06.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild07.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild08.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild09.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild10.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild10.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+prt_fild11.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+prt_fild11.gat,0,0,0,0	monster	Santa Poring	1062,35,0,0,0
+gef_fild12.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild13.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+gef_fild14.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+
+cmd_fild01.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild02.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild03.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild04.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild05.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild06.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild07.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild08.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0
+cmd_fild09.gat,0,0,0,0	monster	Antonio	1062,5,0,0,0

+ 7 - 3
npc/jobs/2-1/knight.txt

@@ -875,7 +875,10 @@ OnStart:
 	if($@KntUsers > 0) end;
 
 	if ((getwaitingroomstate(33)) == 0) end;			// stops the rest of the script from running if there is no one in the waiting room;
-	killmonsterall "job_knt.gat";			//kills off any left over monsters from other testers
+	//kills off any left over monsters from other testers
+	killmonster "job_knt.gat", "KntLvl1::OnMyMobDead";
+	killmonster "job_knt.gat", "KntLvl2::OnMyMobDead";
+	killmonster "job_knt.gat", "KntLvl3::OnMyMobDead";
 	warpwaitingpc "job_knt.gat",43,146;
 	donpcevent "KntLvl1";
 	end;
@@ -884,7 +887,6 @@ OnStart:
 // First Level ---------------------------------------------------------
 job_knt.gat,1,1,1	script	KntLvl1	-1,
 {
-	disablenpc "Warp1";
 	set $@KntRm, 1;
 	set $@KntMob,12;
 	monster "job_knt.gat",39,150,"Dustiness",1114,1,"KntLvl1::OnMyMobDead";
@@ -1015,7 +1017,9 @@ OnTimer184000:
 	if($@KntRm==2) areawarp "job_knt.gat", 24, 32, 63, 71, "prt_in.gat",77,96;
 	if($@KntRm==3) areawarp "job_knt.gat", 124, 132, 163, 171, "prt_in.gat",77,96;
 	areaannounce "job_knt.gat", 82, 98, 97, 113, "[Sir Windsor]: The testing rooms are now open.....",8;
-	killmonsterall "job_knt.gat";
+	killmonster "job_knt.gat", "KntLvl1::OnMyMobDead";
+	killmonster "job_knt.gat", "KntLvl2::OnMyMobDead";
+	killmonster "job_knt.gat", "KntLvl3::OnMyMobDead";
 	donpcevent "SW2::OnStart";
 	end;
 

+ 0 - 0
npc/merchants/2-2shop.txt → npc/merchants/custom/2-2shop.txt


+ 349 - 0
npc/other/blackjack.txt

@@ -0,0 +1,349 @@
+//===== eAthena Script ======================================= 
+//= Black Jack
+//===== By: ================================================== 
+//= kobra_k88
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//=
+//===== Description: ========================================= 
+//= Black Jack card game.  Gameplay based off standard casino
+//= black jack rules.  Dealer must have at least 17 to stay and will
+//= automatically stay at 17 and up.  Player must have at least
+//= 13 to stay.  Aces counted as 11 or 1.  Option to "Double Down".
+//= Currently does not allow for "insurance", or "splitting"
+//= of pairs.
+//===== Additional Comments: ================================= 
+//=
+//============================================================ 
+
+
+cmd_in02.gat,188,89,1	script	Black Jack Dealer	57,{
+
+	mes "[Dealer]";
+	mes "Hello there! Would you like to play a game of Black Jack?";
+	M_Menu:
+	next;
+	menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End;
+
+	M_0:
+		mes "[Dealer]";
+		mes "What would you like to know?";
+		sM_Menu0:
+		next;
+		menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c,
+			"Ace value.",sM_0d, "Nothing.",M_Menu;
+
+		sM_0a:
+			mes "[Dealer]";
+			mes "Black Jack is a card game in which the goal is to get 21, or as";
+			mes "close to 21 points as possible, without going over 21.";
+			next;
+			mes "[Dealer]";
+			mes "Before the game starts, the player must make a bet.  Once the bet";
+			mes "has been made, both the dealer and the player are dealt 2 cards";
+			mes "each.  Depending on what cards you have, you can choose to ^5533FF'stay'^000000,";
+			mes "or you can choose to ^5533FF'pull'^000000.";
+			next;
+			mes "[Dealer]";
+			mes "When you choose to 'stay', you are telling the dealer that you don't";
+			mes "need anymore cards.  This allows the dealer to pull if he/she";
+			mes "wants to.  In order to stay, you must have ^FF3355at least 13 points^000000. The";
+			mes "dealer can only stay when he/she has^FF3355 17 points or more^000000.";
+			next;
+			mes "[Dealer]";
+			mes "When you choose to 'pull', you are telling the dealer that you want";
+			mes "another card.  By pulling more cards you can increase your point";
+			mes "total.  As long has you have ^FF3355less than 21^000000 points you can pull a";
+			mes "card from the deck.";
+			goto sM_Menu0;
+		sM_0b:
+			mes "[Dealer]";
+			mes "There are 3 ways to win and loose at Black Jack.";
+			next;
+			mes "[Dealer]";
+			mes "1.) At the end of a Black Jack round, if you have more points";
+			mes "than the dealer you will win the round.  Conversely if you have";
+			mes "less points than the dealer you will loose.";
+			next;
+			mes "[Dealer]";
+			mes "2.) If you pull a card that makes your point total go over 21 you";
+			mes "will automatically loose the round.  This is called a ^5533FF'bust'^000000.  If";
+			mes "the dealer busts then you will win the round.";
+			next;
+			mes "[Dealer]";
+			mes "3.) If you have a point total of 21 with the first 2 cards, you";
+			mes "will automatically win the round.  This is called a ^5533FF'Black Jack'^000000";
+			mes "and happens when you get an 'Ace' and a '10 valued' card. If the";
+			mes "dealer gets a Black Jack he/she will automatically win the round.";
+			next;
+			mes "[Dealer]";
+			mes "4.) Besides winning and loosing, you can tie with the dealer.  If";
+			mes "both you and the dealer have the same point total at the end of a";
+			mes "round, this will result in a tie with no winner and no loss or gain";
+			mes "in money.";
+			next;
+			mes "[Dealer]";
+			mes "This is called a ^5533FF'push'^000000 with the dealer.  This also";
+			mes "applies to both you and the dealer having Black Jack at the same";
+			mes "time.";
+			goto sM_Menu0;
+		sM_0c:
+			mes "[Dealer]";
+			mes "The 'Double Down' option allows you to double your current bet,";
+			mes "but with the drawback that you will only be able to pull one";
+			mes "additional card.  This option is only available at the beggining of";
+			mes "each round.";
+			next;
+			mes "[Dealer]";
+			mes "An example of when doubling down is usefull, is when";
+			mes "your first 2 cards give you a point total of 11.  You have a good";
+			mes "chance of getting 21 or 20 with the next card that you draw.  This";
+			mes "would be a good hand to double down on.";
+			goto sM_Menu0;
+		sM_0d:
+			mes "[Dealer]";
+			mes "The 'Ace' card is a unique card in the game of Black Jack because";
+			mes "it can have 2 values.  An Ace can be counted as either 11 points,";
+			mes "or just 1 point.  For example if you had an Ace and a 4, that would";
+			mes "give you either 15 or 5 points.";
+			next;
+			mes "[Dealer]";
+			mes "If you decided to stay, the Ace would automatically be counted as";
+			mes "11 points to give you 15 points total.";
+			next;
+			mes "[Dealer]";
+			mes "If you had decided to pull and recieved a 9, the ace would";
+			mes "automatically be counted as 1 point to give you a total of 14";
+			mes "points.  If the Ace was counted as 11 points, you would have a";
+			mes "point total over 21 and would have lost.";
+			next;
+			mes "[Dealer]";
+			mes "It is because of the flexibilty you have with the 'Ace' that makes";
+			mes "it the most powerfull card in the game.";
+			goto sM_Menu0;
+	M_End:
+		mes "[Dealer]";
+		mes "Feel free to come back anytime";
+		close;
+
+//================
+L_Play:
+	mes "[Dealer]";
+	mes "Please place your bets...";
+	next;
+	menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End;
+
+	M_1a:
+		if(Zeny < 2) goto sL_NotEnuf;
+		set @bet, 2;
+		goto L_Cont0;
+	M_1b:
+		if(Zeny < 10) goto sL_NotEnuf;
+		set @bet, 10;
+		goto L_Cont0;
+	M_1c:
+		if(Zeny < 20) goto sL_NotEnuf;
+		set @bet, 20;
+		goto L_Cont0;
+	M_1d:
+		if(Zeny < 100) goto sL_NotEnuf;
+		set @bet, 100;
+		goto L_Cont0;
+
+		sL_NotEnuf:
+			mes "[Dealer]";
+			mes "I'm sorry but you don't have enough zeny to make that bet.";
+			close;
+
+	L_Cont0:
+	mes "(the cards are being dealt)";
+	next;
+	deletearray $@card[0],13;
+	set @dealerTurn, 0;
+	set @numP, 0;
+	set @numD, 0;
+	set @pAce, 0;
+	set @dAce, 0;
+	callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
+	callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
+	callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
+	callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
+
+//==============
+L_Start:
+	callsub sF_GetTot;
+
+	mes "- Here are the ^FF5533DEALER'S^000000 cards:";
+	if (@numD==2) callsub sF_D2cards;
+	if (@numD==3) callsub sF_D3cards;
+	if (@numD==4) callsub sF_D4cards;
+	if (@numD==5) callsub sF_D5cards;
+	mes "    The DEALER has: ^FF5533"+@dealTot+"^000000";
+	mes " ";
+	mes "- Here are ^5533FFYOUR^000000 cards:";
+	if (@numP==2) callsub sF_P2cards;
+	if (@numP==3) callsub sF_P3cards;
+	if (@numP==4) callsub sF_P4cards;
+	if (@numP==5) callsub sF_P5cards;
+	if(@pAce != 1 || @playTot == 21) mes "    YOU have: ^5533FF" +@playTot+ "^000000";
+	if(@pAce == 1 && @playTot != 21) mes "    You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000";
+	next;
+	if(@playTot==21 && @dealTot==21) goto sL_Push;
+	if(@numP==2 && @playTot == 21) goto sL_Win;
+	if(@numD==2 && @dealTot == 21) goto sL_Lose;
+	if(@playTot > 21) goto sL_Lose;
+	if(@dealTot > 21) goto sL_Win;
+	if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double;
+	if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay;
+
+	M_Stay:
+		mes "[Dealer]";
+		if(@playTot < 13) goto sL_PlayToLow;
+		if(@dealTot > 16) mes "The Dealer stays.";
+		if(@dealTot > 16 || @numD == 5) goto L_Check;
+		mes "The Dealer is going to pull";
+		next;
+		callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
+		set @dealerTurn, 1;
+		goto L_Start;
+
+		sL_PlayToLow:
+			mes "I'm sorry but you do not have a high enough total to stay.  You must pull.";
+			next;
+			goto M_Hit;
+
+	M_Hit:
+		if(@numP == 5) goto M_Stay;
+		callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
+		goto L_Start;
+	M_Double:
+		mes "[Dealer]";
+		mes "Player has chosen to Double Down.  You're current bet will be";
+		mes "doubled, and you will only be able to pull 1 extra card.";
+		next;
+		set @dealerTurn, 1;
+		set @bet, @bet*2;
+		callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
+		goto L_Start;
+
+//=============
+L_Check:
+	next;
+	if(@playTot < @dealTot) goto sL_Lose;
+	if(@playTot == @dealTot) goto sL_Push;
+
+	sL_Win:
+		mes "[Dealer]";
+		mes "Congratulations, you've won!";
+		next;
+		set Zeny, Zeny + @bet;
+		goto L_Play;
+	sL_Lose:
+		mes "[Dealer]";
+		mes "I'm sorry but you've lost.";
+		set Zeny, Zeny - @bet;
+		next;
+		goto L_Play;
+	sL_Push:
+		mes "[Dealer]";
+		mes "Its a push.  You tied with the Dealer.";
+		next;
+		goto L_Play;
+
+
+//==================================
+// Sub function for dealing/pulling the cards
+sF_GetCards:
+	set @rnd, rand(1,13);
+	if($@card[@rnd] == 4) goto sF_GetCards;
+	set $@card[@rnd], $@card[@rnd] + 1;
+	set getarg(1), @rnd;
+	if(getarg(1) > 10) set getarg(1), 10;
+	if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11;
+	if(getarg(1) == 11) set getarg(3), 1;
+	set getarg(2), " " + getarg(1) + " ";
+	if(@rnd == 10) set getarg(2), getarg(1);
+	if(@rnd == 1) set getarg(2), " A ";
+	if(@rnd == 11) set getarg(2), " J ";
+	if(@rnd == 12) set getarg(2), " Q ";
+	if(@rnd == 13) set getarg(2), " K ";
+	set getarg(0), getarg(0) + 1;
+	return;
+
+//==================================
+// Sub function for getting the total score for each hand
+sF_GetTot:
+	set @i, 0;
+	set @dealTot, 0;
+	set @playTot, 0;
+
+	GetDealTot:
+		set @dealTot, @dealTot + @dealCard[@i];
+		set @i, @i + 1;
+		if(@i < @numD) goto GetDealTot;
+		if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10;
+		set @i, 0;
+	GetPlayTot:
+		set @playTot, @playTot + @playCard[@i];
+		set @i, @i + 1;
+		if(@i < @numP) goto GetPlayTot;
+		if(@pAce == 1 && @playTot > 21) set @pAce, 2;
+		if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10;
+	return;
+
+//=======================================
+// Sub function for displaying the Cards
+sF_D2cards:
+	mes "    .-----.   .-----. ";
+	mes "    | "+@dealCard$[0]+" |   | "+@dealCard$[1]+" | ";
+	mes "    '-----'   '-----' ";
+	return;
+sF_P2cards:
+	mes "    .-----.   .-----. ";
+	mes "    | "+@playCard$[0]+" |   | "+@playCard$[1]+" | ";
+	mes "    '-----'   '-----' ";
+	return;
+sF_D3cards:
+	mes "    .-----.   .-----.   .-----. ";
+	mes "    | "+@dealCard$[0]+" |   | "+@dealCard$[1]+" |   | "+@dealCard$[2]+" | ";
+	mes "    '-----'   '-----'    '-----' ";
+	return;
+sF_P3cards:
+	mes "    .-----.   .-----.   .-----. ";
+	mes "    | "+@playCard$[0]+" |   | "+@playCard$[1]+" |   | "+@playCard$[2]+" | ";
+	mes "    '-----'   '-----'    '-----' ";
+	return;
+sF_D4cards:
+	mes " .-----.  .-----.  .-----. ";
+	mes " | "+@dealCard$[0]+" |  | "+@dealCard$[1]+" |  | "+@dealCard$[2]+" | ";
+	mes " '-----'  '-----'   '-----' ";
+	mes "    .-----.  ";
+	mes "    | "+@dealCard$[3]+" |";
+	mes "    '-----'   ";
+	return;
+sF_P4cards:
+	mes " .-----.  .-----.  .-----. ";
+	mes " | "+@playCard$[0]+" |  | "+@playCard$[1]+" |  | "+@playCard$[2]+" |";
+	mes " '-----'  '-----'   '-----' ";
+	mes "    .-----.  ";
+	mes "    | "+@playCard$[3]+" |";
+	mes "    '-----'   ";
+	return;
+sF_D5cards:
+	mes " .-----.  .-----.  .-----. ";
+	mes " | "+@dealCard$[0]+" |  | "+@dealCard$[1]+" |  | "+@dealCard$[2]+" | ";
+	mes " '-----'  '-----'   '-----' ";
+	mes "    .-----.   .-----. ";
+	mes "    | "+@dealCard$[3]+" |   | "+@dealCard$[4]+" | ";
+	mes "    '-----'   '-----' ";
+	return;
+sF_P5cards:
+	mes " .-----.  .-----.  .-----. ";
+	mes " | "+@playCard$[0]+" |  | "+@playCard$[1]+" |  | "+@playCard$[2]+" | ";
+	mes " '-----'  '-----'   '-----' ";
+	mes "    .-----.   .-----. ";
+	mes "    | "+@playCard$[3]+" |   | "+@playCard$[4]+" | ";
+	mes "    '-----'   '-----' ";
+	return;
+}

+ 4 - 0
save/castle.txt

@@ -18,3 +18,7 @@
 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0