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

Quests::Custom Custom Quests here

Reply
 
Thread Tools Display Modes
  #1  
Old 10-02-2017, 08:48 AM
Turmoiltoad
Forum Guide
 
Join Date: Apr 2013
Posts: 27
Default Server Greeter Bot

I didn't see anything exactly like this, so thought I would share.

This is a bot in the Tutorial that greets players, gives them information about the server, gives a TL out of the Tutorial, and AE heals once and a while to help out the newbies. I used a Gnome Clockwork model (since it's a bot and all).

Most of the dialogue you would want to customize for your server, but it seemed like a good way to hit the most frequently asked questions.

Salutation_Model_XIV.pl

Code:
# Zone: The Mines of Gloomingdeep (tutorialb) >> Salutation_Model_XIV (189490)

sub EVENT_SPAWN {
	quest::emote("whirs to life.");
}

sub EVENT_SAY {
	if ($text=~/hail/i) {
		quest::say("Hello $name, and welcome to the Gates of Time server!  I'm here to make your life easy, so let me know if you have any [questions], or if you'd like to [leave] the tutorial.");
	}
	if ($text=~/questions/i) {
		quest::say("A lot of people wonder about [max level], [expansions], [customizations], [community], [raiding], [server difficulty], [bots], [mercs], [macroquest], and [hot zones].");
	}
	if ($text=~/max level/i) {
		quest::say("The maximum level for the server is level 65.");
	}
	if ($text=~/expansions/i) {
		quest::say("All zones through the Planes of Power expansion are available.  If a zone requires a key, flag, or reagent to access it, you will have to obtain those on your own.  Planes of Power was opened in mid-July, 2017--so if you're just joining, you will have plenty of time to catch up.");
	}
	if ($text=~/customizations/i) {
		quest::say("We have added a custom item vendor in the Planes of Knowledge--he will sell items for Chronobines to community members who [support the server].  We have included quality of life features such as autocombine for tradeskills, Guild Hall for easy travel, Shadowrest and Guild Lobby for easy corpse recovery, suspended buff timers in non-combat zones, and more!");
	}
	if ($text=~/support the server/i) {
		quest::say("Please take a look at our forums and our wiki for more information on contributing to the community.  We reward players with Chronobines for their contributions on bug reports, wiki pages, helping others, and having a great attitude.  We're also happy to accept donations to help offset the cost of server hosting.");
	}
	if ($text=~/community/) {
		quest::say("Gates of Time has a great community--many people here will help you to adventure, provide you with buffs, give you items, or even just take the time to give you help if you have a question.  OOC is a global channel, so please feel free to use /ooc if you have a question.");
	}
	if ($text=~/raiding/i) {
		quest::say("Raid content is 'legit' and will require raid forces to defeat.  We promote a healthy and competitive raid environment and will instance content as needed so that everyone can enjoy the end-game content equally.  Our highest-end guild is currently working on Vex Thal and Tier 2 and Tier 3 content in the Planes of Power.  There is plenty of opportunity for back-flagging.");
	}
	if ($text=~/server difficulty/i) {
		quest::say("There is a server xp bonus to make leveling easier.  We often offer periods of double-loot and/or double-xp.  Please check our forums for the most up to date information.  You can also adventure in [hot zones] if you'd like to progress at even faster rates!");
	}
	if ($text=~/hot zones/i) {
		quest::say("Each month (or so) our hot zones rotate.  Please pay a visit to my friend, Franklin Teek, in the Plane of Knowledge for the most up to date information.  You'll find him by the port in area.");
	}
	if ($text=~/bots/i) {
		quest::say("We do not use bots on this server.  You are allowed to box three characters at the same time.");
	}
	if ($text=~/mercs/i) {
		quest::say("We do not use mercs on this server.  You are allowed to box three characters at the same time.");
	}
	if ($text=~/macroquest/i) {
		quest::say("We do not allow the use of MacroQuest on this server.  Please do not make us ask you to stop using it!  We ask that one input from you leads to one output from your character.  There are many EQEmu servers that encourage and allow the use of MacroQuest, so please explore them if you find that you cannot play without it.");
	}
	if ($text=~/leave/i) {
		quest::say("I have been programmed to help you leave if you wish to [exit the tutorial].  I will transport you to the Plane of Knowledge.  Please note that you will not be able to re-enter the tutorial once you have reached level 16.  Also, there are some custom items that can be found here--don't rush to leave!");
	}
	if ($text=~/exit the tutorial/i) {
  		quest::movepc(202,-285,-148,-159); # Succor Point, Plane of Knowledge
	}
}

sub EVENT_WAYPOINT_ARRIVE {
	if ($wp == 2) {
		quest::emote("clicks and whirs");
	}
	if ($wp == 5) {
		quest::say("Initiate buff and heal program XI.");
		quest::emote("begins to glow.");
		$npc->CastSpell(2087, 189490); # 2087 = Greater Infusion, 189490 == self
	}
	if ($wp == 10) {
		quest::emote("whirs and clicks");
	}
}

# Zone: The Mines of Gloomingdeep (tutorialb) >> Salutation_Model_XIV (189490)
The waypoints for the loop he wanders:

Code:
INSERT INTO grid (id, zoneid, type, type2) VALUES ('12', '189', '0', '1');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '0', '-162.35', '-152.14', '16.78', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '1', '-132.503', '-153.421', '15.9178', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '2', '-94.1068', '-148.684', '14.2662', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '3', '-34.0962', '-141.194', '14.7164', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '4', '23.1549', '-111.449', '13.9895', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '5', '38.2853', '-40.2572', '16.5154', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '6', '-57.144', '-53.4567', '19.0392', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '7', '-94.8163', '-2.66101', '20.0491', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '8', '-143.811', '-35.4007', '18.8172', '-1', '30');
INSERT INTO grid_entries (gridid, zoneid, number, x, y, z, heading, pause) VALUES ('12', '189', '9', '-177.327', '-82.1346', '19.5479', '-1', '30');
And the NPC:

