Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Custom

Quests::Custom Custom Quests here

Reply
 
Thread Tools Display Modes
  #1  
Old 07-20-2009, 01:53 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

Quote:
Think you can do one for spells?
Here you go. Updated to scribe spells at the current level of the player for 500 plat.

Code:
#############
#Written By : Cubber
#Quest Name: Items and Levels for a Small Server.
#Quest Zone: Bazaar
#Quest NPC: Galarono_McHalorsos
#################
sub EVENT_SAY
{
   	if($text=~/Hail/i)
      		{
         	quest::say("Hello there $name! I have in my possesion some very fine items, as well as a few useful abilities that I am offering to adventurers for a small donation.  Are you [interested] in what I have to offer?");
      		}
	
	elsif ($text=~/interested/i)
		
		{
			quest::say("Tell me $race what are ya looking for? [Bags], [Pet Gear], [Spells], some [Dye] for your armour, or some very [Special Items]?  I can also help you catch up to your friends by granting you some [Levels] or [AA Points].");
		}
			
				elsif ($text=~/dye/i)
					{
						quest::say("I will trade you a stack of armour dye for 25 platinum pieces.");
					}

				elsif ($text=~/bags/i)
					{
						quest::say("I will trade you a nice bag for 50 platinum pieces.");
					}
			
				elsif ($text=~/Pet Gear/i)
					{
						quest::say("I will trade you some nice gear for your pet for 100 platinum pieces.");
					}

				elsif ($text=~/Special Items/i)
					{
						quest::say("I will trade you a few very special items for 10000 platinum pieces.");
					}
			
								
				elsif ($text=~/AA Points/i)
					{
						quest::say("I will grant you 5 regular AA Points for 2500 platinum pieces.");
					}
					
	
				elsif ($text=~/Levels/i)
					{
						quest::say("I will grant you 1 level for 5000 platinum pieces.");
					}
				
				elsif ($text=~/Spells/i)
					{
						quest::say("I will grant you all of the spells up to your current level for 500 platinum pieces.");
					}
					
				
}

sub EVENT_ITEM

{

	if($platinum ==25)
		{
			quest::summonitem("32557","20");
		}

	elsif($platinum ==50)
		{
			quest::summonitem("17145");
		}

	elsif($platinum ==100)
		{
			quest::summonitem("46987");
			quest::summonitem("28595");
			quest::summonitem("28595");
			quest::summonitem("28596");
			quest::summonitem("28596");
			quest::summonitem("28598");
		}
	
	elsif($platinum ==10000)
		{
			quest::summonitem("31951");
			quest::summonitem("31883");
			quest::summonitem("31881");
			quest::summonitem("31885");
			quest::summonitem("31954");
		}

	elsif($platinum ==2500)
		{
			quest::ding();
			quest::emote("grants you 5 AA Points!");
			$client->AddAAPoints(5);
		}

	elsif($platinum ==5000)
		{
			quest::emote("grants you 1 level!");
			quest::level(quest::getlevel(0) +1);
		}
			
	elsif($platinum ==500)
		{
			quest::scribespells(quest::getlevel(0));
			quest::emote("points at your spellbook");
		}
}
Reply With Quote
  #2  
Old 07-20-2009, 01:56 PM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

Quote:
Originally Posted by cubber View Post
Here you go. Updated to scribe spells at the current level of the player for 500 plat.
Wow, that's awesome. Thanks a bunch!

I'll test tit in a bit after I go kill myself outside in this 100+ degree weather. =/
Reply With Quote
  #3  
Old 07-20-2009, 03:34 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

Your welcome. It seems to work well on my server. I put the script through its paces. Just so you know if you want to use Galarono McHalorsos as the NPC he is in the bazaar in the central area with all the NPCs standing around in a circle. He is near one of the exit tunnels. Big barbarian guy.

Name the script Galarono_McHalorsos.pl and put it in the bazaar directory. Dont forget to chmod +x it!

As for the SQL stuff I am not sure. May want to consult someone that really knows the db well on that one.
Reply With Quote
  #4  
Old 07-20-2009, 03:40 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

If you like that one you will love this one.

I wrote this one so I could give some players access to the #summonitem command without actually giving them any elevated privileges on the server. Most of these quests I am writing are there to reduce my gm workload on the server.

I call this one #summonitem proxy

I put it on the big skeleton guy in Cshome named Krakskull. You can put it on any NPC you want. Basically it just allows a player to tell the NPC an item ID number that they get when they look up the item with #itemsearch. Then they just say the number to him and he summons the item to thier cursor.

