|
Kvetch
|
 |
« on: June 06, 2011, 06:58:26 am » |
|
I'd like to be bold and say trigger of the day, but the sites I know of that have done that haven't posted anything for about 2 years. Trigger of the month is much too slow. I guess it's trigger of the - whenever I feel like posting one. Right now I've got a bunch that I've snuck off TBA along with a few of my own so we may be busy for a while. To start with, let's use one that's actually in 4D right now, though the idea of it could have come from posts on the TBA board Name: 'Pirate Parrot Repeat Script', VNum: [23020], RNum: [ 5138] Trigger Intended Assignment: Mobiles Trigger Type: Speech, Numeric Arg: 100, Arg list: * Commands: if %actor.vnum% < 0 if %c%<20 eval c 20 global c end if !(%speech%/=!) eval c (%c%)+1 global c set %c% %speech% global %c% eval 1 Walk the plank, ye scurvy bilgerat. eval 2 Weigh anchor or I'll give ye a taste of the cap'n's daughter. eval 3 Ahoy. Ye scurvy dogs. eval 4 Avast. eval 5 Aye aye. eval 6 Arrr. eval 7 C'mere, me boxom beauty. eval 8 Well, me hearties, let's see what crawled out of the bung hole. eval 9 Drink up, me hearties. eval 10 Keelhaul that land rubber. eval 11 Awk. Polly wants a cracker. eval 12 Avast, me proud beauty. Wanna know why my Roger is so Jolly? eval 13 Aye, that's a hornpipe in my pocket and I am happy to see ye. eval 14 Prepare to be boarded. eval 15 That's the finest pirate booty I've ever laid eyes on. Aye. eval 16 That's some treasure chest you've got there. eval 17 That's quite a cutlass ye got thar, what ye need is a good scabbard. eval 18 Shiver me timbers. That's a mighty big cannon. eval 19 Blow yer man down. eval 20 Swab the deck. eval count %%random.%c%%% set ans %%%count%%% eval ans %ans% wait %random.5% say %ans% endif endif
What this script does is make it so the parrot can change what it says based on what's being said around it. Works for fun, laughs and the irritation of anyone around it for any length of time.
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #1 on: June 08, 2011, 10:15:35 am » |
|
This could be fun if someone wanted to run with it - or do we have something like it and I don't know about it - that's easy to do. Could be one of those games kind of like the arena. <On blue paintball gun>
Name: 'Obj Command 81 - Paintball Shoot Blue', VNum: [ 96], RNum: [ 96] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 2, Arg list: shoot Commands: * By Rumble of The Builder Academy tbamud.com 9091 if %arg.room% != %actor.room% || %arg.id% == %actor.id% %send% %actor% Shoot: Invalid Target! halt end set inroom %actor.room% if %arg.inventory(80)% %echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun. %send% %actor% You blast %arg.name%. %send% %arg% You lose! %purge% %arg.inventory(80)% %zoneecho% %inroom.vnum% %actor.name% shoots %arg.name%. A score for the Blue Team. elseif %arg.inventory(81)% %send% %actor% They are on your team! elseif %send% %actor% %arg.name% is not playing. End
<On Red paintball gun>
Name: 'Obj Command 80 - Paintball Shoot Red', VNum: [ 97], RNum: [ 97] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 2, Arg list: shoot Commands: * By Rumble of The Builder Academy tbamud.com 9091 if %arg.room% != %actor.room% || %arg.id% == %actor.id% %send% %actor% Shoot: Invalid Target! halt end set inroom %actor.room% if %arg.inventory(81)% %echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun. %send% %actor% You blast %arg.name%. %send% %arg% You lose! %purge% %arg.inventory(81)% %zoneecho% %inroom.vnum% %actor.name% shoots %arg.name%. A score for the Red Team. elseif %arg.inventory(80)% %send% %actor% They are on your team! elseif %send% %actor% %arg.name% is not playing. End
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #2 on: June 09, 2011, 09:40:15 pm » |
|
Making it so players have to figure out some sort of combination. Of course, there would have to be hints, clues or whatnot in the area, but here's the jest of it: Name: 'Room Command Combination Lock', VNum: [ 92], RNum: [ 92] Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: push Commands: * By Rumble of The Builder Academy tbamud.com 9091 * * To allow multiple scripts based on this script we set a context: context %self.id% * clear old var, if set. unset reset_buttons * check argument if %arg% == red %send% %actor% You push the red button. set pushed_red 1 global pushed_red elseif %arg% == yellow %send% %actor% You push the yellow button. if %pushed_red% set pushed_yellow 1 global pushed_yellow else set reset_buttons 1 end elseif %arg% == green %send% %actor% You push the green button. if %pushed_red% && %pushed_yellow% set pushed_green 1 global pushed_green else set reset_buttons 1 end elseif %arg% == blue %send% %actor% You push the blue button. if %pushed_red% && %pushed_yellow% && %pushed_green% set pushed_blue 1 global pushed_blue else set reset_buttons 1 end elseif %arg% == purple %send% %actor% You push the purple button. if %pushed_red% && %pushed_yellow% && %pushed_green% && %pushed_blue% %send% %actor% You hear a loud click as you push the final button. set reset_buttons 1 else set reset_buttons 1 end elseif %arg% == white %send% %actor% You push the white reset button. set reset_buttons 1 else %send% %actor% Push what ?! halt end * reset the buttons if necessary if %reset_buttons% unset reset_buttons unset pushed_red unset pushed_yellow unset pushed_green unset pushed_blue %send% %actor% The buttons all suddenly pop back out. end * send the state of the buttons %send% %actor% red:%pushed_red% yellow:%pushed_yellow% green:%pushed_green% blue:%pushed_blue% purple:%pushed_purple%
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #3 on: June 10, 2011, 06:10:13 pm » |
|
Do you want it so someone REALLY can't get rid of an item? Got you covered. ACtually, I'm not sure that you wouldn't be able to put the item in a container and get rid of it that way, but otherwise, it's worse than being CURSED! Plus it's a short, easy script. Name: '!DROP Assigner - 1332', VNum: [ 1366], RNum: [ 438] Trigger Intended Assignment: Objects Trigger Type: Drop Give Consume , Numeric Arg: 100, Arg list: None Commands: * By Rumble of The Builder Academy tbamud.com 9091 if %actor.level% < 32 %send% %actor% You can't get rid of %self.shortdesc%. return 0 end
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #4 on: June 11, 2011, 01:25:15 am » |
|
ACtually, I'm not sure that you wouldn't be able to put the item in a container and get rid of it that way,
We have a trigger type for containers; put-in. Have you trid if that works?
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #5 on: June 11, 2011, 08:54:47 pm » |
|
I was just pointing out that there may be a way around the script.
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #6 on: June 16, 2011, 09:56:19 pm » |
|
Name: 'Crystal Ball to Locate a Mob.', VNum: [ 205], RNum: [ 205] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 7, Arg list: locate Commands: * By Rumble of The Builder Academy tbamud.com 9091 set find %arg% if !%find.is_pc% eval rname %find.room% %send% %actor% As you gaze into the ball, it starts to glow. You see an image of %find.name% in %rname.name%. else %send% %actor% All that you see is a blurry haze. end %echoaround% %actor% %actor.name% peers into %actor.hisher% gently glowing crystal ball.
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #7 on: June 21, 2011, 09:37:51 am » |
|
Name: 'Open a Chest once per zone reset', VNum: [ 209], RNum: [ 209] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 100, Arg list: open Commands: * By Mordecai if chest /= %arg% * Verify that the player typed 'open chest' * Has the player already opened this chest? context %actor.id% if %already_opened_chest% %send% %actor% The chest has already been opened, and emptied. else * The first time! OK, open the chest. %send% %actor% You get a jar of naphthalene from an iron bound chest. %load% obj 306 %actor% inv set already_opened_chest 1 global already_opened_chest return 0 end else * Not 'open chest' - pass control back to the command parser return 0 end
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #8 on: June 22, 2011, 06:06:28 pm » |
|
A voodoo doll that could actually hurt a PC? Sounds dangerous. Name: 'Voodoo Doll', VNum: [ 1381], RNum: [ 453] Trigger Intended Assignment: Objects Trigger Type: Command , Numeric Arg: 2, Arg list: pin Commands: * By Heiach if !%arg% %send% %actor% Stab a pin into a voodoo doll of who? else eval dmg %arg.hitp% * 100 / %arg.maxhitp% if (%dmg% > 25) eval pain %random.15% switch %pain% case 1 set hurt back break case 2 set hurt head break case 3 set hurt stomach break case 4 set hurt left eye break case 5 set hurt chest break case 6 set hurt right eye break case 7 set hurt left arm break case 8 set hurt right arm break case 9 set hurt left leg break case 10 set hurt right leg break case 11 set hurt groin break case 12 set hurt left foot break case 13 set hurt right foot break case 14 set hurt throat break case 15 set hurt heart break default break done %send% %actor% You slowly push a pin into the voodoo doll of %arg.name%'s %hurt%. %echoaround% %actor% %actor.name% slowly pushes a pin into a voodoo doll. %send% %arg% You suddenly feel a sharp stabbing pain in your %hurt%! %echoaround% %arg% %arg.name% suddenly screams with pain, clenching %arg.hisher% %hurt%! %damage% %arg% 10 wait 20 s elseif %dmg% < 26 set msg %random.5% switch %msg% case 1 %send% %actor% %arg.name% has suffered enough! break case 2 %send% %actor% %arg.name% can't take it anymore! break case 3 %send% %actor% %arg.name% is too weak! break case 4 %send% %actor% %arg.name% is still writhing in pain! break case 5 %send% %actor% %arg.name% won't survive another pin! break default break done end end
|
|
|
|
|
Logged
|
|
|
|
|
Molly
|
 |