Code:
INSERT INTO npc_types (id, name, lastname, level, race, class, bodytype, hp, mana, gender, texture, helmtexture, herosforgemodel, size, hp_regen_rate, mana_regen_rate, loottable_id, merchant_id, alt_currency_id, npc_spells_id, npc_spells_effects_id, npc_faction_id, adventure_template_id, trap_template, mindmg, maxdmg, attack_count, npcspecialattks, special_abilities, aggroradius, assistradius, face, luclin_hairstyle, luclin_haircolor, luclin_eyecolor, luclin_eyecolor2, luclin_beardcolor, luclin_beard, drakkin_heritage, drakkin_tattoo, drakkin_details, armortint_id, armortint_red, armortint_green, armortint_blue, d_melee_texture1, d_melee_texture2, ammo_idfile, prim_melee_type, sec_melee_type, ranged_type, runspeed, MR, CR, DR, FR, PR, Corrup, PhR, see_invis, see_invis_undead, qglobal, AC, npc_aggro, spawn_limit, attack_speed, attack_delay, findable, STR, STA, DEX, AGI, _INT, WIS, CHA, see_hide, see_improved_hide, trackable, isbot, exclude, ATK, Accuracy, Avoidance, slow_mitigation, version, maxlevel, scalerate, private_corpse, unique_spawn_by_name, underwater, isquest, emoteid, spellscale, healscale, no_target_hotkey, raid_target, armtexture, bracertexture, handtexture, legtexture, feettexture, light, walkspeed, peqid, unique_, fixed, ignore_despawn, show_name, untargetable) VALUES ("189490", "Salutation_Model_XIV", "Gates of Time Greeter", "1", "457", "1", "5", "10000000", "0", "2", "0", "0", "0", "10", "1000", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "5000", "-1", "", "24,1^25,1", "70", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "IT10", "28", "28", "7", "1.25", "1000", "1000", "1000", "1000", "1000", "1000", "1000", "1", "1", "0", "12", "0", "0", "0", "30", "0", "12", "12", "12", "12", "12", "12", "12", "1", "1", "1", "0", "1", "0", "0", "0", "0", "0", "0", "100", "0", "0", "0", "1", "0", "100", "100", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0");
Create a spawn point at Waypoint 0: -162.35, -152.14, 16.78
Reply With Quote
  #2  
Old 10-02-2017, 04:15 PM
Toony's Avatar
Toony
Sarnak
 
Join Date: Jul 2009
Location: USA
Posts: 85
Default

Sweet, I was thinking about something like this but way, way less elegant, basically a spawn and kick to PoK. Thanks!
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 10:38 AM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3