Code:
#############
#Written By : cubber
#Quest Name: #summonitem proxy
#Quest Zone: Cshome
#Quest NPC: Krakskull
#################
sub EVENT_SAY
{
   if($text=~/Hail/i)
      {
         quest::say("Hello there $name,  need some [items summoned]?");
      }
elsif ($text=~/items summoned/i)
			
			{
				quest::say("$race, I have been gifted with the ability to summon any item or spell in this world for you.  However, I am not a mind reader, and in order for me to summon anything for you I need to know it's ID number.  Please use the command: #itemsearch insert_itemname_here , and just tell me the number next to the item you desire.");
			}
			
				elsif ($text=~/\d{0,9}/)
					{
						quest::emote("Krakskull begins to chant...");
						quest::summonitem("$text");      	
						quest::emote("The item you seek apears before your eyes!");
					}
			
				
}
more info on this script here
Reply With Quote
  #5  
Old 07-20-2009, 04:35 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

New version of the Items and Levels for small servers quest.

This one adds the ability to reset your AA points for a fee of 2000 plat. Since the new AA reset quest function boots the player from the world in order to reset the points I made note of it in the quest text. That way players don't file bug reports about the quest crashing them.

Code:
#############
#Written By : Cubber
#Quest Name: Items and levels for a Small Server.
#Quest Zone: Bazaar
#Quest NPC: Galarono_McHalorsos
#################
sub EVENT_SAY
{
   	if($text=~/Hail/i)
      		{
         	quest::say("Hello there $name! I have in my possesion some very fine items, as well as a few useful abilities that I am offering to adventurers for a small donation.  Are you [interested] in what I have to offer?");
      		}
	
	elsif ($text=~/interested/i)
		
		{
			quest::say("Tell me $race what are ya looking for? [Bags], [Pet Gear], [Spells], some [Dye] for your armour, or some very [Special Items]?  I can also help you catch up to your friends by granting you some [Levels] or [AA Points].  If you need me to I can [refund] your AA's as well.");
		}
			
				elsif ($text=~/dye/i)
					{
						quest::say("I will trade you a stack of armour dye for 25 platinum pieces.");
					}

				elsif ($text=~/bags/i)
					{
						quest::say("I will trade you a nice bag for 50 platinum pieces.");
					}
			
				elsif ($text=~/Pet Gear/i)
					{
						quest::say("I will trade you some nice gear for your pet for 100 platinum pieces.");
					}

				elsif ($text=~/Special Items/i)
					{
						quest::say("I will trade you a few very special items for 10000 platinum pieces.");
					}
			
								
				elsif ($text=~/AA Points/i)
					{
						quest::say("I will grant you 5 regular AA Points for 2500 platinum pieces.");
					}
					
	
				elsif ($text=~/Levels/i)
					{
						quest::say("I will grant you 1 level for 5000 platinum pieces.");
					}
				
				elsif ($text=~/Spells/i)
					{
						quest::say("I will grant you all of the spells up to your current level for 500 platinum pieces.");
					}
					
				elsif ($text=~/Refund/i)
					{
						quest::say("I can reset, and refund your regular AA Points for a fee of 2000 platinum pieces.");
						quest::me("Please note: this will automatically log you out of the world in order to perform the reset.");
					}
				
}

sub EVENT_ITEM

{

	if($platinum ==25)
		{
			quest::summonitem("32557","20");
		}

	elsif($platinum ==50)
		{
			quest::summonitem("17145");
		}

	elsif($platinum ==100)
		{
			quest::summonitem("46987");
			quest::summonitem("28595");
			quest::summonitem("28595");
			quest::summonitem("28596");
			quest::summonitem("28596");
			quest::summonitem("28598");
		}
	
	elsif($platinum ==10000)
		{
			quest::summonitem("31951");
			quest::summonitem("31883");
			quest::summonitem("31881");
			quest::summonitem("31885");
			quest::summonitem("31954");
		}

	elsif($platinum ==2500)
		{
			quest::ding();
			quest::emote("grants you 5 AA Points!");
			$client->AddAAPoints(5);
		}

	elsif($platinum ==5000)
		{
			quest::emote("grants you 1 level!");
			quest::level(quest::getlevel(0) +1);
		}
			
	elsif($platinum ==500)
		{
			quest::scribespells(quest::getlevel(0));
			quest::emote("points at your spellbook");
		}

	elsif($platinum ==2000)
		{
			quest::emote("strips you of your abilities and refreshes your spirit");
			$client->RefundAA();
		}
}
Reply With Quote
  #6  
Old 07-20-2009, 06:23 PM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

Oh wow. You're a machine. Thanks for the updates and new script.
Reply With Quote
  #7  
Old 07-20-2009, 07:46 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

Thanks. Please provide feedback if you use them. I am still learning. and know there may be better and cleaner ways to do what I am trying to accomplish with these scripts.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 11:54 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3