Welcome to the Builder Academy

Question Trigger of the Day Intermediate - Find Mob or Find

More
10 Aug 2012 14:51 - 10 Aug 2012 14:53 #629 by Rumble
Code:
Name: 'Questmaster Greet - 3', VNum: [ 138], RNum: [ 138] Trigger Intended Assignment: Mobiles Trigger Type: Greet , Numeric Arg: 100, Arg list: None Commands: * By Rumble of The Builder Academy builderacademy.net 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * A simple automated quest so only let players earn up to 50 questpoints. if %actor.is_pc% && %actor.questpoints% < 50 wait 2 sec * Check to see if they are not on a zone 1 quest. if !%actor.varexists(on_quest_zone_1)% say Welcome %actor.name%, are you interested in a simple quest? else *get the values from the player variable extract day 1 %actor.on_quest_zone_1% extract hour 2 %actor.on_quest_zone_1% * Set this value to the number of mud hours in a mud day set HOURS_IN_DAY 24 * Compare the values to the current time * (Your hours per day and days per year vary on each mud.) * (You may also want to check for 'time.year') eval current_ticks (%time.day%/%HOURS_IN_DAY%)+%time.hour% eval start_ticks (%day%/%HOURS_IN_DAY%)+%hour% *find out the time difference in ticks eval ticks_passed %current_ticks%-%start_ticks% *check if 10 ticks (~10 mins) have passed if %ticks_passed% > 10 rdelete on_quest_zone_1 %actor.id% say Welcome %actor.name%, are you interested in a simple quest? else say How is your quest going %actor.name%, do you have a quest token or the quest mobs head for me? end end end
Code:
Name: 'Questmaster Quest Assignment - 3', VNum: [ 139], RNum: [ 139] Trigger Intended Assignment: Mobiles Trigger Type: Speech , Numeric Arg: 1, Arg list: * Commands: * By Rumble of The Builder Academy builderacademy.net 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. if %actor.varexists(on_quest_zone_1)% *get the values from the player variable extract day 1 %actor.on_quest_zone_1% extract hour 2 %actor.on_quest_zone_1% * Set this value to the number of mud hours in a mud day set HOURS_IN_DAY 24 * Compare the values to the current time * (Your hours per day and days per year vary on each mud.) * (You may also want to check for 'time.year') eval current_ticks (%time.day%/%HOURS_IN_DAY%)+%time.hour% eval start_ticks (%day%/%HOURS_IN_DAY%)+%hour% *find out the time difference in ticks eval ticks_passed %current_ticks%-%start_ticks% *check if 10 ticks (~10 mins) have passed if %ticks_passed% > 10 rdelete on_quest_zone_1 %actor.id% else halt end end if %actor.questpoints% > 50 halt end * This loop goes through the entire string of words the actor says. .car is the * word and .cdr is the remaining string. eval word %speech.car% eval rest %speech.cdr% while %word% * Check to see if the word is yes or an abbreviation of yes. if yes /= %word% say Very well %actor.name%. Would you like to find an object or hunt a mobile? halt end * Pick a room from 100 to 365. eval loadroom 99 + %random.265% if mobile /= %word% || hunt /= %word% * Load the mob in the random room picked above. %at% %loadroom% %load% m 15 say Go kill the quest mob and bring me its head %actor.name%. You only have 10 minutes! * Load an object on the player that counts down from 10 minutes. %load% obj 16 %actor% inv %send% %actor% %self.name% gives you the quest timer. %echoaround% %actor% %self.name% gives %actor.name% the quest timer. set on_quest_zone_1 %time.day% %time.hour% remote on_quest_zone_1 %actor.id% halt elseif object /= %word% || find /= %word% say Go find the quest token and return it to me. You only have 10 minutes %actor.name%! %load% o 15 %at% %loadroom% drop quest_token_zone_1 %load% obj 16 %actor% inv %send% %actor% %self.name% gives you the quest timer. %echoaround% %actor% %self.name% gives %actor.name% the quest timer. set on_quest_zone_1 %time.day% %time.hour% remote on_quest_zone_1 %actor.id% halt end * End of the loop we need to take the next word in the string and save the * remainder for the next pass. eval word %rest.car% eval rest %rest.cdr% done
Code:
Name: 'Quest Timer - 16', VNum: [ 140], RNum: [ 140] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 7, Arg list: l Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * Let a player see how much time they have left. if %cmd.mudcommand% == look && timer /= %arg% %send% %actor% You have %self.timer% minutes remaining. * Let the look timer command still go through so they look at it. return 0 else return 0 end
Code:
Name: 'Quest 10 min Purge - 15, 16, 17', VNum: [ 141], RNum: [ 141] Trigger Intended Assignment: Objects Trigger Type: Timer , Numeric Arg: 100, Arg list: None Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * Attached to quest objects 15-17. Purges itself 10 minutes after loading if * player does not finish the quest. * Make sure timer is being carried by a player. if %self.carried_by% set actor %self.carried_by% if %actor.is_pc% %send% %actor% Your quest time has run out. Try again. * Delete the on quest variable so they can try again. rdelete on_quest_zone_1 %actor.id% end end * Purge the timer. %purge% %self%
Code:
Name: 'Quest Timer Random - 16', VNum: [ 142], RNum: [ 142] Trigger Intended Assignment: Objects Trigger Type: Random , Numeric Arg: 10, Arg list: None Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * If timer is being carried by a player, warn them every 2 minutes. if %self.carried_by% set actor %self.carried_by% if %actor.is_pc% %send% %actor% You have %self.timer% minutes remaining. end end
Code:
Name: 'Questmaster Receive - 3', VNum: [ 143], RNum: [ 143] Trigger Intended Assignment: Mobiles Trigger Type: Receive , Numeric Arg: 100, Arg list: None Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * Check if they are on the quest. if !%actor.varexists(on_quest_zone_1)% say You are not even on a quest %actor.name%. * Stop the trig and prevent the item from being given to the mob. halt end * wait 1 sec * If they had the head or the token. if %object.vnum% == 15 || %object.vnum% == 17 rdelete on_quest_zone_1 %actor.id% say Well done, %actor.name%. * Give them 50 gold and experience. Delete the on quest variable and purge. nop %actor.exp(50)% nop %actor.gold(50)% %purge% %object% * Reward them with 1 questpoint. Cheap I know but these quests are not hard. nop %actor.questpoints(1)% say you have earned 50 gold, 50 xp, 1 questpoint %actor.name%. else say I don't want that! * Don't accept the object to prevent overloading the mob with junk. return 0. end
Code:
Name: 'Quest Mob Loads Head - 15', VNum: [ 144], RNum: [ 144] Trigger Intended Assignment: Mobiles Trigger Type: Load , Numeric Arg: 100, Arg list: None Commands: * By Rumble of The Builder Academy tbamud.com 9091 * Part of a timed quest to kill a mob or find an object. Trigs 138-144. * This is a load instead of a death trig because I want the head to purge 10 * minutes after loading. %load% obj 17
If this was helpful please vote or leave a review for TBA.

Rumble
The Builder Academy
tbamud.com 9091
rumble@tbamud.com
Last edit: 10 Aug 2012 14:53 by Rumble.
The following user(s) said Thank You: Halenbane

Please Log in or Create an account to join the conversation.

Time to create page: 0.171 seconds