Last python quest replacements and adjustments.
This commit is contained in:
parent
75d095e019
commit
748cb7cee3
182
L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/others/Bingo.java
vendored
Normal file
182
L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/others/Bingo.java
vendored
Normal file
@ -0,0 +1,182 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
|
||||
/**
|
||||
* Adapted from FirstTeam Interlude
|
||||
*/
|
||||
public class Bingo
|
||||
{
|
||||
protected static final String template = "%msg%<br><br>%choices%<br><br>%board%";
|
||||
protected static final String template_final = "%msg%<br><br>%board%";
|
||||
protected static final String template_board = "For your information, below is your current selection.<br><table border=\"1\" border color=\"white\" width=100><tr><td align=\"center\">%cell1%</td><td align=\"center\">%cell2%</td><td align=\"center\">%cell3%</td></tr><tr><td align=\"center\">%cell4%</td><td align=\"center\">%cell5%</td><td align=\"center\">%cell6%</td></tr><tr><td align=\"center\">%cell7%</td><td align=\"center\">%cell8%</td><td align=\"center\">%cell9%</td></tr></table>";
|
||||
protected static final String msg_again = "You have already selected that number. Choose your %choicenum% number again.";
|
||||
protected static final String msg_begin = "I've arranged 9 numbers on the panel.<br>Now, select your %choicenum% number.";
|
||||
protected static final String msg_next = "Now, choose your %choicenum% number.";
|
||||
protected static final String msg_0lines = "You are spectacularly unlucky! The red-colored numbers on the panel below are the ones you chose. As you can see, they didn't create even a single line. Did you know that it is harder not to create a single line than creating all 3 lines?";
|
||||
protected static final String msg_3lines = "You've created 3 lines! The red colored numbers on the bingo panel below are the numbers you chose. Congratulations!";
|
||||
protected static final String msg_lose = "Hmm... You didn't make 3 lines. Why don't you try again? The red-colored numbers on the panel are the ones you chose.";
|
||||
protected static final String[] nums =
|
||||
{
|
||||
"first",
|
||||
"second",
|
||||
"third",
|
||||
"fourth",
|
||||
"fifth",
|
||||
"final"
|
||||
};
|
||||
|
||||
private final String _template_choice;
|
||||
private final List<Integer> board;
|
||||
private final List<Integer> guesses;
|
||||
protected int lines;
|
||||
|
||||
public Bingo(String template_choice)
|
||||
{
|
||||
board = new ArrayList<>();
|
||||
guesses = new ArrayList<>();
|
||||
_template_choice = template_choice;
|
||||
while (board.size() < 9)
|
||||
{
|
||||
final int num = Rnd.get(1, 9);
|
||||
if (!board.contains(num))
|
||||
{
|
||||
board.add(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String Select(String s)
|
||||
{
|
||||
try
|
||||
{
|
||||
return Select(Integer.valueOf(s));
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public String Select(int choise)
|
||||
{
|
||||
if ((choise < 1) || (choise > 9))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (guesses.contains(choise))
|
||||
{
|
||||
return getDialog("You have already selected that number. Choose your %choicenum% number again.");
|
||||
}
|
||||
guesses.add(choise);
|
||||
if (guesses.size() == 6)
|
||||
{
|
||||
return getFinal();
|
||||
}
|
||||
return getDialog("");
|
||||
}
|
||||
|
||||
protected String getBoard()
|
||||
{
|
||||
if (guesses.size() == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
String result = "For your information, below is your current selection.<br><table border=\"1\" border color=\"white\" width=100><tr><td align=\"center\">%cell1%</td><td align=\"center\">%cell2%</td><td align=\"center\">%cell3%</td></tr><tr><td align=\"center\">%cell4%</td><td align=\"center\">%cell5%</td><td align=\"center\">%cell6%</td></tr><tr><td align=\"center\">%cell7%</td><td align=\"center\">%cell8%</td><td align=\"center\">%cell9%</td></tr></table>";
|
||||
for (int i = 1; i <= 9; ++i)
|
||||
{
|
||||
final String cell = "%cell" + String.valueOf(i) + "%";
|
||||
final int num = board.get(i - 1);
|
||||
if (guesses.contains(num))
|
||||
{
|
||||
result = result.replaceFirst(cell, "<font color=\"" + ((guesses.size() == 6) ? "ff0000" : "ffff00") + "\">" + String.valueOf(num) + "</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
result = result.replaceFirst(cell, "?");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public String getDialog(String msg)
|
||||
{
|
||||
String result = "%msg%<br><br>%choices%<br><br>%board%";
|
||||
if (guesses.size() == 0)
|
||||
{
|
||||
result = result.replaceFirst("%msg%", "I've arranged 9 numbers on the panel.<br>Now, select your %choicenum% number.");
|
||||
}
|
||||
else
|
||||
{
|
||||
result = result.replaceFirst("%msg%", "".equalsIgnoreCase(msg) ? "Now, choose your %choicenum% number." : msg);
|
||||
}
|
||||
result = result.replaceFirst("%choicenum%", Bingo.nums[guesses.size()]);
|
||||
final StringBuilder choices = new StringBuilder();
|
||||
for (int i = 1; i <= 9; ++i)
|
||||
{
|
||||
if (!guesses.contains(i))
|
||||
{
|
||||
choices.append(_template_choice.replaceAll("%n%", String.valueOf(i)));
|
||||
}
|
||||
}
|
||||
result = result.replaceFirst("%choices%", choices.toString());
|
||||
result = result.replaceFirst("%board%", getBoard());
|
||||
return result;
|
||||
}
|
||||
|
||||
protected String getFinal()
|
||||
{
|
||||
String result = "%msg%<br><br>%board%".replaceFirst("%board%", getBoard());
|
||||
calcLines();
|
||||
switch (lines)
|
||||
{
|
||||
case 3:
|
||||
result = result.replaceFirst("%msg%", "You've created 3 lines! The red colored numbers on the bingo panel below are the numbers you chose. Congratulations!");
|
||||
break;
|
||||
case 0:
|
||||
result = result.replaceFirst("%msg%", "You are spectacularly unlucky! The red-colored numbers on the panel below are the ones you chose. As you can see, they didn't create even a single line. Did you know that it is harder not to create a single line than creating all 3 lines?");
|
||||
break;
|
||||
default:
|
||||
result = result.replaceFirst("%msg%", "Hmm... You didn't make 3 lines. Why don't you try again? The red-colored numbers on the panel are the ones you chose.");
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public int calcLines()
|
||||
{
|
||||
lines = 0;
|
||||
lines += (checkLine(0, 1, 2) ? 1 : 0);
|
||||
lines += (checkLine(3, 4, 5) ? 1 : 0);
|
||||
lines += (checkLine(6, 7, 8) ? 1 : 0);
|
||||
lines += (checkLine(0, 3, 6) ? 1 : 0);
|
||||
lines += (checkLine(1, 4, 7) ? 1 : 0);
|
||||
lines += (checkLine(2, 5, 8) ? 1 : 0);
|
||||
lines += (checkLine(0, 4, 8) ? 1 : 0);
|
||||
return lines += (checkLine(2, 4, 6) ? 1 : 0);
|
||||
}
|
||||
|
||||
public boolean checkLine(final int idx1, final int idx2, final int idx3)
|
||||
{
|
||||
return guesses.contains(board.get(idx1)) && guesses.contains(board.get(idx2)) && guesses.contains(board.get(idx3));
|
||||
}
|
||||
}
|
@ -33,7 +33,7 @@ public class TurekOrcSupplier extends Quest
|
||||
|
||||
private TurekOrcSupplier()
|
||||
{
|
||||
super(-1, "TurekOrcFootman", "ai/others");
|
||||
super(-1, "TurekOrcSupplier", "ai/others");
|
||||
|
||||
addAttackId(TUREK_ORC_SUPPLIER);
|
||||
}
|
||||
|
@ -1,2 +0,0 @@
|
||||
<html><body>Torai:<br>
|
||||
Oh my! This… is a priceless book. Sell it to me…! I’ll give you a high price for it… Heh heh heh…</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
Why do you want more Wish Potion when you haven't used what you already have? What a pig...!</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
Hey! You don't have any Wish Potion but yet you still want to make a wish...? How very disgraceful!</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
You are allowed one wish after taking the potion. You will choose from one of the four wishes on this card.
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="icon.Quest_TarotCard_Knowledge_t00" width=64 height=112></td>
|
||||
<td><img src="icon.Quest_TarotCard_Love_t00" width=64 height=112></td>
|
||||
<td><img src="icon.Quest_TarotCard_Power_t00" width=64 height=112></td>
|
||||
<td><img src="icon.Quest_TarotCard_Wealth_t00" width=64 height=112></td>
|
||||
</tr>
|
||||
</table><br>
|
||||
<a action="bypass -h Quest 334_TheWishingPotion 30738-16.htm">"I wish to be a loving person."</a><br>
|
||||
<a action="bypass -h Quest 334_TheWishingPotion 30738-17.htm">"I wish for 100 million adena."</a><br>
|
||||
<a action="bypass -h Quest 334_TheWishingPotion 30738-18.htm">"I wish to be a king!"</a><br>
|
||||
<a action="bypass -h Quest 334_TheWishingPotion 30738-19.htm">"I wish to be the wisest person in the world."</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
To begin the ceremony you must first apply the blood of crow to your forehead and then shake the wing of fairy three times...</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
To start the ceremony you must first apply the blood of crow to your forehead and then shake the leaf of timitran three times...</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
To start the ceremony you must first apply the blood of crow to your forehead and then put the crown of glory on your head...</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
To start the ceremony you must first apply the blood of crow to your forehead and then hit your head three times with a Sage's Staff...</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Alchemist Matild:<br>
|
||||
You must wait, someone else is currently making a wish...</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Fairy of Love Rupina:<br>
|
||||
Ah, it's you! Do you seek your true love? I'm sorry, but I am very busy and cannot help you now. Instead, take this pendant. It will help you to find your soul mate.</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Fairy of Love Rupina:<br>
|
||||
Love is such a lovely thing.<br>
|
||||
Lovers love loving.<br>
|
||||
Love each other!</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Chest of Wisdom:<br>
|
||||
(A voice comes out of the chest.) I will teach you a wise method to increase your wealth. Warehouse Keeper Sorint, Sorceress Page, Researcher Lorain, Warehouse Keeper Hagger, Guard Stan, Blacksmith Dunning, Magic Trader Ralph, Head Blacksmith Ferris, Warehouse Keeper Collob, and Grocer Pano… All these people are crazy about collecting weird coins!</body></html>
|
@ -1,371 +0,0 @@
|
||||
#
|
||||
# Created by DraX on 2005.09.08
|
||||
# C4 Update by DrLecter
|
||||
#
|
||||
|
||||
import sys
|
||||
from org.l2jmobius.gameserver.model.quest import State
|
||||
from org.l2jmobius.gameserver.model.quest import QuestState
|
||||
from org.l2jmobius.gameserver.model.quest.jython import QuestJython as JQuest
|
||||
from org.l2jmobius.gameserver.network.serverpackets import CreatureSay
|
||||
|
||||
qn = "334_TheWishingPotion"
|
||||
|
||||
# General Rewards
|
||||
ADENA = 57
|
||||
NECKLACE_OF_GRACE = 931
|
||||
HEART_OF_PAAGRIO = 3943
|
||||
R1=[3081,3076,3075,3074,4917,3077,3080,3079,3078,4928,4931,4932,5013,3067,3064,3061,3062,3058,4206,3065,3060,3063,4208,3057,3059,3066,4911,4918,3092,3039,4922,3091,3093,3431]
|
||||
R2=[3430,3429,3073,3941,3071,3069,3072,4200,3068,3070,4912,3100,3101,3098,3094,3102,4913,3095,3096,3097,3099,3085,3086,3082,4907,3088,4207,3087,3084,3083,4929,4933,4919,3045]
|
||||
R3=[4923,4201,4914,3942,3090,4909,3089,4930,4934,4920,3041,4924,3114,3105,3110,3104,3113,3103,4204,3108,4926,3112,3107,4205,3109,3111,3106,4925,3117,3115,3118,3116,4927]
|
||||
R4=[1979,1980,2952,2953]
|
||||
#Quest ingredients and rewards
|
||||
WISH_POTION,ANCIENT_CROWN,CERTIFICATE_OF_ROYALTY = range(3467,3470)
|
||||
ALCHEMY_TEXT,SECRET_BOOK,POTION_RECIPE_1,POTION_RECIPE_2,MATILDS_ORB,FORBIDDEN_LOVE_SCROLL = range(3678,3684)
|
||||
AMBER_SCALE,WIND_SOULSTONE,GLASS_EYE,HORROR_ECTOPLASM,SILENOS_HORN,ANT_SOLDIER_APHID,TYRANTS_CHITIN,BUGBEAR_BLOOD = range(3684,3692)
|
||||
#NPCs
|
||||
GRIMA = 27135
|
||||
SUCCUBUS_OF_SEDUCTION = 27136
|
||||
GREAT_DEMON_KING = 27138
|
||||
SECRET_KEEPER_TREE = 27139
|
||||
SANCHES = 27153
|
||||
BONAPARTERIUS = 27154
|
||||
RAMSEBALIUS = 27155
|
||||
TORAI = 30557
|
||||
ALCHEMIST_MATILD = 30738
|
||||
RUPINA = 30742
|
||||
WISDOM_CHEST = 30743
|
||||
#MOBs
|
||||
WHISPERING_WIND = 20078
|
||||
ANT_RECRUIT = 20087
|
||||
ANT_WARRIOR_CAPTAIN = 20088
|
||||
SILENOS = 20168
|
||||
TYRANT = 20192
|
||||
TYRANT_KINGPIN = 20193
|
||||
AMBER_BASILISK = 20199
|
||||
HORROR_MIST_RIPPER = 20227
|
||||
TURAK_BUGBEAR = 20248
|
||||
TURAK_BUGBEAR_WARRIOR = 20249
|
||||
GLASS_JAGUAR = 20250
|
||||
#DROPLIST
|
||||
DROPLIST={AMBER_BASILISK:[AMBER_SCALE,15],WHISPERING_WIND:[WIND_SOULSTONE,20],GLASS_JAGUAR:[GLASS_EYE,35],HORROR_MIST_RIPPER:[HORROR_ECTOPLASM,15],
|
||||
SILENOS:[SILENOS_HORN,30],ANT_RECRUIT:[ANT_SOLDIER_APHID,40],ANT_WARRIOR_CAPTAIN:[ANT_SOLDIER_APHID,40],TYRANT:[TYRANTS_CHITIN,50],
|
||||
TYRANT_KINGPIN:[TYRANTS_CHITIN,50],TURAK_BUGBEAR:[BUGBEAR_BLOOD,25],TURAK_BUGBEAR_WARRIOR:[BUGBEAR_BLOOD,25]}
|
||||
|
||||
# set of random messages
|
||||
MESSAGES={SUCCUBUS_OF_SEDUCTION:["Do you wanna be loved?","Do you need love?","Let me love you...","Want to know what love is?","Are you in need of love?","Me love you long time"],
|
||||
GRIMA:["hey hum hum!","boom! boom!","...","Ki ab kya karein hum"],
|
||||
}
|
||||
|
||||
def check_ingredients(st,required) :
|
||||
if st.getQuestItemsCount(AMBER_SCALE) != required : return 0
|
||||
if st.getQuestItemsCount(WIND_SOULSTONE) != required : return 0
|
||||
if st.getQuestItemsCount(GLASS_EYE) != required : return 0
|
||||
if st.getQuestItemsCount(HORROR_ECTOPLASM) != required : return 0
|
||||
if st.getQuestItemsCount(SILENOS_HORN) != required : return 0
|
||||
if st.getQuestItemsCount(ANT_SOLDIER_APHID) != required : return 0
|
||||
if st.getQuestItemsCount(TYRANTS_CHITIN) != required : return 0
|
||||
if st.getQuestItemsCount(BUGBEAR_BLOOD) != required : return 0
|
||||
return 1
|
||||
|
||||
def autochat(npc,text) :
|
||||
if npc: npc.broadcastPacket(CreatureSay(npc.getObjectId(),0,npc.getName(),text))
|
||||
return
|
||||
|
||||
class Quest (JQuest) :
|
||||
|
||||
def __init__(self,id,name,descr):
|
||||
JQuest.__init__(self,id,name,descr)
|
||||
self.questItemIds = range(3678,3683)+range(3684,3692)
|
||||
|
||||
def onAdvEvent (self,event,npc,player):
|
||||
st = player.getQuestState(qn)
|
||||
if not st: return
|
||||
htmltext = event
|
||||
player=st.getPlayer()
|
||||
if event == "30738-03.htm":
|
||||
st.set("cond","1")
|
||||
st.setState(State.STARTED)
|
||||
st.playSound("ItemSound.quest_accept")
|
||||
if st.getQuestItemsCount(ALCHEMY_TEXT) >= 2: st.takeItems(ALCHEMY_TEXT,-1)
|
||||
if st.getQuestItemsCount(ALCHEMY_TEXT) == 0: st.giveItems(ALCHEMY_TEXT,1)
|
||||
htmltext = "30738-03.htm"
|
||||
if event == "30738-06.htm":
|
||||
if st.getQuestItemsCount(WISH_POTION) :
|
||||
htmltext = "30738-13.htm"
|
||||
else :
|
||||
st.playSound("ItemSound.quest_accept")
|
||||
st.set("cond","3")
|
||||
if st.getQuestItemsCount(ALCHEMY_TEXT) >= 1: st.takeItems(ALCHEMY_TEXT,-1)
|
||||
if st.getQuestItemsCount(SECRET_BOOK) >= 1: st.takeItems(SECRET_BOOK,-1)
|
||||
if st.getQuestItemsCount(POTION_RECIPE_1) >= 2: st.takeItems(POTION_RECIPE_1,-1)
|
||||
if st.getQuestItemsCount(POTION_RECIPE_1) == 0: st.giveItems(POTION_RECIPE_1,1)
|
||||
if st.getQuestItemsCount(POTION_RECIPE_2) >= 2: st.takeItems(POTION_RECIPE_2,-1)
|
||||
if st.getQuestItemsCount(POTION_RECIPE_2) == 0: st.giveItems(POTION_RECIPE_2,1)
|
||||
if st.getQuestItemsCount(MATILDS_ORB) : htmltext = "30738-12.htm"
|
||||
if event == "30738-10.htm":
|
||||
if check_ingredients(st,1) :
|
||||
st.playSound("ItemSound.quest_finish")
|
||||
st.takeItems(ALCHEMY_TEXT,-1)
|
||||
st.takeItems(SECRET_BOOK,-1)
|
||||
st.takeItems(POTION_RECIPE_1,-1)
|
||||
st.takeItems(POTION_RECIPE_2,-1)
|
||||
st.takeItems(AMBER_SCALE,-1)
|
||||
st.takeItems(WIND_SOULSTONE,-1)
|
||||
st.takeItems(GLASS_EYE,-1)
|
||||
st.takeItems(HORROR_ECTOPLASM,-1)
|
||||
st.takeItems(SILENOS_HORN,-1)
|
||||
st.takeItems(ANT_SOLDIER_APHID,-1)
|
||||
st.takeItems(TYRANTS_CHITIN,-1)
|
||||
st.takeItems(BUGBEAR_BLOOD,-1)
|
||||
if not st.getQuestItemsCount(MATILDS_ORB) : st.giveItems(MATILDS_ORB,1)
|
||||
st.giveItems(WISH_POTION,1)
|
||||
st.set("cond","5")
|
||||
else :
|
||||
htmltext="You don't have required items"
|
||||
elif event == "30738-14.htm":
|
||||
# if you dropped or destroyed your wish potion, you are not able to see the wish list
|
||||
if st.getQuestItemsCount(WISH_POTION) :
|
||||
htmltext = "30738-15.htm"
|
||||
#### WISH I : Please make me into a loving person.
|
||||
elif event == "30738-16.htm":
|
||||
if st.getQuestItemsCount(WISH_POTION) :
|
||||
st.set("wish","1")
|
||||
st.startQuestTimer("matild_timer1",3000,npc)
|
||||
st.takeItems(WISH_POTION,1)
|
||||
npc.setBusy(True)
|
||||
else:
|
||||
htmltext = "30738-14.htm"
|
||||
#### WISH II : I want to become an extremely rich person. How about 100 million adena?!
|
||||
elif event == "30738-17.htm":
|
||||
if st.getQuestItemsCount(WISH_POTION) :
|
||||
st.set("wish","2")
|
||||
st.startQuestTimer("matild_timer1",3000,npc)
|
||||
st.takeItems(WISH_POTION,1)
|
||||
npc.setBusy(True)
|
||||
else:
|
||||
htmltext = "30738-14.htm"
|
||||
#### WISH III : I want to be a king in this world.
|
||||
elif event == "30738-18.htm":
|
||||
if st.getQuestItemsCount(WISH_POTION) :
|
||||
st.set("wish","3")
|
||||
st.startQuestTimer("matild_timer1",3000,npc)
|
||||
st.takeItems(WISH_POTION,1)
|
||||
npc.setBusy(True)
|
||||
else:
|
||||
htmltext = "30738-14.htm"
|
||||
#### WISH IV : I'd like to become the wisest person in the world.
|
||||
elif event == "30738-19.htm":
|
||||
if st.getQuestItemsCount(WISH_POTION) >= 1:
|
||||
st.set("wish","4")
|
||||
st.startQuestTimer("matild_timer1",3000,npc)
|
||||
st.takeItems(WISH_POTION,1)
|
||||
npc.setBusy(True)
|
||||
else:
|
||||
htmltext = "30738-14.htm"
|
||||
elif event == "matild_timer1":
|
||||
autochat(npc,"OK, everybody pray fervently!")
|
||||
st.startQuestTimer("matild_timer2",4000,npc)
|
||||
return
|
||||
elif event == "matild_timer2":
|
||||
autochat(npc,"Both hands to heaven, everybody yell together!")
|
||||
st.startQuestTimer("matild_timer3",4000,npc)
|
||||
return
|
||||
elif event == "matild_timer3":
|
||||
autochat(npc,"One! Two! May your dreams come true!")
|
||||
wish = st.getInt("wish")
|
||||
WISH_CHANCE = st.getRandom(100)
|
||||
if wish == 1 :
|
||||
if WISH_CHANCE <= 50:
|
||||
autochat(st.addSpawn(SUCCUBUS_OF_SEDUCTION,200000),MESSAGES[SUCCUBUS_OF_SEDUCTION][st.getRandom(len(MESSAGES))])
|
||||
autochat(st.addSpawn(SUCCUBUS_OF_SEDUCTION,200000),MESSAGES[SUCCUBUS_OF_SEDUCTION][st.getRandom(len(MESSAGES))])
|
||||
autochat(st.addSpawn(SUCCUBUS_OF_SEDUCTION,200000),MESSAGES[SUCCUBUS_OF_SEDUCTION][st.getRandom(len(MESSAGES))])
|
||||
else:
|
||||
autochat(st.addSpawn(RUPINA,120000),"Your love... love!")
|
||||
elif wish == 2 :
|
||||
if WISH_CHANCE <= 33 :
|
||||
autochat(st.addSpawn(GRIMA,200000),MESSAGES[GRIMA][st.getRandom(len(MESSAGES))])
|
||||
autochat(st.addSpawn(GRIMA,200000),MESSAGES[GRIMA][st.getRandom(len(MESSAGES))])
|
||||
autochat(st.addSpawn(GRIMA,200000),MESSAGES[GRIMA][st.getRandom(len(MESSAGES))])
|
||||
else :
|
||||
st.giveItems(ADENA,10000)
|
||||
elif wish == 3 :
|
||||
if WISH_CHANCE <= 33 :
|
||||
st.giveItems(CERTIFICATE_OF_ROYALTY,1)
|
||||
elif WISH_CHANCE >= 66 :
|
||||
st.giveItems(ANCIENT_CROWN,1)
|
||||
else:
|
||||
spawnedNpc=st.addSpawn(SANCHES,player,True,0)
|
||||
autochat(spawnedNpc,"Who dares to call the dark Monarch?!")
|
||||
st.startQuestTimer("sanches_timer1",200000,spawnedNpc)
|
||||
elif wish == 4 :
|
||||
if WISH_CHANCE <= 33:
|
||||
st.giveItems(R1[st.getRandom(len(R1))],1)
|
||||
st.giveItems(R2[st.getRandom(len(R2))],1)
|
||||
st.giveItems(R3[st.getRandom(len(R3))],1)
|
||||
if not st.getRandom(3):
|
||||
st.giveItems(HEART_OF_PAAGRIO,1)
|
||||
else:
|
||||
autochat(st.addSpawn(WISDOM_CHEST,120000),"I contain the wisdom, I am the wisdom box!")
|
||||
npc.setBusy(False)
|
||||
return
|
||||
elif event == "sanches_timer1" :
|
||||
autochat(npc,"Hehehe, i'm just wasting my time here!")
|
||||
npc.deleteMe()
|
||||
return
|
||||
elif event == "bonaparterius_timer1" :
|
||||
autochat(npc,"A worth opponent would be a good thing")
|
||||
npc.deleteMe()
|
||||
elif event == "ramsebalius_timer1" :
|
||||
autochat(npc,"Your time is up!")
|
||||
npc.deleteMe()
|
||||
return
|
||||
elif event == "greatdemon_timer1" :
|
||||
autochat(npc,"Do not interrupt my eternal rest again!")
|
||||
npc.deleteMe()
|
||||
return
|
||||
return htmltext
|
||||
|
||||
def onTalk (self,npc,player):
|
||||
htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
|
||||
st = player.getQuestState(qn)
|
||||
if not st : return htmltext
|
||||
npcId = npc.getNpcId()
|
||||
cond = st.getInt("cond")
|
||||
id = st.getState()
|
||||
if npcId != ALCHEMIST_MATILD and id == State.CREATED : return htmltext
|
||||
if npcId == TORAI and st.getQuestItemsCount(FORBIDDEN_LOVE_SCROLL) :
|
||||
st.takeItems(FORBIDDEN_LOVE_SCROLL,1)
|
||||
st.giveItems(ADENA,500000)
|
||||
htmltext = "30557-01.htm"
|
||||
elif npcId == WISDOM_CHEST :
|
||||
st.giveItems(R1[st.getRandom(len(R1))],1)
|
||||
st.giveItems(R2[st.getRandom(len(R2))],1)
|
||||
st.giveItems(R3[st.getRandom(len(R3))],1)
|
||||
if not st.getRandom(3):
|
||||
st.giveItems(HEART_OF_PAAGRIO,1)
|
||||
st.giveItems(4409,1)
|
||||
st.giveItems(4408,1)
|
||||
htmltext = "30743-0"+str(st.getRandom(6)+1)+".htm"
|
||||
npc.deleteMe()
|
||||
elif npcId == RUPINA:
|
||||
if st.getRandom(100) <= 4:
|
||||
st.giveItems(NECKLACE_OF_GRACE,1)
|
||||
htmltext = "30742-01.htm"
|
||||
else:
|
||||
st.giveItems(R4[st.getRandom(len(R4))],1)
|
||||
htmltext = "30742-02.htm"
|
||||
npc.decayMe()
|
||||
elif npcId == ALCHEMIST_MATILD:
|
||||
if npc.isBusy() :
|
||||
htmltext = "30738-20.htm"
|
||||
elif player.getLevel() <= 29 :
|
||||
htmltext = "30738-21.htm"
|
||||
st.exitQuest(1)
|
||||
elif cond == 5 and st.getQuestItemsCount(MATILDS_ORB) :
|
||||
htmltext = "30738-11.htm"
|
||||
elif cond == 4 and check_ingredients(st,1):
|
||||
htmltext = "30738-08.htm"
|
||||
elif cond == 3 and not check_ingredients(st,1):
|
||||
htmltext = "30738-07.htm"
|
||||
elif cond == 2 or (st.getQuestItemsCount(ALCHEMY_TEXT) and st.getQuestItemsCount(SECRET_BOOK)) :
|
||||
htmltext = "30738-05.htm"
|
||||
elif cond == 1 or (st.getQuestItemsCount(ALCHEMY_TEXT) and not st.getQuestItemsCount(SECRET_BOOK)) :
|
||||
htmltext = "30738-04.htm"
|
||||
else:
|
||||
htmltext = "30738-01.htm"
|
||||
return htmltext
|
||||
|
||||
def onKill(self,npc,player,isPet):
|
||||
st = player.getQuestState(qn)
|
||||
if not st : return
|
||||
id = st.getState()
|
||||
if id == State.CREATED: return
|
||||
if id != State.STARTED: st.setState(State.STARTED)
|
||||
npcId = npc.getNpcId()
|
||||
cond = st.getInt("cond")
|
||||
if npcId == SECRET_KEEPER_TREE and cond == 1 and not st.getQuestItemsCount(SECRET_BOOK):
|
||||
st.set("cond","2")
|
||||
st.giveItems(SECRET_BOOK,1)
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
elif npcId in DROPLIST.keys() and cond == 3 :
|
||||
item,chance=DROPLIST[npcId]
|
||||
if st.getRandom(100) <= chance and not st.getQuestItemsCount(item) :
|
||||
st.giveItems(item,1)
|
||||
if check_ingredients(st,1):
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
st.set("cond","4")
|
||||
else: st.playSound("ItemSound.quest_itemget")
|
||||
else:
|
||||
if npcId == SUCCUBUS_OF_SEDUCTION:
|
||||
if st.getRandom(100) <= 3 :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
st.giveItems(FORBIDDEN_LOVE_SCROLL,1)
|
||||
elif npcId == GRIMA:
|
||||
if st.getRandom(100) < 4 :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
if st.getRandom(1000) == 0 :
|
||||
st.giveItems(ADENA,100000000)
|
||||
else:
|
||||
st.giveItems(ADENA,900000)
|
||||
elif npcId == SANCHES :
|
||||
try :
|
||||
st.getQuestTimer("sanches_timer1").cancel()
|
||||
if st.getRandom(100) <= 50 :
|
||||
autochat(npc,"It's time to come out my Remless... Bonaparterius!")
|
||||
spawnedNpc=st.addSpawn(BONAPARTERIUS,npc,True,0)
|
||||
autochat(spawnedNpc,"I am the Great Emperor's son!")
|
||||
st.startQuestTimer("bonaparterius_timer1",600000,spawnedNpc)
|
||||
else :
|
||||
st.giveItems(R4[st.getRandom(len(R4))],1)
|
||||
except : pass
|
||||
elif npcId == BONAPARTERIUS:
|
||||
try :
|
||||
st.getQuestTimer("bonaparterius_timer1").cancel()
|
||||
autochat(npc,"Only Ramsebalius would be able to avenge me!")
|
||||
if st.getRandom(100) <= 50 :
|
||||
spawnedNpc=st.addSpawn(RAMSEBALIUS,npc,True,0)
|
||||
autochat(spawnedNpc,"Meet the absolute ruler!")
|
||||
st.startQuestTimer("ramsebalius_timer1",600000,spawnedNpc)
|
||||
else :
|
||||
st.giveItems(R4[st.getRandom(len(R4))],1)
|
||||
except : pass
|
||||
elif npcId == RAMSEBALIUS:
|
||||
try :
|
||||
st.getQuestTimer("ramsebalius_timer1").cancel()
|
||||
autochat(npc,"You evil piece of...")
|
||||
if st.getRandom(100) <= 50 :
|
||||
spawnedNpc=st.addSpawn(GREAT_DEMON_KING,npc,True,0)
|
||||
autochat(spawnedNpc,"Who dares to kill my fiendly minion?!")
|
||||
st.startQuestTimer("greatdemon_timer1",600000,spawnedNpc)
|
||||
else :
|
||||
st.giveItems(R4[st.getRandom(len(R4))],1)
|
||||
except: pass
|
||||
elif npcId == GREAT_DEMON_KING:
|
||||
try :
|
||||
st.getQuestTimer("greatdemon_timer1").cancel()
|
||||
st.giveItems(ADENA,1412965)
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
except: pass
|
||||
return
|
||||
|
||||
QUEST = Quest(334,qn,"The Wishing Potion")
|
||||
|
||||
QUEST.addStartNpc(ALCHEMIST_MATILD)
|
||||
|
||||
QUEST.addTalkId(ALCHEMIST_MATILD)
|
||||
QUEST.addTalkId(TORAI)
|
||||
QUEST.addTalkId(RUPINA)
|
||||
QUEST.addTalkId(WISDOM_CHEST)
|
||||
|
||||
QUEST.addKillId(SECRET_KEEPER_TREE)
|
||||
|
||||
for mob in DROPLIST.keys():
|
||||
QUEST.addKillId(mob)
|
||||
|
||||
QUEST.addKillId(SUCCUBUS_OF_SEDUCTION)
|
||||
QUEST.addKillId(GRIMA)
|
||||
QUEST.addKillId(SANCHES)
|
||||
QUEST.addKillId(RAMSEBALIUS)
|
||||
QUEST.addKillId(BONAPARTERIUS)
|
||||
QUEST.addKillId(GREAT_DEMON_KING)
|
@ -1 +0,0 @@
|
||||
<html><body>Conditions are not right to make this quest available.</body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Many aspire to join our guild. Many such as you only see the glamorous side of our profession.<br>Becoming a hunter is not an easy task. Only the very best and brightest are selected for membership in the Hunters Guild. A hunting license is only given to those who pass a very severe test.<br>Many give up before a week has passed. Does that sound like you?<br>
|
||||
(This quest is only for characters level 35 and above.)</body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Many aspire to join our guild. Many such as you only see the glamorous side of our profession.<br>Becoming a hunter is not an easy task. Only the very best and brightest are selected for membership in the Hunters Guild. A hunting license is only given to those who pass a very severe test.<br>Many give up before a week has passed. Does that sound like you?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-03.htm">"I wish to take the test for the hunting license."</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Did I hurt your feelings? Do you actually intend to try for the hunting license? If so, you must listen carefully to my words... <br>There are two types of hunters. Most hunters are 1-circle, but very skillful ones can obtain the 2-circle license by passing another test. Of course you must take the <font color="LEVEL">1-circle license test</font> first.<br>To pass this test, you must bring back at least three of the items on this list.<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">View the list</a></body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Next is the 1-circle hunter license test list. To pass the test, you have to bring at least three items from the list. Keep in mind that this is not just a simple treasure hunt but is a test to find out whether you have the nature and disposition of a hunter!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-05.htm">40 scales of guardian basilisk</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-06.htm">20 Karut Weeds</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-07.htm">3 heads of raiders with the lord's bounty on their heads</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-08.htm">Skin of Windsus Aleph</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-09.htm">20 light-blue runestones</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-10.htm">30 sea of spores seeds</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">40 scales of guardian basilisk</font>. They live in the <font color="LEVEL">Death Pass</font>.<br>I really shouldn't tell you this... Gathering information about the items is a part of the test. Count yourself lucky to have received this valuable one-time hint!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">20 Karut Weeds</font>, used in the research of mages. The leto Lizardman mediums carry them. You may find the leto lizardmen in the southern part of Oren.<br>Gathering information about the items is a part of the test. Count yourself lucky to have received this valuable one-time hint!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must kill the three evil outlaw Haka brothers and bring back their heads. They are named <font color="LEVEL">Haka, Jakja and Marka</font>. They are prefects of the Breka orc tribe. They wantonly attack merchants' carriages, massacre citizens and set fire to their homes. There has been a bounty placed by on their heads by the Lord of Giran, therefore they have been laying low. But with the <font color="LEVEL">Breka Orc Warriors</font> destroyed, they are bound to appear seeking revenge.<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">20 light-blue runestones</font>. These runestones are obtained by destroying <font color="LEVEL">manashen gargoyles or enchanted stone golems</font> in the area near the Ivory Tower. To protect their precious tower from interlopers, the mages apparently have inplanted runestones in the creatures of that area and are controlling them.<br>This is all I will say on this matter. If you are a true hunter, you must gather the information and find the items yourself. Don't expect any more hints!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">30 Sea of Spores seeds</font>. These can be obtained by going to the Sea of Spores and killing the <font color="LEVEL">giant fungus</font>.<br>Of course, I should let you discover this for yourself, but I'm just an old softie... No more hints!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-04.htm">Go back</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You have obtained the items from the list! I must admit that I doubted you at first, but I stand corrected! Well, you certainly qualify as a hunter. I hereby bestow on you the 1-circle hunting license. Welcome to the guild, new hunting brother!<br>Now you are qualified to perform the various tasks that come to our Hunters Guild. Please go and ask <font color="LEVEL">Guild Member Tor</font> over there for details.<br>Sometimes you will be assigned jobs by the guild, other times you'll be hired by individuals. Recently <font color="LEVEL">Cybellin</font> asked me to introduce him to a trustworthy hunter; would you like to meet him?</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Welcome, my hunter brother. What can I do for you?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-14.htm">"Is there any work?"</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-15.htm">"I wish to test for the 2-circle hunter license."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-31.htm">"I wish to leave the Hunters Guild."</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
We get dozens of hunting requests every day. You should speak to <font color="LEVEL">Guild Member Tor</font> to find out what requests have currently come in. If there is a job that you like, you can accept it.<br>There is also the possibility of being hired by individuals. Recently <font color="LEVEL">Cybellin</font> asked me to introduce him to a trustworthy hunter. Would you care to meet him?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-13.htm">"Go back"</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You are already applying for the 2-circle hunting license? Nice to see that you don't lack ambition! But look. You're not ready. You do have some skills but you still need more important practical experience. For the time being, you should develop your talents while carrying out hunting requests.<br>
|
||||
(You can apply for the 2-circle license test after reaching level 45.)</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Welcome, my hunter brother. What can I do for you?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-17.htm">"Are there any jobs?"</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-19.htm">"I wish to test for the 2-circle hunting license."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-31.htm">Leave the Hunters Guild</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
We get dozens of hunting requests every day. You should see <font color="LEVEL">Guild Member Tor</font>, he will know what requests have come in. If there is a job that you like, you can accept it.<br>Hunters are also hired by individuals, not just through the guild. Recently <font color="LEVEL">Cybellin</font> asked me to introduce him to a trustworthy hunter. Would you care to meet him?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-16.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
So, you wish to take the 2-circle hunting license test? Well I suppose you're up to giving it a try. As before, in the 2-circle test you must bring back at least three items written on the list. Of course, these items will be harder to obtain than those of the 1-circle test. Maybe you should look at the list first...<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">View list</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Still taking the test, are you? Come and see me when you've finished.</body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Here is the 2-circle hunting license test list. You must bring <br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-21.htm">20 Timak Orc Totems</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-22.htm">20 skeins of trisalim cobweb</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-23.htm">30 Ambrosius Fruits</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-24.htm">20 Balefire Crystals</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-25.htm">20 Imperial Arrowheads</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-26.htm">The heads of 5 outlaw raiders</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <br><font color="LEVEL">20 Timak Orc Totems</font>. To obtain them you must kill Timak Orc Warriors. You should have no trouble with this. Now go!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather<font color="LEVEL">20 trisalim cobwebs</font>. This should be no problem for you. Quickly now! Get them and come back to me!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">30 Ambrosius Fruits</font>. You are familiar with ambrosius, aren't you? It's a fruit somewhat like an apple that grows on valley treants in Enchanted Valley. This should be easy for you!<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">twenty Balefire Crystals</font>. Actually, I didn't know what this was so I asked the sorcerers about it. They said it could be obtained if you kill a <font color="LEVEL">tairim</font> in the Cemetery. This hint should be of great value to you.<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must gather <font color="LEVEL">20 Imperial Arrowheads</font>. This should be easy for you. If you go to the <font color="LEVEL">National Cemetery</font> and kill the undead archers, you can obtain arrowheads made during the Elmoreden era. Are you up for it?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You must kill five tarlk bugbear raiders and bring back their heads. Their names are Athu, Triska, Motura and Lanka, and they are led by one called Kalath. These <font color="LEVEL">tarlk bugbear warriors</font> have been attacking and pillaging merchant carriages. I'm sure you would deal with these outlaws even if it weren't a requirement of the test, wouldn't you?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-20.htm">Go back</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html>
|
||||
|
||||
<body>
|
||||
Guild Member Grey:<br>Good work! I knew that you would complete the test without much trouble. Now you are a respectable 2-circle hunter. Congratulations!<br>Now you are qualified for more dangerous hunts. Go see Guild Member Tor.<br>Or perhaps you should visit Cybellin. He is still looking for a good hunter...</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
Hello, hunter brother. What can I do for you?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-30.htm">"Are there any jobs?"</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-31.htm">"I wish to leave the Hunters Guild."</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
We get dozens of hunting requests every day. You should go to <font color="LEVEL">Guild Member Tor</font> to find out what requests have currently come in. If there is an assignment that appeals to you, you can accept it.<br>There are also individuals who wish to hire hunters. Recently <font color="LEVEL">Cybellin</font> asked me if I knew of a trustworthy hunter. Would you like to meet her?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-29.htm">Go back</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Guild Member Grey:<br>
|
||||
You wish to leave the guild? Certainly you know that is impossible. Once you join this brotherhood you are in for life... Didn't you know that?... You should reconsider your decision...<br>... The fear in your eyes makes it impossible for me to keep a straight face! I'm joking, you idiot! Of course you can leave if that is what you really want... You must have a good reason... <br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-32.htm">Leave</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30744-34.htm">Cancel</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Pleased to meet you, brother! Is there anything I can help you with?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-07.htm">"I would like to take on a request."</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Nice to meet you, brother! Is there anything I can help you with?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-09.htm">Discontinue mission</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-11.htm">Continue mission</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>
|
||||
Guild Member Tor:<br>Well, it seems you have your mind made up, I won't try to change it. I will confiscate all of your Laurel Leaf Pins. I hope in the future you will learn to fulfill your obligations.</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Good work! Here is your reward. Also, please accept this Laurel Leaf Pin that recognizes the successful fulfillment of a request. The more pins you possess, the better chance you will receive class A and B requests.<br>Do you wish to undertake a new request?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-03.htm">"I would like to receive a new request."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-14.htm">"I need a break."</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Good work! Here is your reward. Also, please accept this Laurel Leaf Pin that recognizes the successful fulfillment of a request. The more pins you possess, the better the chance you will receive class A and B requests.<br>Do you wish to undertake a new request?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-07.htm">"I would like to receive a new request."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30745-14.htm">"I need a break."</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Obtain 40 charms of Kadesh. The charm bears the image of Kadesh, the evil spirit worshiped by leto lizardmen. It is known that leto Lizardman archers and soldiers carry the charm as an amulet to invoke magical power.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Hunters Guild Member Tor:<br>
|
||||
Details of the Request: Collect and bring back 40 Dire Wyrm Eggs.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Collect and bring back 50 Taik Obsidian Amulets. You must defeat an archer or warrior of the Taik orc tribe to obtain this amulet.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Kill the karul bugbears that are terrorizing the south of Aden and bring back their heads.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Collect 40 Tamlin Ivory Charms. This charm is obtained by killing a tamlin orc.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Bring me the head of Kaikee, captain of the Timak orc raiders. Start killing Timak Orc Warriors and eventually Kaikee will make his appearance.<br>Request Class: B</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Collect and bring back 50 Taik Orc Totems. This totem can be obtained by slaying Taik orc shamans or captains. <br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Collect and bring back 30 Shillien Manes. To obtain them you must kill grunts, scouts or warriors of the vanor silenos tribe that have been running amok in the north of Aden.<br>Request Class: C</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Collect and bring back 20 horns of unicorn. They are found in the Enchanted Valley.<br>Request Class: B</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br>
|
||||
Details of the Request: Bring back 20 skulls of undead executed criminals. These vagrant spirits have wandered aimlessly about the Cemetery of Kings since ancient times.<br>Request Class: A</body></html>
|
@ -1 +0,0 @@
|
||||
<html><body>Guild Member Tor:<br><?reply1?><?reply2?><?reply3?><?reply4?><?reply5?></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Excellent! Take this <font color="LEVEL">Blood Crystal</font> and dagger. Use the dagger to kill the evil <font color="LEVEL">leto lizardmen</font> and <font color="LEVEL">harit lizardmen</font> and the crystal to absorb their blood. This will raise the purity of the crystal above its current level of 1. Although this may seem quite simple, the process is not without risks. In addition to the danger posed by the lizardmen, there is a chance each time that the crystal will shatter, that is, the crystal will either increase in purity or be destroyed.<br>If you successfully raise the purity of the crystal and bring it to me, you shall receive a reward. The higher the level of purity, the greater your reward will be. <br>There are different theories as to why the crystal reacts like this to the blood of the lizardmen, possibly it is because these evil lizards are descended from dragons! You will find that certain grades of blood are very effective and others have no effect at all. This can only be determined by trial and error...<br>
|
||||
I have written down this task for you.</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
After you kill the <font color="LEVEL">leto lizardmen</font> and <font color="LEVEL">harit lizardmen</font> with that dagger, you must use the Blood Crystal to absorb their blood. <br>When you raise the purity of the crystal and return it to me, I shall give you a reward. The higher the level of purity, the greater your reward will be. There is an element of risk, however, as each time it is possible that the crystal will be destroyed.<br>You will find that certain grades of blood are useful and some grades have no effect at all on the Blood Crystal. This can only be determined by trial and error...</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
The purity of the crystal is still at level 1! Have you decided not to carry out my request?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-04.htm">"How can I raise the purity of the crystal?"</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-03.htm">Continue</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-12.htm">Quit</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
You have raised the purity of the Blood Crystal! Would you like to try increasing it some more or do you wish to give it to me at its current level? It doesn't matter to me, but you should remember that the higher level of crystal that you bring me, the greater your reward will be.<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-08.htm">"Take the jewel at its current level."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-09.htm">"I will attempt to raise the level of the crystal."</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
You have successfully created a Blood Crystal of level 10 purity! Oh my Shilen! That's awesome! As I promised, I will pay you the reward money. Thank you so very much!<br>Well, may I ask you to do me another favor?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-03.htm">Tell her that you will take up the task.</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-12.htm">Quit.</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Excellent! You shall receive your reward based on the level of purity of the Blood Crystal. Good job! Could I ask you another favor?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-03.htm">"I will do another favor for you."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-12.htm">"No, just give me the reward and I'll be on my way."</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Fine, I will explain my request. You must increase the purity of a Blood Crystal and bring it to me. This is accomplished by dipping the crystal in the blood of <font color="LEVEL">leto lizardmen</font> and <font color="LEVEL">harit lizardmen</font> after you kill them with the dagger I gave you. If you are able to increase the crystal's purity to a level of 10 without destroying it, I will use my entire fortune to procure your reward!</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Hunter, will you continue to help me?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-03.htm">"Yes."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-12.htm">"No."</a></body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Ah, yes... Shattered... The crystal's structure was unstable and it failed. Don't be discouraged. Here is another crystal, will you please try again?<br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-03.htm">"Yes."</a><br>
|
||||
<a action="bypass -h Quest 335_TheSongOfTheHunter 30746-12.htm">"No."</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Cybellin:<br>
|
||||
Thank you for your help. May Shilen protect you...</body></html>
|
@ -1,631 +0,0 @@
|
||||
#Made by Emperorc
|
||||
import sys
|
||||
from org.l2jmobius.gameserver.model.quest import State
|
||||
from org.l2jmobius.gameserver.model.quest import QuestState
|
||||
from org.l2jmobius.gameserver.model.quest.jython import QuestJython as JQuest
|
||||
from org.l2jmobius.gameserver.network.serverpackets import CreatureSay
|
||||
from org.l2jmobius.commons.util import Rnd
|
||||
|
||||
qn = "335_TheSongOfTheHunter"
|
||||
|
||||
#NPCS
|
||||
Grey = 30744
|
||||
Tor = 30745
|
||||
Cybellin = 30746
|
||||
|
||||
#Items
|
||||
Cyb_Dagger = 3471
|
||||
License_1 = 3692
|
||||
License_2 = 3693
|
||||
Leaf_Pin = 3694
|
||||
Test_Instructions_1 = 3695
|
||||
Test_Instructions_2 = 3696
|
||||
Cyb_Req = 3697
|
||||
|
||||
#Mobs
|
||||
Breka_Orc_Warrior = 20271
|
||||
Windsus = 20553
|
||||
Tarlk_Bugbear_Warrior = 20571
|
||||
Gremlin_Filcher = 27149
|
||||
Mobs = [Breka_Orc_Warrior, Windsus, Tarlk_Bugbear_Warrior, Gremlin_Filcher]
|
||||
Lizardmen = [20578,20579,20581,20582,20641,20642,20643]
|
||||
|
||||
#Droplist Format- npcId:[itemId,itemAmount,chance]
|
||||
Level_1 = {
|
||||
20550 : [3709,40,75], #Gaurdian Basilisk
|
||||
20581 : [3710,20,50], #Leto Lizardman Shaman
|
||||
27140 : [3711,1,100], #Breka Overlord Haka
|
||||
27141 : [3712,1,100], #Breka Overlord Jaka
|
||||
27142 : [3713,1,100], #Breka Overlord Marka
|
||||
27143 : [3714,1,100], #Windsus Aleph
|
||||
20563 : [3715,20,50], #Manashen Gargoyle
|
||||
20565 : [3715,20,50], #Enchanted Stone Golemn
|
||||
20555 : [3716,30,70], #Giant Fungus
|
||||
}
|
||||
Level_2 = {
|
||||
20586 : [3717,20,50], #Timak Orc Warrior
|
||||
20560 : [3718,20,50], #Trisalim Spider
|
||||
20561 : [3718,20,50], #Trisalim Tarantula
|
||||
20591 : [3719,30,100], #Valley Treant
|
||||
20597 : [3719,30,100], #Valley Treant Elder
|
||||
20675 : [3720,20,50], #Tairim
|
||||
20660 : [3721,20,50], #Archer of Greed
|
||||
27144 : [3722,1,100], #Tarlk Raider Athu
|
||||
27145 : [3723,1,100], #Tarlk Raider Lanka
|
||||
27146 : [3724,1,100], #Tarlk Raider Triska
|
||||
27147 : [3725,1,100], #Tarlk Raider Motura
|
||||
27148 : [3726,1,100], #Tarlk Raider Kalath
|
||||
}
|
||||
|
||||
Grey_Advance = [
|
||||
#level 1
|
||||
[[3709],40],
|
||||
[[3710],20],
|
||||
[[3711,3712,3713],1],
|
||||
[[3714],1],
|
||||
[[3715],20],
|
||||
[[3716],30],
|
||||
#level 2
|
||||
[[3717],20],
|
||||
[[3718],20],
|
||||
[[3719],30],
|
||||
[[3720],20],
|
||||
[[3721],20],
|
||||
[[3722,3723,3724,3725,3726],1]
|
||||
]
|
||||
|
||||
#Droplist Format- npcId : [itemRequired,itemGive,itemToGiveAmount,itemAmount,chance]
|
||||
Tor_requests_1 = {
|
||||
20578 : [3727,3769,'1',40,80], #Leto Lizardman Archer
|
||||
20579 : [3727,3769,'1',40,83], #Leto Lizardman Soldier
|
||||
20586 : [3728,3770,'1',50,89], #Timak Orc Warrior
|
||||
20588 : [3728,3770,'1',50,100], #Timak Orc Overlord
|
||||
20565 : [3729,3771,'1',50,100], #Enchanted Stone Golem
|
||||
20556 : [3730,3772,'1',30,50], #Giant Monster Eye
|
||||
20557 : [3731,3773,'1',40,80], #Dire Wyrm
|
||||
20550 : [3732,3774,'Rnd.get(2) + 1',100,100], #Guardian Basilisk
|
||||
20552 : [3733,3775,'1',50,100], #Fettered Soul
|
||||
20553 : [3734,3776,'1',30,50], #Windsus
|
||||
20554 : [3735,3777,'2',100,100],#Grandis
|
||||
20631 : [3736,3778,'1',50,100], #Taik Orc Archer
|
||||
20632 : [3736,3778,'1',50,93], #Taik Orc Warrior
|
||||
20600 : [3737,3779,'1',30,50], #Karul Bugbear
|
||||
20601 : [3738,3780,'1',40,62], #Tamlin Orc
|
||||
20602 : [3738,3780,'1',40,80], #Tamlin Orc Archer
|
||||
27157 : [3739,3781,'1',1,100], #Leto Chief Narak
|
||||
20567 : [3740,3782,'1',50,50], #Enchanted Gargoyle
|
||||
20269 : [3741,3783,'1',50,93], #Breka Orc Shaman
|
||||
20271 : [3741,3783,'1',50,100], #Breka Orc Warrior
|
||||
27156 : [3742,3784,'1',1,100], #Leto Shaman Ketz
|
||||
27158 : [3743,3785,'1',1,100], #Timak Raider Kaikee
|
||||
20603 : [3744,3786,'1',30,50], #Kronbe Spider
|
||||
27160 : [3746,3788,'1',1,100], #Gok Magok
|
||||
27164 : [3747,3789,'1',1,100] #Karul Chief Orooto
|
||||
}
|
||||
|
||||
#Droplist Format- npcId : [itemRequired,itemGive,itemAmount,chance]
|
||||
Tor_requests_2 = {
|
||||
20560 : [3749,3791,40,66], #Trisalim Spider
|
||||
20561 : [3749,3791,40,75], #Trisalim Tarantula
|
||||
20633 : [3750,3792,50,53], #Taik Orc Shaman
|
||||
20634 : [3750,3792,50,99], #Taik Orc Captain
|
||||
20641 : [3751,3793,40,88], #Harit Lizardman Grunt
|
||||
20642 : [3751,3793,40,88], #Harit Lizardman Archer
|
||||
20643 : [3751,3793,40,91], #Harit Lizardman Warrior
|
||||
20661 : [3752,3794,20,50], #Hatar Ratman Thief
|
||||
20662 : [3752,3794,20,52], #Hatar Ratman Boss
|
||||
20667 : [3753,3795,30,90], #Farcran
|
||||
20589 : [3754,3796,40,49], #Fline
|
||||
20590 : [3755,3797,40,51], #Liele
|
||||
20592 : [3756,3798,40,80], #Satyr
|
||||
20598 : [3756,3798,40,100], #Satyr Elder
|
||||
20682 : [3758,3800,30,70], #Vanor Silenos Grunt
|
||||
20683 : [3758,3800,30,85], #Vanor Silenos Scout
|
||||
20684 : [3758,3800,30,90], #Vanor Silenos Warrior
|
||||
20571 : [3759,3801,30,63], #Tarlk Bugbear Warrior
|
||||
27159 : [3760,3802,1,100], #Timak Overlord Okun
|
||||
27161 : [3761,3803,1,100], #Taik Overlord Kakran
|
||||
20639 : [3762,3804,40,86], #Mirror
|
||||
20664 : [3763,3805,20,77], #Deprive
|
||||
20593 : [3764,3806,20,68], #Unicorn
|
||||
20599 : [3764,3806,20,86], #Unicorn Elder
|
||||
27163 : [3765,3807,1,100], #Vanor Elder Kerunos
|
||||
20659 : [3766,3808,20,73], #Grave Wanderer
|
||||
27162 : [3767,3809,1,100], #Hatar Chieftain Kubel
|
||||
20676 : [3768,3810,10,64] #Judge of Marsh
|
||||
}
|
||||
#FilcherDropList Format- reqId : [item,amount,bonus]
|
||||
Filcher = {
|
||||
3752 : [3794,20,3],
|
||||
3754 : [3796,40,5],
|
||||
3755 : [3797,40,5],
|
||||
3762 : [3804,40,5]
|
||||
}
|
||||
|
||||
#SpawnList Format- npcId : [item1,item2,npcToSpawn]
|
||||
Tor_requests_tospawn = {
|
||||
20582 : [3739,3781,27157], #Leto Lizardman Overlord
|
||||
20581 : [3742,3784,27156], #Leto Lizardman Shaman
|
||||
20586 : [3743,3785,27158], #Timak Orc Warrior
|
||||
20554 : [3746,3788,27160], #Grandis
|
||||
#level 2
|
||||
20588 : [3760,3802,27159], #Timak Orc Overlord
|
||||
20634 : [3761,3803,27161], #Tiak Orc Captain
|
||||
20686 : [3765,3807,27163], #Vanor Silenos Chieftan
|
||||
20662 : [3767,3809,27162] #Hatar Ratman Boss
|
||||
}
|
||||
|
||||
#RewardsList Format- requestId : [item,quantity,rewardAmount]
|
||||
Tor_Rewards_1 = {
|
||||
3727 : [3769,40,2090],
|
||||
3728 : [3770,50,6340],
|
||||
3729 : [3771,50,9480],
|
||||
3730 : [3772,30,9110],
|
||||
3731 : [3773,40,8690],
|
||||
3732 : [3774,100,9480],
|
||||
3733 : [3775,50,11280],
|
||||
3734 : [3776,30,9640],
|
||||
3735 : [3777,100,9180],
|
||||
3736 : [3778,50,5160],
|
||||
3737 : [3779,30,3140],
|
||||
3738 : [3780,40,3160],
|
||||
3739 : [3781,1,6370],
|
||||
3740 : [3782,50,19080],
|
||||
3741 : [3783,50,17730],
|
||||
3742 : [3784,1,5790],
|
||||
3743 : [3785,1,8560],
|
||||
3744 : [3786,30,8320],
|
||||
3746 : [3788,1,27540],
|
||||
3747 : [3789,1,20560],
|
||||
}
|
||||
|
||||
Tor_Rewards_2 = {
|
||||
3749 : [3791,40,7250],
|
||||
3750 : [3792,50,7160],
|
||||
3751 : [3793,40,6580],
|
||||
3752 : [3794,20,10100],
|
||||
3753 : [3795,30,13000],
|
||||
3754 : [3796,40,7660],
|
||||
3755 : [3797,40,7660],
|
||||
3756 : [3798,40,11260],
|
||||
3758 : [3800,30,8810],
|
||||
3759 : [3801,30,7350],
|
||||
3760 : [3802,1,8760],
|
||||
3761 : [3803,1,9380],
|
||||
3762 : [3804,40,17820],
|
||||
3763 : [3805,20,17540],
|
||||
3764 : [3806,20,14160],
|
||||
3765 : [3807,1,15960],
|
||||
3766 : [3808,20,39100],
|
||||
3767 : [3809,1,39550],
|
||||
3768 : [3810,10,41200]
|
||||
}
|
||||
|
||||
#Format item : adenaAmount
|
||||
Cyb_Rewards = {
|
||||
3699 : 3400,
|
||||
3700 : 6800,
|
||||
3701 : 13600,
|
||||
3702 : 27200,
|
||||
3703 : 54400,
|
||||
3704 : 108800,
|
||||
3705 : 217600,
|
||||
3706 : 435200,
|
||||
3707 : 870400
|
||||
}
|
||||
|
||||
Tor_menu = [
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3727\">C: Obtain 40 charms of Kadesh</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3728\">C: Collect 50 Timak Jade Necklaces</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3729\">C: Gather 50 Enchanted Golem Shards</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3730\">C: Collect and bring back 30 pieces of Giant Monster Eye Meat</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3731\">C: Collect and bring back 40 Dire Wyrm Eggs</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3732\">C: Collect and bring back 100 guardian basilisk talons</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3733\">C: Collect and bring back 50 revenants chains</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3734\">C: Collect and bring back 30 Windsus Tusks</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3735\">C: Collect and bring back 100 Grandis Skulls</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3736\">C: Collect and bring back 50 Taik Obsidian Amulets</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3737\">C: Bring me 30 heads of karul bugbears</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3738\">C: Collect 40 Tamlin Ivory Charms</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3739\">B: Bring me the head of Elder Narak of the leto lizardmen</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3740\">B: Collect and bring back 50 Enchanted Gargoyle Horns</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3741\">B: Collect and bring back 50 Coiled Serpent Totems</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3742\">B: Bring me the totem of the Serpent Demon Kadesh</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3743\">B: Bring me the head of Kaikis</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3744\">B: Collect and bring back 30 Kronbe Venom Sacs</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3746\">A: Recover the precious stone tablet that was stolen from a Dwarven cargo wagon by grandis</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3747\">A: Recover the precious Book of Shunaiman</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3749\">C: Collect and bring back 40 Trisalim Venom Sacs</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3750\">C: Collect and bring back 50 Taik Orc Totems</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3751\">C: Collect and bring back 40 Harit Lizardman barbed necklaces</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3752\">C: Collect and bring back 20 coins of the old empire</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3753\">C: Kill 30 farcrans and bring back their skins</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3754\">C: Collect and bring back 40 Tempest Shards</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3755\">C: Collect and bring back 40 Tsunami Shards</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3756\">C: Collect and bring back 40 Satyr Manes</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3758\">C: Collect and bring back 30 Shillien Manes</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3759\">C: Collect and bring back 30 tarlk bugbear totems</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3760\">B: Bring me the head of Okun</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3761\">B: Bring me the head of Kakran</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3762\">B: Collect and bring back 40 narcissus soulstones</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3763\">B: Collect and bring back 20 Deprive Eyes</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3764\">B: Collect and bring back 20 horns of summon unicorn</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3765\">B: Bring me the golden mane of Kerunos</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3766\">A: Bring back 20 skulls of undead executed criminals</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3767\">A: Recover the stolen bust of the late King Travis</a><br>",
|
||||
"<a action=\"bypass -h Quest 335_TheSongOfTheHunter 3768\">A: Recover 10 swords of Cadmus</a><br>"
|
||||
]
|
||||
|
||||
|
||||
def HasItems(st,check) :
|
||||
count = 0
|
||||
for list in Grey_Advance :
|
||||
count2 = 0
|
||||
for item in list[0] :
|
||||
if not st.getQuestItemsCount(item) >= list[1] :
|
||||
break
|
||||
count2 += 1
|
||||
if count2 == len(list[0]) :
|
||||
count += 1
|
||||
if count >= check :
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def AutoChat(npc,text) :
|
||||
chars = npc.getKnownList().getKnownPlayers().values().toArray()
|
||||
if chars != None:
|
||||
for pc in chars :
|
||||
sm = CreatureSay(npc.getObjectId(), 0, npc.getName(), text)
|
||||
pc.sendPacket(sm)
|
||||
return
|
||||
|
||||
def HasRequestCompleted(st,level) :
|
||||
rewards = Tor_Rewards_1
|
||||
if level == 2 :
|
||||
rewards = Tor_Rewards_2
|
||||
for req in rewards.keys() :
|
||||
if st.getQuestItemsCount(req) :
|
||||
if st.getQuestItemsCount(rewards[req][0]) >= rewards[req][1] :
|
||||
return req
|
||||
return 0
|
||||
|
||||
class Quest (JQuest) :
|
||||
|
||||
def __init__(self,id,name,descr):
|
||||
JQuest.__init__(self,id,name,descr)
|
||||
self.questItemIds = range(3692,3811) + [3471]
|
||||
|
||||
def onAdvEvent (self,event,npc,player):
|
||||
st = player.getQuestState(qn)
|
||||
if not st: return
|
||||
htmltext = event
|
||||
if event == "30744-03.htm" :
|
||||
st.setState(State.STARTED)
|
||||
st.playSound("ItemSound.quest_accept")
|
||||
st.giveItems(Test_Instructions_1,1)
|
||||
st.set("cond","1")
|
||||
#set Memo = 0
|
||||
elif event == "30744-32.htm" :
|
||||
st.playSound("ItemSound.quest_finish")
|
||||
if st.getQuestItemsCount(Leaf_Pin) >= 20 :
|
||||
htmltext = "30744-33.htm"
|
||||
st.giveItems(57,20000)
|
||||
st.exitQuest(1)
|
||||
elif event == "30744-19.htm" :
|
||||
if not HasItems(st,1) :
|
||||
st.giveItems(Test_Instructions_2,1)
|
||||
htmltext = "30744-18.htm"
|
||||
elif event == "30745-03.htm" :
|
||||
if st.getQuestItemsCount(Test_Instructions_2) :
|
||||
htmltext = "30745-04.htm"
|
||||
elif event == "Tor_list_1" :
|
||||
if not st.getInt("hasTask") :
|
||||
htmltext = "<html><body>Guild Member Tor:<br>"
|
||||
pins = st.getQuestItemsCount(Leaf_Pin)
|
||||
reply_0 = Rnd.get(12)
|
||||
reply_1 = Rnd.get(12)
|
||||
reply_2 = Rnd.get(12)
|
||||
reply_3 = Rnd.get(12)
|
||||
reply_4 = Rnd.get(12)
|
||||
if Rnd.get(100) < 20 :
|
||||
if pins < 4 and pins :
|
||||
reply_0 = Rnd.get(6) + 12
|
||||
reply_2 = Rnd.get(6)
|
||||
reply_3 = Rnd.get(6) + 6
|
||||
elif pins >= 4 :
|
||||
reply_0 = Rnd.get(6) + 6
|
||||
if not Rnd.get(20) :
|
||||
reply_1 = Rnd.get(2) + 18
|
||||
reply_2 = Rnd.get(6)
|
||||
reply_3 = Rnd.get(6) + 6
|
||||
elif pins >= 4 :
|
||||
if not Rnd.get(20) :
|
||||
reply_1 = Rnd.get(2) + 18
|
||||
reply_2 = Rnd.get(6)
|
||||
reply_3 = Rnd.get(6) + 6
|
||||
htmltext += Tor_menu[reply_0] + Tor_menu[reply_1] + Tor_menu[reply_2] + Tor_menu[reply_3] + Tor_menu[reply_4]
|
||||
htmltext += "</body></html>"
|
||||
elif event == "Tor_list_2" :
|
||||
if not st.getInt("hasTask") :
|
||||
htmltext = "<html><body>Guild Member Tor:<br>"
|
||||
pins = st.getQuestItemsCount(Leaf_Pin)
|
||||
reply_0 = Rnd.get(10)
|
||||
reply_1 = Rnd.get(10)
|
||||
reply_2 = Rnd.get(5)
|
||||
reply_3 = Rnd.get(5) + 5
|
||||
reply_4 = Rnd.get(10)
|
||||
if Rnd.get(100) < 20 :
|
||||
if pins < 4 and pins:
|
||||
reply_0 = Rnd.get(6) + 10
|
||||
elif pins >= 4 :
|
||||
reply_0 = Rnd.get(6) + 10
|
||||
if not Rnd.get(20):
|
||||
reply_1 = Rnd.get(3) + 16
|
||||
elif pins >= 4 :
|
||||
if not Rnd.get(20) :
|
||||
reply_1 = Rnd.get(3) + 16
|
||||
htmltext += Tor_menu[reply_0 + 20] + Tor_menu[reply_1 + 20] + Tor_menu[reply_2 + 20] + Tor_menu[reply_3 + 20] + Tor_menu[reply_4 + 20]
|
||||
htmltext += "</body></html>"
|
||||
elif event == "30745-10.htm" :
|
||||
st.takeItems(Leaf_Pin,1)
|
||||
for item in range(3727,3811) :
|
||||
st.takeItems(item,-1)
|
||||
st.set("hasTask","0")
|
||||
elif event == "30746-03.htm" :
|
||||
if not st.getQuestItemsCount(Cyb_Req) :
|
||||
st.giveItems(Cyb_Req,1)
|
||||
if not st.getQuestItemsCount(3471) :
|
||||
st.giveItems(3471,1)
|
||||
if not st.getQuestItemsCount(3698) :
|
||||
st.giveItems(3698,1)
|
||||
st.takeItems(6708,-1)
|
||||
elif event == "30746-08.htm" :
|
||||
for item in Cyb_Rewards.keys() :
|
||||
if st.getQuestItemsCount(item) :
|
||||
st.takeItems(item,-1)
|
||||
st.giveItems(57,Cyb_Rewards[item])
|
||||
break
|
||||
elif event == "30746-12.htm" :
|
||||
st.takeItems(3698,-1)
|
||||
st.takeItems(3697,-1)
|
||||
st.takeItems(3471,-1)
|
||||
elif event.isdigit() :
|
||||
event = int(event)
|
||||
st.giveItems(event,1)
|
||||
st.set("hasTask","1")
|
||||
event = event - 3712
|
||||
htmltext = "30745-" + str(event) + ".htm"
|
||||
return htmltext
|
||||
|
||||
def onTalk (self,npc,player):
|
||||
htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
|
||||
st = player.getQuestState(qn)
|
||||
if not st : return htmltext
|
||||
npcId = npc.getNpcId()
|
||||
cond = st.getInt("cond")
|
||||
id = st.getState()
|
||||
level = player.getLevel()
|
||||
bracelet_1 = st.getQuestItemsCount(License_1)
|
||||
bracelet_2 = st.getQuestItemsCount(License_2)
|
||||
if npcId == Grey :
|
||||
if id == State.CREATED :
|
||||
if level >= 35 :
|
||||
htmltext = "02"
|
||||
else :
|
||||
htmltext = "01"
|
||||
elif cond == 1 :
|
||||
if HasItems(st,3) :
|
||||
htmltext = "12"
|
||||
st.set("cond","2")
|
||||
for item in range(3709,3717) :
|
||||
st.takeItems(item,-1)
|
||||
st.takeItems(Test_Instructions_1,-1)
|
||||
st.giveItems(License_1,1)
|
||||
else :
|
||||
htmltext = "11"
|
||||
elif cond == 2 :
|
||||
instructions = st.getQuestItemsCount(Test_Instructions_2)
|
||||
if level < 45 and bracelet_1 :
|
||||
htmltext = "13"
|
||||
elif level >= 45 and bracelet_1 and not instructions :
|
||||
htmltext = "16"
|
||||
elif instructions :
|
||||
if HasItems(st,3) :
|
||||
htmltext = "28"
|
||||
st.set("cond","3")
|
||||
for item in range(3718,3727) :
|
||||
st.takeItems(item,-1)
|
||||
st.takeItems(Test_Instructions_2,-1)
|
||||
st.takeItems(License_1,-1)
|
||||
st.giveItems(License_2,1)
|
||||
else :
|
||||
htmltext = "27"
|
||||
elif cond == 3 :
|
||||
htmltext = "29"
|
||||
elif npcId == Tor :
|
||||
if not bracelet_1 and not bracelet_2 :
|
||||
htmltext = "01"
|
||||
elif bracelet_1 :
|
||||
req = HasRequestCompleted(st,1)
|
||||
if not st.getInt("hasTask") :
|
||||
if level >= 45 :
|
||||
if st.getQuestItemsCount(Test_Instructions_2) :
|
||||
htmltext = "04"
|
||||
else :
|
||||
htmltext = "05"
|
||||
else :
|
||||
htmltext = "02"
|
||||
elif req :
|
||||
htmltext = "12"
|
||||
item,quantity,reward = Tor_Rewards_1[req]
|
||||
st.giveItems(Leaf_Pin,1)
|
||||
st.giveItems(57,reward)
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
st.set("hasTask","0")
|
||||
st.takeItems(req,-1)
|
||||
st.takeItems(item,-1)
|
||||
else :
|
||||
htmltext = "08"
|
||||
elif bracelet_2 :
|
||||
req = HasRequestCompleted(st,2)
|
||||
if not st.getInt("hasTask") :
|
||||
htmltext = "06"
|
||||
elif req :
|
||||
htmltext = "13"
|
||||
item,quantity,reward = Tor_Rewards_2[req]
|
||||
st.giveItems(Leaf_Pin,1)
|
||||
st.giveItems(57,reward)
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
st.set("hasTask","0")
|
||||
st.takeItems(req,-1)
|
||||
st.takeItems(item,-1)
|
||||
else :
|
||||
htmltext = "08"
|
||||
elif npcId == Cybellin :
|
||||
if not bracelet_1 and not bracelet_2 :
|
||||
htmltext = "01"
|
||||
elif bracelet_1 or bracelet_2 :
|
||||
if not st.getQuestItemsCount(Cyb_Req) :
|
||||
htmltext = "02"
|
||||
elif st.getQuestItemsCount(3698) :
|
||||
htmltext = "05"
|
||||
elif st.getQuestItemsCount(3707) :
|
||||
htmltext = "07"
|
||||
st.takeItems(3707,-1)
|
||||
st.giveItems(57,Cyb_Rewards[3707])
|
||||
elif st.getQuestItemsCount(3708) :
|
||||
htmltext = "11"
|
||||
st.takeItems(3708,-1)
|
||||
elif st.getQuestItemsCount(3699) or st.getQuestItemsCount(3700) or st.getQuestItemsCount(3701) or st.getQuestItemsCount(3702) or \
|
||||
st.getQuestItemsCount(3703) or st.getQuestItemsCount(3704) or st.getQuestItemsCount(3705) or st.getQuestItemsCount(3706) :
|
||||
htmltext = "06"
|
||||
else :
|
||||
htmltext = "10"
|
||||
if htmltext.isdigit() :
|
||||
htmltext = str(npcId) + "-" + htmltext + ".htm"
|
||||
return htmltext
|
||||
|
||||
def onKill(self,npc,player,isPet):
|
||||
st = player.getQuestState(qn)
|
||||
if not st : return
|
||||
npcId = npc.getNpcId()
|
||||
cond = st.getInt("cond")
|
||||
rand = Rnd.get(100)
|
||||
instructions_1 = st.getQuestItemsCount(Test_Instructions_1)
|
||||
instructions_2 = st.getQuestItemsCount(Test_Instructions_2)
|
||||
if cond == 1 and instructions_1 :
|
||||
if npcId in Level_1.keys() :
|
||||
item,amount,chance = Level_1[npcId]
|
||||
if rand < chance and st.getQuestItemsCount(item) < amount :
|
||||
st.giveItems(item,1)
|
||||
if st.getQuestItemsCount(item) >= amount :
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
else :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
elif npcId == Breka_Orc_Warrior and rand < 10 :
|
||||
if st.getQuestItemsCount(3711) == 0 :
|
||||
st.addSpawn(27140,300000)
|
||||
elif st.getQuestItemsCount(3712) == 0 :
|
||||
st.addSpawn(27141,300000)
|
||||
elif st.getQuestItemsCount(3713) == 0 :
|
||||
st.addSpawn(27142,300000)
|
||||
elif npcId == Windsus and not st.getQuestItemsCount(3714) and rand < 10 :
|
||||
st.addSpawn(27143,300000)
|
||||
elif cond == 2 :
|
||||
if instructions_2 :
|
||||
if npcId in Level_2.keys() :
|
||||
item,amount,chance = Level_2[npcId]
|
||||
if rand < chance and st.getQuestItemsCount(item) < amount :
|
||||
st.giveItems(item,1)
|
||||
if st.getQuestItemsCount(item) >= amount :
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
else :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
elif npcId == Tarlk_Bugbear_Warrior and rand < 10 :
|
||||
if st.getQuestItemsCount(3722) == 0 :
|
||||
st.addSpawn(27144,300000)
|
||||
elif st.getQuestItemsCount(3723) == 0 :
|
||||
st.addSpawn(27145,300000)
|
||||
elif st.getQuestItemsCount(3724) == 0 :
|
||||
st.addSpawn(27146,300000)
|
||||
elif st.getQuestItemsCount(3725) == 0 :
|
||||
st.addSpawn(27147,300000)
|
||||
elif st.getQuestItemsCount(3726) == 0 :
|
||||
st.addSpawn(27148,300000)
|
||||
elif npcId in Tor_requests_1.keys() :
|
||||
req,give,giveAmount,amount,chance = Tor_requests_1[npcId]
|
||||
if rand < chance and st.getQuestItemsCount(req) and st.getQuestItemsCount(give) < amount :
|
||||
st.giveItems(give,eval(giveAmount))
|
||||
if st.getQuestItemsCount(give) >= amount :
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
else :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
if npcId in [27160,27164] and Rnd.get(2) :
|
||||
st.addSpawn(27150,300000)
|
||||
st.addSpawn(27150,300000)
|
||||
AutoChat(npc,"We will destroy the legacy of the ancient empire!")
|
||||
elif cond == 3 :
|
||||
if npcId in Tor_requests_2.keys() :
|
||||
req,give,amount,chance = Tor_requests_2[npcId]
|
||||
if st.getQuestItemsCount(req) and st.getQuestItemsCount(give) < amount :
|
||||
if rand < chance :
|
||||
st.giveItems(give,1)
|
||||
if st.getQuestItemsCount(give) >= amount :
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
else :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
if npcId == 27162 and Rnd.get(2) :
|
||||
st.addSpawn(27150,300000)
|
||||
st.addSpawn(27150,300000)
|
||||
AutoChat(npc,"We will destroy the legacy of the ancient empire!")
|
||||
if npcId in [20661,20662,20589,20590,20639] and not Rnd.get(20) :
|
||||
st.addSpawn(Gremlin_Filcher,300000)
|
||||
AutoChat(npc,"Get out! The jewels are mine!")
|
||||
elif npcId == Gremlin_Filcher :
|
||||
req = 0
|
||||
for item in Filcher.keys() :
|
||||
if st.getQuestItemsCount(item) :
|
||||
req = item
|
||||
break
|
||||
if req :
|
||||
item,amount,bonus = Filcher[req]
|
||||
if st.getQuestItemsCount(item) < amount :
|
||||
st.giveItems(item,bonus)
|
||||
if st.getQuestItemsCount(item) >= amount :
|
||||
st.playSound("ItemSound.quest_middle")
|
||||
else :
|
||||
st.playSound("ItemSound.quest_itemget")
|
||||
AutoChat(npc,"What!")
|
||||
if npcId in Tor_requests_tospawn.keys() and rand < 10:
|
||||
it1,it2,id = Tor_requests_tospawn[npcId]
|
||||
if st.getQuestItemsCount(it1) and not st.getQuestItemsCount(it2) :
|
||||
st.addSpawn(id,300000)
|
||||
if npcId in Lizardmen and player.getActiveWeaponItem() and player.getActiveWeaponItem().getItemId() == Cyb_Dagger and st.getQuestItemsCount(Cyb_Req) and not st.getQuestItemsCount(3708):
|
||||
if Rnd.get(2) :
|
||||
if cond == 2 or cond == 3 :
|
||||
for item in range(3698,3707) :
|
||||
if st.getQuestItemsCount(item) :
|
||||
st.giveItems(item+1,1)
|
||||
st.takeItems(item,-1)
|
||||
if item >= 3703 :
|
||||
st.playSound("ItemSound.quest_jackpot")
|
||||
break
|
||||
else :
|
||||
for item in range(3698,3707) :
|
||||
st.takeItems(item,-1)
|
||||
st.giveItems(3708,1)
|
||||
return
|
||||
|
||||
QUEST = Quest(335,qn,"The Song of the Hunter")
|
||||
|
||||
QUEST.addStartNpc(Grey)
|
||||
QUEST.addTalkId(Grey)
|
||||
QUEST.addTalkId(Tor)
|
||||
QUEST.addTalkId(Cybellin)
|
||||
|
||||
npcs = []
|
||||
for npc in Level_1.keys() + Level_2.keys() + Tor_requests_1.keys() + Tor_requests_2.keys() + Tor_requests_tospawn.keys() + Mobs :
|
||||
if npc not in npcs :
|
||||
QUEST.addKillId(npc)
|
||||
npcs.append(npc)
|
||||
del npcs
|
@ -1,8 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
I operate this grocery store and my hobby has reached this point... Wait here a moment...<br>
|
||||
Ah, right. Here it is.<br>
|
||||
OK, and here are the coins that I have... I am collecting<font color="LEVEL"> blood succubus, blood basilisk, silver dryad, silver undine, gold giant and gold wyrms</font>. Would you like to choose from things that I have?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-02.htm">Blood dragon</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-03.htm">Silver dragon</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-04.htm">Gold dragon</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-05.htm">Beleth's silver dragon</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Ah, you mean the blood dragon. Then, how shall we do the trade? I can trade 1 blood dragon for 5 blood basilisks and 5 blood succubus or I can exchange it for you at a slightly better rate through a game that is popular with the collectors club.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30078_3477">Trade at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3477_2">Play game. [Guess correctly in two tries - 3 blood basilisks]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3477_3">Play game. [Guess correctly in three tries - 7 blood basilisks]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3477_4">Play game. [Guess correctly in four tries - 9 blood basilisks]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-53.htm">Play game.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Ah, you mean the silver dragon. Then, how shall we do the trade? I can trade 1 silver dragon for 5 silver dryad and 5 silver undines or I can exchange it for you at a slightly better rate through a game that is popular with the collectors club.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30078_3493">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3493_2">Play game. [Guess correctly in two tries - 3 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3493_3">Play game. [Guess correctly in three tries - 7 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3493_4">Play game. [Guess correctly in four tries - 9 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-53.htm">Play game.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Ah, you mean the gold dragon. Then, how shall we do the trade? I can trade one gold dragon for 5 gold wyrms and 5 gold giants or I can exchange it for you at a slightly better rate through a game that is popular with the collectors club.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30078_3481">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3481_2">Play game. [Guess correctly in two tries - 3 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3481_3">Play game. [Guess correctly in three tries - 7 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3481_4">Play game. [Guess correctly in four tries - 9 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-53.htm">Listen to game explanation.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Ah, you mean the beleth's silver dragon. Then, how shall we do the trade? I can trade 1 beleth's silver dragon for 10 silver dryads and 10 silver undines or I can exchange it for you at a slightly better rate through a game that is popular with the collectors club.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30078_3496">Trade at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3496_2">Play game. [Guess correctly in two tries - 3 silver fairies, 3 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3496_3">Play game. [Guess correctly in three tries - 7 silver fairies, 7 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30078_3496_4">Play game. [Guess correctly in four tries - 9 silver fairies, 9 silver dryads]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-53.htm">Play game.</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
OK, that's good. How many do you want to exchange?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30078_%itemid%_1">Exchange 1.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30078_%itemid%_5">Exchange 5.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30078_%itemid%_10">Exchange 10.</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
OK, take this. It's the coin you requested.</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
I'll take a look... One, two... Huh? There aren't enough coins.</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
I like this game. And this is my favorite moment of the game. OK, OK, OK...<br>
|
||||
What's the color of the first coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _13">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _15">Blood</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
What's the color of the second coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _16">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _17">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _18">Blood</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
What's the color of the third coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _19">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _20">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _21">Blood</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Oh, no. What happened? What special method did you use? I absolutely didn't think you'd be able to get it right... Darn!</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
I win! Oh, that's too bad for you, though. The answer was %first% - %second% - %third%.</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
OK, one! You got one right. Then, take your next chance!<br>
|
||||
What's the color of the first coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _13">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _15">Blood</a></body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
OK, two! You got two right. Then, take your next chance!<br>
|
||||
What's the color of the first coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _13">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _15">Blood</a></body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
Oh, my! They're all wrong! OK, take a deep breath and try again!<br>
|
||||
What's the color of the first coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _13">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _15">Blood</a></body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Grocer Pano:<br>
|
||||
You already know, right? You've got to guess the sequence of the coins that I arrange within the number of chances that we determine in advance. Hmm... I don't need to explain in any more detail, do I? If you want to know more, please go ask a level 3 member...<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30078-02.htm">Go back to the beginning.</a></body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Please wait a moment. I definitely stored it here somewhere...<br>
|
||||
Ah, right. Here it is.<br>
|
||||
OK, and here are the coins that I have... I want<font color="LEVEL"> blood succubus, blood basilisk, silver dryad, silver undine, gold giant and gold wyrms</font>. Would you like to choose?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-02.htm">Blood dragon.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-03.htm">Silver dragon.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-04.htm">Gold dragon.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-05.htm">Beleth's gold dragon.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Ah, the blood dragon. How shall we do the trade? I can trade one blood dragon for 5 blood succubuses and 5 blood basilisks or I can exchange it for you at a slightly better rate through a game that you know well.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30092_3477">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3477_2">Play game. [Guess correctly in two tries - 3 blood succubus]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3477_3">Play game. [Guess correctly in three tries - 7 blood succubus]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3477_4">Play game. [Guess correctly in four tries - 9 blood succubus]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-53.htm">Listen to game explanation.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Ah, the silver dragon. How shall we do the trade? I can trade one silver dragon for 5 silver dryad and 5 silver undines or I can exchange it for you at a slightly better rate through a game that you know well.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30092_3493">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3493_2">Play game. [Guess correctly in two tries - 3 silver undines]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3493_3">Play game. [Guess correctly in three tries - 7 silver undines]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3493_4">Play game. [Guess correctly in four tries - 9 silver undines]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-53.htm">Listen to game explanation.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Ah, the gold dragon. How shall we do the trade? I can trade one gold dragon for 5 gold wyrms and 5 gold giants or I can exchange it for you at a slightly better rate through a game that you know well.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30092_3481">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3481_2">Play game. [Guess correctly in two tries - 3 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3481_3">Play game. [Guess correctly in three tries - 7 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3481_4">Play game. [Guess correctly in four tries - 9 gold wyrms]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-53.htm">Listen to game explanation.</a></body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Ah, the beleth's gold dragon. How shall we do the trade? I can trade one beleth's gold dragon for 10 gold wyrms and 10 gold giants or I can exchange it for you at a slightly better rate through a game that you know well.<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Li_30092_3487">Exchange at set ratio.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3487_2">Play game. [Guess correctly in two tries - 3 gold wyrm, 3 gold giants]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3487_3">Play game. [Guess correctly in three tries - 7 gold wyrm, 7 gold giants]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ga_30092_3487_4">Play game. [Guess correctly in four tries - 9 gold wyrm, 9 gold giants]</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic 30092-53.htm">Listen to game explanation.</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Yes. How many do you want to exchange?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30092_%itemid%_1">Exchange 1.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30092_%itemid%_5">Exchange 5.</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic Ex_30092_%itemid%_10">Exchange 10.</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
I'll take a look... One, two... Um, that's right. Here it is. Take it.</body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
I'll take a look... One, two... Huh? There aren't enough coins.</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Ok, ok... Let's start.<br>
|
||||
What the color of the first coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _13">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _14">Blood</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
What's the color of the second coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _16">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _17">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _18">Blood</a></body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
What's the color of the third coin?<br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _19">Gold</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _20">Silver</a><br>
|
||||
<a action="bypass -h Quest 336_CoinOfMagic _21">Blood</a></body></html>
|
@ -1,2 +0,0 @@
|
||||
<html><body>Warehouse Keeper Collob:<br>
|
||||
Hey! That's right. Oh, oh. I lost money today.</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user