|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Mon Dec 25, 2006 6:18 pm
Need help with automated singing |
I have a character who is a bard and in order to give him more depth, he sings songs in taverns and such. Normally I accomplish this by simply cutting and pasting lines from a text file into the command line. I would like to automate this process a bit and need some help.
I have experimented with an alias that sends pmotes with the appropriate lines and has a timer to keep the spam down, but that's not really doing it for me. I have to have one or more aliases to do each song.
Here is a sample of lines from onr alias:
pmote sings in a clear tenor {BShips may come and ships may go, as long as the sea does roll{x
pmote sings in a clear tenor {BEach sailor lad just like his dad, he loves the flowing bowl.{x
pmote sings in a clear tenor {BA trip on shore he does adore with a girl that's nice and round.{x
pmote sings in a clear tenor {BWhen the money's all gone it's the same old song,{x
pmote sings in a clear tenor {B"Get up Jack! John, sit down!"{x
Is there a better way to accomplish this?
Is there perhaps a script that can call the lyrics from a text file, add pmotes and color the lyrics?
The MUD is a heavily modified Diku code. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Mon Dec 25, 2006 6:38 pm |
what i would to is make an array for each song you want
#VAR boatsong {Ships may come and ships may go, as long as the sea does roll|Each sailor lad just like his dad, he loves the flowing bowl.|A trip on shore he does adore with a girl that's nice and round.||When the money's all gone it's the same old song,|"Get up Jack! John, sit down!"}
then an alias to do your song
#ALIAS singsong {thissong=%1;#FORALL thissong {pmote sings in a clear tenor ~{B%i~{x}}
that will crush it together though for a quick song though |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Mon Dec 25, 2006 7:11 pm |
Quote: |
that will crush it together though for a quick song though
|
That is one thing I am trying to avoid. With the delay, it seems more natural and people listening can pmote during the song. Is there a way to add a delay between lines?
I am also unsure how to activate the alias you wrote. would it be "singsong boatsong" in this case? |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Mon Dec 25, 2006 7:23 pm |
'singsong @boatsong' is the method i believe... to make it a delay try something like...
#LOOP %numitems(@thissong) {#ALARM +%eval(%i*10) {pmote sings in a clear tenor ~{B%pop(thissong)~{x}} |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Tue Dec 26, 2006 7:45 pm |
...although it's the Devil's Command, #WAIT would be much easier to use in this case, and since it's not in a trigger it won't be too naughty.
#VAR boatsong {Ships may come and ships may go, as long as the sea does roll|Each sailor lad just like his dad, he loves the flowing bowl.|A trip on shore he does adore with a girl that's nice and round.||When the money's all gone it's the same old song,|"Get up Jack! John, sit down!"}
#alias singsong {ThisSong=%1;#forall @ThisSong {pmote sings in a clear tenor ~{B%i~{x};#wait 1000}
One question - does @{complicated name} not work in zMUD? It'd be much easier to use @{%1} than this ThisSong= part. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Tue Dec 26, 2006 9:54 pm |
I prefer to use a token holder for the current song, just copy the song you want into it, all the scripts only need to worry about the token as well, this also allows you to %pop() away the token without losing the original song, Maybe?:
#WHILE @thissong {pmote sings in a clear tenor ~{B%pop(thissong)~{x};#wait 1000} |
|
_________________ Discord: Shalimarwildcat
Last edited by shalimar on Tue Dec 26, 2006 10:48 pm; edited 1 time in total |
|
|
|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Tue Dec 26, 2006 10:07 pm |
I am more confused than when I first asked the question.....
I do not understand the previous 3 posts. I need to learn more scripting. Until then...... can someone break this down for me so I can understand how to implement it or simply give me something I can plug in?
I am sorry to be such a noob. |
|
|
|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Tue Dec 26, 2006 10:23 pm |
OK, so I have been experimenting......
Shalimar: Your original Alias does not seem to work. I have no idea how to implement the Loop or the While statement
Fang Xianfu: Your alias works with the exception of the wait. It shoots out 1 line right after the other. I have tried adjusting the WAIT # and got all the way to 100000 without seeing any change. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Tue Dec 26, 2006 10:51 pm |
#ALIAS singsong {
thissong=@%1
#LOOP %numitems(@thissong) {#ALARM +%eval(%i*10) {pmote sings in a clear tenor ~{B%pop(thissong)~{x}}
}
then just use 'singsong boatsong' |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Wed Dec 27, 2006 4:25 pm |
Thank you. I will give it a shot when I have a chance, probably on Friday (this week is so busy).
On another note..... Does anyone have a good resource that I can get to learn more about how to do all this on my own?
ZMUD scripting for Dummies perhaps? |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Wed Dec 27, 2006 7:58 pm |
Try reading the help files the come with, or failing that, there is a copy of the helpfiles on the site as well, it gives an example of how to use ever %function and #command.
If you know which you want to open you can go directly to that page of the helpfiles from the command line.
For #commands, drop the # off the beginning:
#HELP loop
For %functions leave the % on:
#HELP %pop
But don't discount the value of having questions that may arise answered by asking them on these forums. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Gavvin Newbie
Joined: 25 Dec 2006 Posts: 6 Location: DFW, TX
|
Posted: Wed Dec 27, 2006 11:16 pm |
Help files are good. I like help files. What I am really looking for though is something that puts things in context. Starts with some small, simple scripts and breaks them apart to explain how they work and then builds on those to form more complex scripts. I guess my real problem is that I am a network guy and have really distanced myself from programming in the last........ 18 yrs or so (how time flies!) since I got out of high school.
|
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Wed Dec 27, 2006 11:31 pm |
Your best bet for good context examples is to pay attention to the forums and follow the logic in the scripts other people put up and need help on. I have learned all of what i know from these forums and the help files.
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
|
|