« Reply #9 on: June 23, 2011, 01:35:35 am » |
|
Heh, I like that. Can I have one. There is someone I'd like to hurt a bit. 
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #10 on: June 24, 2011, 07:54:26 pm » |
|
Molly witha voodoo doll.. that sent a shiver down my spine. Here's a script that will let your mobs load with different eq when they load. That way each "knight" can look slightly different - even if they are the same vnum. Name: '(2700) different eq on load', VNum: [ 2772], RNum: [ 731] Trigger Intended Assignment: Mobiles Trigger Type: Load , Numeric Arg: 100, Arg list: None Commands: switch %random.3% case 1 %load% obj 2750 wear tunic break case 2 %load% obj 2752 wear shirt break case 3 %load% obj 2753 wear vest break default %load% obj 2752 wear shirt break done switch %random.3% case 1 %load% obj 2754 wear pants break case 2 %load% obj 2755 wear trousers break case 3 %load% obj 2756 wear breeches break default %load% obj 2755 wear trousers break done switch %random.3% case 1 %load% obj 2757 wear sandals break case 2 %load% obj 2758 wear shoes break case 3 %load% obj 2760 wear boots break default %load% obj 2758 wear shoes break done switch %random.2% case 1 %load% obj 2751 wear cord break case 2 %load% obj 2759 wear belt break default %load% obj 2751 wear cord break done switch %random.2% case 1 %load% obj 2714 break case 2 %load% obj 2761 wear cloth break default %load% obj 2761 wear cloth break done wear all
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #11 on: June 29, 2011, 09:25:58 pm » |
|
Let them there Wild Wester's Pan for gold!! Name: 'Panning for gold', VNum: [ 700], RNum: [ 276] Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: p Commands: * Don't let someone spam the trigger to make money Take some movement points away every round and stop when they get to 10 if %actor.move% <= 10 %send% %actor% You are too exhausted to continue. halt end * Fire on pan gold or abbreviations of each word if %cmd% /= pan && %arg% /= gold eval heldobj %actor.eq(hold)% * Make sure they picked up the gold pan in room 703 and are holding it if %heldobj.vnum% == 717 %send% %actor% You dip your pan into the river and scoop up some of the river bed and begin swirling it in the water. %echoaround% %actor% %actor.name% dips a pan into the river and begins panning for gold. * Take 10 movement points away, wait 3 seconds and give a 1 in 10 chance of success. nop %actor.move(-10)% wait 3 sec if %random.10% == 1 %send% %actor% You find a small gold nugget in the bottom of your pan. %echoaround% %actor% %actor.name% picks something out of %actor.hisher% pan. * Give them a nugget %load% obj 718 %actor% inv else %send% %actor% You find nothing of value. end else %send% %actor% You need a pan for that. end end
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #12 on: July 10, 2011, 11:49:19 am » |
|
Isn't it always a torch or a bookcase that opens up a secret door? Well, let's just give you the script for it then. Name: 'Pull torch - 23840', VNum: [23840], RNum: [ 2682] Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: pu Commands: if pull /= %cmd% && torch /= %arg% %send% %actor% The torch turns easily in your hand revealing a trap door. %echoaround% %actor% As %actor.name% pulls the torch a trap door swings open leading upwards. %door% 23840 up room 23841 %door% 23840 up name trap door wait 60s %echo% The trap door slams itself closed as if by magic. %door% 23840 up purge else %send% %actor% OK! %echoaround% %actor% You start to question the sanity of %actor.name% as they fumble about the room.
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #13 on: July 12, 2011, 07:49:05 am » |
|
Here's a way to make a magic user mob useful. The Numeric Arg of 10, is the percent chance the script will go off while the mob is fighting (fighting being the trigger type). So, 10% of the time while fighting this mob will cast a spell. Though, this does go off the level of the person the magic user is fighting and only goes up to level 22, so if it was used in 4D, it'd have to be changed a bit. Name: 'Magic User - 7009, 7200-7202', VNum: [ 7200], RNum: [ 1050] Trigger Intended Assignment: Mobiles Trigger Type: Fight , Numeric Arg: 10, Arg list: None Commands: switch %actor.level% case 1 case 2 case 3 break case 4 dg_cast 'magic missile' %actor% break case 5 dg_cast 'chill touch' %actor% break case 6 dg_cast 'burning hands' %actor% break case 7 case 8 dg_cast 'shocking grasp' %actor% break case 9 case 10 case 11 dg_cast 'lightning bolt' %actor% break case 12 dg_cast 'color spray' %actor% break case 13 dg_cast 'energy drain' %actor% break case 14 dg_cast 'curse' %actor% break case 15 dg_cast 'poison' %actor% break case 16 if %actor.align% > 0 dg_cast 'dispel good' %actor% else dg_cast 'dispel evil' %actor% end break case 17 case 18 dg_cast 'call lightning' %actor% break case 19 case 20 case 21 case 22 dg_cast 'harm' %actor% break default dg_cast 'fireball' %actor% break done
|
|
|
|
|
Logged
|
|
|
|
|
Kvetch
|
 |
« Reply #14 on: August 05, 2011, 09:39:35 am » |
|
A potion that changes every time it loads or is dropped/gotten. Rather devious if you ask me. Of course, it's from the mind of Once. Name: 'Potion script.', VNum: [16928], RNum: [ 982] Trigger Intended Assignment: Objects Trigger Type: GetLoad, Numeric Arg: 100, Arg list: None Commands: eval change1 %random.86% eval change2 %random.86% eval change3 %random.86% if (%change1% || %change2% || %change3%) = 31 eval change1 %random.86% eval change2 %random.86% eval change3 %random.86% osetval 1 %change1% osetval 2 %change2% osetval 3 %change3% endif
|
|
|
|
|
Logged
|
|
|
|
|