Red Solen Queen Quest
Posted: Fri Jan 06, 2012 3:32 am
I have made the first OSI like Quest.
here is the items u need
zoogi fungus
Global.js
solenquest.js
Enjoy 
here is the items u need
zoogi fungus
Code: Select all
[ZoogiFungus]
{
get=base_item
name=Zoogi Fungus
id=0x26B7
pileable=1
amount=1
decay=1
}function onDeathBlow( pKilled, pKiller )
{
var oldNumToKill = pKiller.GetTag( "SQ_NUMTOKILL" );
if( oldNumToKill && pKiller.GetTag( "SQ_IDTOKILL" ) == pKilled.id )
{
var newNumToKill = (oldNumToKill-1);
pKiller.SetTag( "SQ_NUMTOKILL", newNumToKill );
if( newNumToKill )
pKiller.SysMessage( "You have "+NumToString( newNumToKill )+" more creatures to kill." );
else
pKiller.SysMessage( "You have completed your task, return to the taskmaster for your reward." );
}
}
{
var oldNumToKill = pKiller.GetTag( "SQ_NUMTOKILL" );
if( oldNumToKill && pKiller.GetTag( "SQ_IDTOKILL" ) == pKilled.id )
{
var newNumToKill = (oldNumToKill-1);
pKiller.SetTag( "SQ_NUMTOKILL", newNumToKill );
if( newNumToKill )
pKiller.SysMessage( "You have "+NumToString( newNumToKill )+" more creatures to kill." );
else
pKiller.SysMessage( "You have completed your task, return to the taskmaster for your reward." );
}
}
function onSpeech( myString, myPlayer, myNPC, pSock )
{
if( !myNPC.InRange( myPlayer, 2 ) )
return;
var startQuest = myPlayer.GetTag( "SQ_START" );
var Speech_Array = myString.split(" ");
var i = 0, currObj = 0;
for( i = 1; i <= Speech_Array.length; i++ )
{
if( Speech_Array[currObj].match( /\bQuest\b/i ) || Speech_Array[currObj].match( /\bAdventure\b/i ) || Speech_Array[currObj].match( /\bTask\b/i ) )
{
myNPC.TurnToward( myPlayer );
if( myPlayer.GetTag( "SQ_LEVEL" ) )
{
myNPC.TextMessage( "I have already given you a task, you may request your reward when you have completed it" );
return false;
}
else
{
myPlayer.SetTag( "SQ_START", 1 );
var questGump = new Gump; // create a new gump
questGump.AddPage(0);
questGump.AddTiledGump( 50, 20, 400, 400, 2624 );
questGump.AddCheckerTrans( 50, 20, 400, 400 );
questGump.AddGump( 90, 33, 9005 );
questGump.AddXMFHTMLGumpColor( 130, 45, 270, 20, 1049010, false, false, 0x7FFF ); // Quest Offer
questGump.AddTiledGump( 130, 65, 175, 1, 9101 );
questGump.AddGump( 140, 110, 1209 );
questGump.AddXMFHTMLGumpColor( 160, 108, 250, 20, 1054146, false, false, 10000 );//name of quest darkgreen
questGump.AddXMFHTMLGumpColor( 98, 140, 312, 200, 1054060, false, true, 90000 );//quest offer lightgreen
questGump.AddRadio( 85, 350, 0x25f8, 0, 1 );
questGump.AddXMFHTMLGumpColor( 120, 356, 280, 20, 1049011, false, false, 0x7FFF ); // I accept!
questGump.AddRadio( 85, 385, 0x25f8, 0, 0 );
questGump.AddXMFHTMLGumpColor( 120, 391, 280, 20, 1049012, false, false, 0x7FFF ); // No thanks, I decline.
questGump.AddButton( 340, 390, 0xf7, 1, 0, 1 );//Okay button
questGump.AddTiledGump( 50, 29, 30, 390, 10460 );
questGump.AddTiledGump( 34, 140, 17, 279, 9263 );
questGump.AddGump( 48, 135, 10411 );
questGump.AddGump( -16, 285, 10402 );
questGump.AddGump( 0, 10, 10421 );
questGump.AddGump( 25, 0, 10420 );
questGump.AddTiledGump( 83, 15, 350, 15, 10250 );
questGump.AddGump( 34, 419, 10306 );
questGump.AddGump( 442, 419, 10304 );
questGump.AddTiledGump( 51, 419, 392, 17, 10101 );
questGump.AddTiledGump( 415, 29, 44, 390, 2605 );
questGump.AddTiledGump( 415, 29, 30, 390, 10460 );
questGump.AddGump( 425, 0, 10441 );
questGump.AddGump( 370, 50, 1417 );
questGump.AddGump( 379, 60, 0x15c9 );//quest item picture
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
}
else if( Speech_Array[currObj].match( /\bReward\b/i ) )
{
myNPC.TurnToward( myPlayer );
var taskLevel = myPlayer.GetTag( "SQ_NPCLEVEL" );
var itemLevel = myPlayer.GetTag( "SQ_LEVEL" );
if( taskLevel )
{
var numToKill = myPlayer.GetTag( "SQ_NUMTOKILL" );
if( numToKill > 0 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054066, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
else
var questGump = new Gump; // create a new gump
var numToGet = (50);
var typeToGet = CreateItemQuest( myPlayer, 1, numToGet );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054068, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
if( itemLevel )
{
var numToGet = myPlayer.GetTag( "SQ_numToGet" );
if( numToGet > 0 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054070, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
}
else
myNPC.TextMessage( "I don't give rewards I'm a farmer");
return false;
}
else if( Speech_Array[currObj].match( /\bQuite\b/i ) )
{
myNPC.TurnToward( myPlayer );
myNPC.TextMessage( "I better get back to my garden work." );
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SetTag( "SQ_numToGet", 0 );
myPlayer.SetTag( "SQ_NUMTOKILL", 0 );
myPlayer.SetTag( "SQ_IDTOGET", 0 );
myPlayer.SetTag( "SQ_LEVEL", 0 );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
myPlayer.SetTag( "SQ_IDTOKILL", 0 );
}
currObj++;
}
}
function onDropItemOnNpc( pDropper, pDroppedOn, iDropped )
{
pDroppedOn.TurnToward( pDropper );
var taskLevel = pDropper.GetTag( "SQ_LEVEL" );
if( taskLevel )
{
var numZoogiFungus = pDropper.ResourceCount( 0x26B7 );
if( numZoogiFungus >= 50)
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054073, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( pDropper); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
var goldToGive = 0;
switch( RandomNumber( 0, 2 ) )
{
case 0: goldToGive = 50; break;
case 1: goldToGive = 75; break;
case 2: goldToGive = 100; break;
}
CreateDFNItem( pDropper.socket, pDropper, "0x0EED", goldToGive, "ITEM", true );
pDropper.SoundEffect( 0x0037, false );
pDropper.SetTag( "SQ_numToGet", 0 );
pDropper.SetTag( "SQ_IDTOGET", 0 );
pDropper.SetTag( "SQ_LEVEL", 0 );
pDropper.SetTag( "SQ_NPCLEVEL", 0 );
pDropper.SetTag( "SQ_IDTOKILL", 0 );
pDropper.SetTag( "SQ_NUMTOKILL", 0 );
pDropper.UseResource( 50, 0x26B7 );
return 0;
}
else if( numZoogiFungus <= 50 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054070, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( pDropper ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return 0;
}
}
pDroppedOn.TextMessage( "I did not ask for this item." );
return 0;
}
function onGumpPress(pSock, myButtonID, gumpData )
{
var myPlayer = pSock.currentChar;
switch( myButtonID )
{
case 0: // abort and do nothing if gump is closed with right click
break;
case 1:
var OtherButton = gumpData.getButton(0);
switch( OtherButton )
{
case 0:
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SysMessage("You have declined the Quest.");
break; //decline
case 1:
var questGump = new Gump; // create a new gump
var numToKill = (5);
var typeToKill = CreateNpcQuest( myPlayer, 1, numToKill );
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054061, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
break;// Accept
}
break;
case 2: // Resign
myPlayer.SetTag( "SQ_numToGet", 0 );
myPlayer.SetTag( "SQ_IDTOGET", 0 );
myPlayer.SetTag( "SQ_LEVEL", 0 );
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
myPlayer.SetTag( "SQ_IDTOKILL", 0 );
myPlayer.SetTag( "SQ_NUMTOKILL", 0 );
myPlayer.SysMessage("Farmer Jones goes back to his garden work.");
break;
case 3: // okay and close
break;
}
}
function CreateItemQuest( myPlayer, questLevel, numToGet )
{
var typeToGet = GetItemType( myPlayer, questLevel );
myPlayer.SetTag( "SQ_numToGet", numToGet );
myPlayer.SetTag( "SQ_LEVEL", questLevel );
myPlayer.SetTag( "SQ_START", 0 );
return typeToGet;
}
function CreateNpcQuest( myPlayer, npcLevel, numToKill )
{
var typeToKill = GetMonsterType( myPlayer, npcLevel );
myPlayer.SetTag( "SQ_NUMTOKILL", numToKill );
myPlayer.SetTag( "SQ_NPCLEVEL", npcLevel );
myPlayer.SetTag( "SQ_START", 0 );
return typeToKill;
}
function GetItemType( myPlayer, questLevel )
{
var retVal = "";
switch( questLevel )
{
case 1:
switch( RandomNumber( 0, 1 ) )
{
case 0:
myPlayer.SetTag( "SQ_IDTOGET", 0x26B7 );
retVal = "Zoogi Fungus";
break;
case 1:
myPlayer.SetTag( "SQ_IDTOGET", 0x26B7 );
retVal = "Zoogi Fungus";
break;
}
break;
}
return retVal;
}
function GetMonsterType( myPlayer, npcLevel )
{
var retVal = "";
switch( npcLevel )
{
case 1:
switch( RandomNumber( 0, 1 ) )
{
case 0:
myPlayer.SetTag( "SQ_IDTOKILL", 0x0327 );
retVal = "a red solen queen";
break;
case 1:
myPlayer.SetTag( "SQ_IDTOKILL", 0x0327 );
retVal = "a red solen queen";
break;
}
break;
}
return retVal;
}
{
if( !myNPC.InRange( myPlayer, 2 ) )
return;
var startQuest = myPlayer.GetTag( "SQ_START" );
var Speech_Array = myString.split(" ");
var i = 0, currObj = 0;
for( i = 1; i <= Speech_Array.length; i++ )
{
if( Speech_Array[currObj].match( /\bQuest\b/i ) || Speech_Array[currObj].match( /\bAdventure\b/i ) || Speech_Array[currObj].match( /\bTask\b/i ) )
{
myNPC.TurnToward( myPlayer );
if( myPlayer.GetTag( "SQ_LEVEL" ) )
{
myNPC.TextMessage( "I have already given you a task, you may request your reward when you have completed it" );
return false;
}
else
{
myPlayer.SetTag( "SQ_START", 1 );
var questGump = new Gump; // create a new gump
questGump.AddPage(0);
questGump.AddTiledGump( 50, 20, 400, 400, 2624 );
questGump.AddCheckerTrans( 50, 20, 400, 400 );
questGump.AddGump( 90, 33, 9005 );
questGump.AddXMFHTMLGumpColor( 130, 45, 270, 20, 1049010, false, false, 0x7FFF ); // Quest Offer
questGump.AddTiledGump( 130, 65, 175, 1, 9101 );
questGump.AddGump( 140, 110, 1209 );
questGump.AddXMFHTMLGumpColor( 160, 108, 250, 20, 1054146, false, false, 10000 );//name of quest darkgreen
questGump.AddXMFHTMLGumpColor( 98, 140, 312, 200, 1054060, false, true, 90000 );//quest offer lightgreen
questGump.AddRadio( 85, 350, 0x25f8, 0, 1 );
questGump.AddXMFHTMLGumpColor( 120, 356, 280, 20, 1049011, false, false, 0x7FFF ); // I accept!
questGump.AddRadio( 85, 385, 0x25f8, 0, 0 );
questGump.AddXMFHTMLGumpColor( 120, 391, 280, 20, 1049012, false, false, 0x7FFF ); // No thanks, I decline.
questGump.AddButton( 340, 390, 0xf7, 1, 0, 1 );//Okay button
questGump.AddTiledGump( 50, 29, 30, 390, 10460 );
questGump.AddTiledGump( 34, 140, 17, 279, 9263 );
questGump.AddGump( 48, 135, 10411 );
questGump.AddGump( -16, 285, 10402 );
questGump.AddGump( 0, 10, 10421 );
questGump.AddGump( 25, 0, 10420 );
questGump.AddTiledGump( 83, 15, 350, 15, 10250 );
questGump.AddGump( 34, 419, 10306 );
questGump.AddGump( 442, 419, 10304 );
questGump.AddTiledGump( 51, 419, 392, 17, 10101 );
questGump.AddTiledGump( 415, 29, 44, 390, 2605 );
questGump.AddTiledGump( 415, 29, 30, 390, 10460 );
questGump.AddGump( 425, 0, 10441 );
questGump.AddGump( 370, 50, 1417 );
questGump.AddGump( 379, 60, 0x15c9 );//quest item picture
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
}
else if( Speech_Array[currObj].match( /\bReward\b/i ) )
{
myNPC.TurnToward( myPlayer );
var taskLevel = myPlayer.GetTag( "SQ_NPCLEVEL" );
var itemLevel = myPlayer.GetTag( "SQ_LEVEL" );
if( taskLevel )
{
var numToKill = myPlayer.GetTag( "SQ_NUMTOKILL" );
if( numToKill > 0 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054066, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
else
var questGump = new Gump; // create a new gump
var numToGet = (50);
var typeToGet = CreateItemQuest( myPlayer, 1, numToGet );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054068, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
if( itemLevel )
{
var numToGet = myPlayer.GetTag( "SQ_numToGet" );
if( numToGet > 0 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054070, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
}
}
else
myNPC.TextMessage( "I don't give rewards I'm a farmer");
return false;
}
else if( Speech_Array[currObj].match( /\bQuite\b/i ) )
{
myNPC.TurnToward( myPlayer );
myNPC.TextMessage( "I better get back to my garden work." );
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SetTag( "SQ_numToGet", 0 );
myPlayer.SetTag( "SQ_NUMTOKILL", 0 );
myPlayer.SetTag( "SQ_IDTOGET", 0 );
myPlayer.SetTag( "SQ_LEVEL", 0 );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
myPlayer.SetTag( "SQ_IDTOKILL", 0 );
}
currObj++;
}
}
function onDropItemOnNpc( pDropper, pDroppedOn, iDropped )
{
pDroppedOn.TurnToward( pDropper );
var taskLevel = pDropper.GetTag( "SQ_LEVEL" );
if( taskLevel )
{
var numZoogiFungus = pDropper.ResourceCount( 0x26B7 );
if( numZoogiFungus >= 50)
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054073, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( pDropper); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
var goldToGive = 0;
switch( RandomNumber( 0, 2 ) )
{
case 0: goldToGive = 50; break;
case 1: goldToGive = 75; break;
case 2: goldToGive = 100; break;
}
CreateDFNItem( pDropper.socket, pDropper, "0x0EED", goldToGive, "ITEM", true );
pDropper.SoundEffect( 0x0037, false );
pDropper.SetTag( "SQ_numToGet", 0 );
pDropper.SetTag( "SQ_IDTOGET", 0 );
pDropper.SetTag( "SQ_LEVEL", 0 );
pDropper.SetTag( "SQ_NPCLEVEL", 0 );
pDropper.SetTag( "SQ_IDTOKILL", 0 );
pDropper.SetTag( "SQ_NUMTOKILL", 0 );
pDropper.UseResource( 50, 0x26B7 );
return 0;
}
else if( numZoogiFungus <= 50 )
{
var questGump = new Gump; // create a new gump
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054070, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( pDropper ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return 0;
}
}
pDroppedOn.TextMessage( "I did not ask for this item." );
return 0;
}
function onGumpPress(pSock, myButtonID, gumpData )
{
var myPlayer = pSock.currentChar;
switch( myButtonID )
{
case 0: // abort and do nothing if gump is closed with right click
break;
case 1:
var OtherButton = gumpData.getButton(0);
switch( OtherButton )
{
case 0:
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SysMessage("You have declined the Quest.");
break; //decline
case 1:
var questGump = new Gump; // create a new gump
var numToKill = (5);
var typeToKill = CreateNpcQuest( myPlayer, 1, numToKill );
questGump.AddPage( 0 );
questGump.AddGump( 349, 10, 9392 );
questGump.AddTiledGump( 349, 130, 100, 120, 9395 );
questGump.AddTiledGump( 149, 10, 200, 140, 9391 );
questGump.AddTiledGump( 149, 250, 200, 140, 9397 );
questGump.AddGump( 349, 250, 9398 );
questGump.AddGump( 35, 10, 9390 );
questGump.AddTiledGump( 35, 150, 120, 100, 9393 );
questGump.AddGump( 35, 250, 9396 );
questGump.AddXMFHTMLGumpColor( 110, 60, 200, 20, 1049069, false, false, 0x7FFF ); // <STRONG>Conversation Event</STRONG>
questGump.AddXMFHTMLGumpColor( 70, 110, 365, 220, 1054061, false, true, 90000 );//quest convo
questGump.AddGump( 65, 14, 10102 );
questGump.AddTiledGump( 81, 14, 349, 17, 10101 );
questGump.AddGump( 426, 14, 10104 );
questGump.AddTiledGump( 55, 40, 388, 323, 2624 );
questGump.AddCheckerTrans( 55, 40, 388, 323 );
questGump.AddTiledGump( 75, 90, 200, 1, 9101 );
questGump.AddGump( 75, 58, 9781 );
questGump.AddGump( 380, 45, 223 );
questGump.AddButton( 220, 335, 0x909, 1, 0, 3 );//okay
questGump.AddGump( 0, 0, 10440 );
questGump.Send( myPlayer ); // send this gump to client now
questGump.Free(); // clear this gump from uox-memory
return false;
break;// Accept
}
break;
case 2: // Resign
myPlayer.SetTag( "SQ_numToGet", 0 );
myPlayer.SetTag( "SQ_IDTOGET", 0 );
myPlayer.SetTag( "SQ_LEVEL", 0 );
myPlayer.SetTag( "SQ_START", 0 );
myPlayer.SetTag( "SQ_NPCLEVEL", 0 );
myPlayer.SetTag( "SQ_IDTOKILL", 0 );
myPlayer.SetTag( "SQ_NUMTOKILL", 0 );
myPlayer.SysMessage("Farmer Jones goes back to his garden work.");
break;
case 3: // okay and close
break;
}
}
function CreateItemQuest( myPlayer, questLevel, numToGet )
{
var typeToGet = GetItemType( myPlayer, questLevel );
myPlayer.SetTag( "SQ_numToGet", numToGet );
myPlayer.SetTag( "SQ_LEVEL", questLevel );
myPlayer.SetTag( "SQ_START", 0 );
return typeToGet;
}
function CreateNpcQuest( myPlayer, npcLevel, numToKill )
{
var typeToKill = GetMonsterType( myPlayer, npcLevel );
myPlayer.SetTag( "SQ_NUMTOKILL", numToKill );
myPlayer.SetTag( "SQ_NPCLEVEL", npcLevel );
myPlayer.SetTag( "SQ_START", 0 );
return typeToKill;
}
function GetItemType( myPlayer, questLevel )
{
var retVal = "";
switch( questLevel )
{
case 1:
switch( RandomNumber( 0, 1 ) )
{
case 0:
myPlayer.SetTag( "SQ_IDTOGET", 0x26B7 );
retVal = "Zoogi Fungus";
break;
case 1:
myPlayer.SetTag( "SQ_IDTOGET", 0x26B7 );
retVal = "Zoogi Fungus";
break;
}
break;
}
return retVal;
}
function GetMonsterType( myPlayer, npcLevel )
{
var retVal = "";
switch( npcLevel )
{
case 1:
switch( RandomNumber( 0, 1 ) )
{
case 0:
myPlayer.SetTag( "SQ_IDTOKILL", 0x0327 );
retVal = "a red solen queen";
break;
case 1:
myPlayer.SetTag( "SQ_IDTOKILL", 0x0327 );
retVal = "a red solen queen";
break;
}
break;
}
return retVal;
}