Anasayfa
UO Sunucular
Forumlar
Profilim
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;
}

UO-Dev SPONSOR

UO-Dev SPONSOR

Henüz yorum yapılmamış. Yorum yazabilmek için giriş yapmanız gerekir.

Üyelerin oylama ortalaması (10 dışında) :

Henüz Oylanmamış

Oylar: 0