var NPCPause = 6000;
var questNumber = 2; //Is the number of quest
var questStatus = "2"; //changes the postion of the number
var QuestStory = "Help Help, those nasty lizard-men stole all of my treasures I have worked so hard to obtain. Will you please help me recover them? I will pay you great deal of gold and give you this pick-axe that has special powers for miners.";
var AcceptingStory = "I'm grateful for such an adventurer to help me. You can find them nasty lizard-men Inside Despise. Just kill them until you have collected 50 uncut ruby gems. Then return to me for your reward.";
var QuiteMsg = "I'll find some one else to help me recover my treasures!";
var DropRewardMsg = "Thank you for recovering my ruby's here is your pickaxe and gold as promised.";
var QuestCompletedMsg = "You've already completed this quest!";
var UncompletedQuestRewardMsg = "I have already given you a quest, you may request your reward when you have completed it";
function onCharDoubleClick( pUser, targChar )
{
pUser.tempObj = targChar;
var questTrackString = "";
var tempString = pUser.GetTag( "QuestTracker" );
questTrackString2 = tempString.substr(questNumber-1, 1); // syntax: substr( stringPosition, length )
if( !targChar.InRange( pUser, 4 ) )
{
pUser.SysMessage( "Not close enough" );
return false;
}
if( questTrackString2 == "2" )
{
targChar.TextMessage( QuestCompletedMsg );
return false;
}
if( pUser.GetTag( "LQ_LEVEL" ) )
{
targChar.TextMessage( UncompletedQuestRewardMsg );
return false;
}
else
targChar.SetTimer( 11, NPCPause );
pUser.SetTag( "LQ_START", 1 );
var QuestGump = new Gump;
QuestGump.AddPage(0);
QuestGump.AddTiledGump(54, 33, 369, 400, 2624);
QuestGump.AddCheckerTrans(54, 33, 369, 400);
QuestGump.AddTiledGump(416, 39, 44, 389, 203);
QuestGump.AddGump(97, 49, 9005);
QuestGump.AddTiledGump(58, 39, 29, 390, 10460);
QuestGump.AddTiledGump(412, 37, 31, 389, 10460);
QuestGump.AddText(140, 60, 0x34, "Lizard-Men Quest");
QuestGump.AddHTMLGump(107, 140, 300, 230, true, false, QuestStory);
QuestGump.AddGump(430, 9, 10441);
QuestGump.AddTiledGump(40, 38, 17, 391, 9263);
QuestGump.AddGump(6, 25, 10421);
QuestGump.AddGump(34, 12, 10420);
QuestGump.AddTiledGump(94, 25, 342, 15, 10304);
QuestGump.AddTiledGump(40, 427, 415, 16, 10304);
QuestGump.AddGump(-10, 314, 10402);
QuestGump.AddGump(56, 150, 10411);
QuestGump.AddGump(155, 120, 2103);
QuestGump.AddGump(136, 84, 96);
QuestGump.AddText( 135, 390, 0x34, "Accept" );
QuestGump.AddText( 320, 390, 0x34, "Cancel" );
QuestGump.AddButton( 280, 390, 0x0fa5, 1, 0, 0 ); // cancel
QuestGump.AddButton( 100, 390, 0x0fa5, 1, 0, 1 ); // accept
QuestGump.Send( pUser );
QuestGump.Free();
return false;
}
function onSpeech( myString, myPlayer, myNPC, pSock )
{
//myPlayer.tempObj = myNPC;
if( !myNPC.InRange( myPlayer, 2 ) )
return;
var startQuest = myPlayer.GetTag( "LQ_START" );
var Speech_Array = myString.split(" ");
var i = 0, currObj = 0;
for( i = 1; i <= Speech_Array.length; i++ )
{
if( Speech_Array[currObj].match( /\bHail\b/i ) || Speech_Array[currObj].match( /\bHi\b/i ) || Speech_Array[currObj].match( /\bHello\b/i ) )
{
myNPC.TurnToward( myPlayer );
myNPC.TextMessage( "Hail "+myPlayer.name+". You seem like a brave sort, I may have a quest for you." );
}
else if( Speech_Array[currObj].match( /\bQuest\b/i ) || Speech_Array[currObj].match( /\bAdventure\b/i ) || Speech_Array[currObj].match( /\bTask\b/i ) )
{
var questTrackString = "";
var tempString = myPlayer.GetTag( "QuestTracker" );
questTrackString2 = tempString.substr(questNumber-1, 1); // syntax: substr( stringPosition, length )
myPlayer.TextMessage( "QuestTracker string2: "+ questTrackString2);
myNPC.TurnToward( myPlayer );
if( questTrackString2 == "2" )
{
myNPC.TextMessage( QuestCompletedMsg );
return false;
}
else
if( myPlayer.GetTag( "LQ_LEVEL" ) )
myNPC.TextMessage( UncompletedQuestRewardMsg );
else
{
myNPC.SetTimer( 11, NPCPause );
myPlayer.SetTag( "LQ_START", 1 );
var QuestGump = new Gump; // create a new gump
QuestGump.AddPage(0);
QuestGump.AddTiledGump(54, 33, 369, 400, 2624);
QuestGump.AddCheckerTrans(54, 33, 369, 400);
QuestGump.AddTiledGump(416, 39, 44, 389, 203);
QuestGump.AddGump(97, 49, 9005);
QuestGump.AddTiledGump(58, 39, 29, 390, 10460);
QuestGump.AddTiledGump(412, 37, 31, 389, 10460);
QuestGump.AddText(140, 60, 0x34, "Lizard-Men Quest");
QuestGump.AddHTMLGump(107, 140, 300, 230, true, false, QuestStory);
QuestGump.AddGump(430, 9, 10441);
QuestGump.AddTiledGump(40, 38, 17, 391, 9263);
QuestGump.AddGump(6, 25, 10421);
QuestGump.AddGump(34, 12, 10420);
QuestGump.AddTiledGump(94, 25, 342, 15, 10304);
QuestGump.AddTiledGump(40, 427, 415, 16, 10304);
QuestGump.AddGump(-10, 314, 10402);
QuestGump.AddGump(56, 150, 10411);
QuestGump.AddGump(155, 120, 2103);
QuestGump.AddGump(136, 84, 96);
QuestGump.AddText( 135, 390, 0x34, "Accept" );
QuestGump.AddText( 320, 390, 0x34, "Cancel" );
QuestGump.AddButton( 280, 390, 0x0fa5, 1, 0, 0 ); // cancel
QuestGump.AddButton( 100, 390, 0x0fa5, 1, 0, 1 ); // accept
QuestGump.Send( myPlayer );
QuestGump.Free();
return false;
}
}
else if( Speech_Array[currObj].match( /\bReward\b/i ) )
{
var questTrackString = "";
var tempString = myPlayer.GetTag( "QuestTracker" );
questTrackString2 = tempString.substr(questNumber-1, 1); // syntax: substr( stringPosition, length )
myNPC.TurnToward( myPlayer );
if( questTrackString2 == "2" )
{
myNPC.TextMessage( QuestCompletedMsg );
return false;
}
else
var taskLevel = myPlayer.GetTag( "LQ_LEVEL" );
if( taskLevel )
{
var numToGet = myPlayer.GetTag( "LQ_numToGet" );
if( numToGet > 0 )
{
myNPC.TextMessage( "You Started a Quest but have not finished it.");
}
}
else
myNPC.TextMessage( "You must first accept my quest to receive a reward." );
}
else if( Speech_Array[currObj].match( /\bQuite\b/i ) )
{
myNPC.TurnToward( myPlayer );
myNPC.TextMessage( QuiteMsg );
myPlayer.SetTag( "LQ_numToGet", null );
myPlayer.SetTag( "LQ_IDTOGET", null );
myPlayer.SetTag( "LQ_LEVEL", null );
myPlayer.SetTag( "LQ_START", null );
}
currObj++;
}
}
function onGumpPress(pSock, myButtonID)
{
var myPlayer = pSock.currentChar;
//var myNPC = myPlayer.tempObj;
switch( myButtonID )
{
case 0: // no
//myNPC.Delete();
//return false;
myPlayer.SysMessage( QuiteMsg );
break;
case 1: // yes
var QuestGump = new Gump; // create a new gump
var numToGet = (1);
var typeToGet = CreateGenericQuest( myPlayer, 1, numToGet );
QuestGump.AddPage(0);
QuestGump.AddTiledGump(54, 33, 369, 400, 2624);
QuestGump.AddCheckerTrans(54, 33, 369, 400);
QuestGump.AddTiledGump(416, 39, 44, 389, 203);
QuestGump.AddGump(97, 49, 9005);
QuestGump.AddTiledGump(58, 39, 29, 390, 10460);
QuestGump.AddTiledGump(412, 37, 31, 389, 10460);
QuestGump.AddText(140, 60, 0x34, "Lizard-Men Quest");
QuestGump.AddHTMLGump(107, 140, 300, 230, true, false, AcceptingStory);
QuestGump.AddGump(430, 9, 10441);
QuestGump.AddTiledGump(40, 38, 17, 391, 9263);
QuestGump.AddGump(6, 25, 10421);
QuestGump.AddGump(34, 12, 10420);
QuestGump.AddTiledGump(94, 25, 342, 15, 10304);
QuestGump.AddTiledGump(40, 427, 415, 16, 10304);
QuestGump.AddGump(-10, 314, 10402);
QuestGump.AddGump(56, 150, 10411);
QuestGump.AddGump(155, 120, 2103);
QuestGump.AddGump(136, 84, 96);
QuestGump.AddText( 135, 390, 0x34, "Quite" );
QuestGump.AddText( 320, 390, 0x34, "Keep Going" );
QuestGump.AddButton( 280, 390, 0x0fa5, 1, 0, 3 ); // Keep Going
QuestGump.AddButton( 100, 390, 0x0fa5, 1, 0, 2 ); // Quite
QuestGump.Send( myPlayer );
QuestGump.Free();
return false;
break;
case 2: // Quite
myPlayer.SetTag( "LQ_numToGet", null );
myPlayer.SetTag( "LQ_IDTOGET", null );
myPlayer.SetTag( "LQ_LEVEL", null );
myPlayer.SetTag( "LQ_START", null );
myPlayer.SysMessage("Thanks for quiting.");
break;
case 3: // keep going
myPlayer.SysMessage("Thanks for not quiting.");
break;
}
}
function onDropItemOnNpc( pDropper, pDroppedOn, iDropped )
{
var questTrackString = "";
var tempString = pDropper.GetTag( "QuestTracker" );
var taskLevel = pDropper.GetTag( "LQ_LEVEL" );
pDroppedOn.TurnToward( pDropper );
if( taskLevel )
{
var uncutRuby = pDropper.ResourceCount( 0x0F2a);
if( uncutRuby >= 49)
{
pDroppedOn.TextMessage( DropRewardMsg );
questTrackString = tempString.substr(0, questNumber - 1) + questStatus + tempString.substr(questNumber);
var goldToGive = 0;
switch( RandomNumber( 0, 2 ) )
{
case 0: goldToGive = 200; break;
case 1: goldToGive = 400; break;
case 2: goldToGive = 600; break;
}
CreateDFNItem( pDropper.socket, pDropper, "0x0EED", goldToGive, "ITEM", true );
CreateDFNItem( pDropper.socket, pDropper, "specialpickaxe", 1, "ITEM", true );
pDropper.SoundEffect( 0x0037, false );
pDropper.SetTag( "LQ_numToGet", null );
pDropper.SetTag( "LQ_IDTOGET", null );
pDropper.SetTag( "LQ_LEVEL", null );
pDropper.SetTag( "QuestTracker", questTrackString);
pDropper.UseResource( 50, 0x0F2a );
return 0;
}
else if( uncutRuby <= 50 )
{
pDroppedOn.TextMessage( "That is not the amount I lost." );
return 0;
}
}
pDroppedOn.TextMessage( "I have no need for that." );
return 0;
}
function CreateGenericQuest( myPlayer, questLevel, numToGet )
{
var typeToGet = GetItemType( myPlayer, questLevel );
myPlayer.SetTag( "LQ_numToGet", numToGet );
myPlayer.SetTag( "LQ_LEVEL", questLevel );
myPlayer.SetTag( "LQ_START", null );
return typeToGet;
}
function GetItemType( myPlayer, questLevel )
{
var retVal = "";
switch( questLevel )
{
case 1:
switch( RandomNumber( 0, 1 ) )
{
case 0:
myPlayer.SetTag( "LQ_IDTOGET", 0x0F2a );
retVal = "uncut ruby";
break;
case 0:
myPlayer.SetTag( "LQ_IDTOGET", 0x0F2a );
retVal = "uncut ruby";
break;
}
break;
}
return retVal;
}