Author Topic: Schedules  (Read 1291 times)

How exactly do schedules work?
I'm just now trying to use them, but I'm not sure how they work.
Could somebody give me the correct syntax?

schedule(TIMEINMILLISECONDS, OBJECT (USUALLY 0 FOR NONE), COMMAND, PARAMETER1, PARAMETER2, PARAMETER3, ...);

Ex: schedule(3000, 0, serverCmdMessageSent, %client, "And 3 seconds later...");

OBJECT.schedule(TIMEINMILLISECONDS, COMMAND, PARAMETER1, PARAMETER2, PARAMETER3, ...);

Ex: %client.player.schedule(3000, addVelocity, "0 0 600");
« Last Edit: July 23, 2011, 01:38:49 AM by MegaScientifical »

You can also assign schedules to variables so that you can cancel them.
For example: %obj.deathSched = %obj.schedule(10000, kill);
And then to cancel it: cancel(%obj.deathSched);

You can also assign schedules to variables so that you can cancel them.
For example: %obj.deathSched = %obj.schedule(10000, kill);
And then to cancel it: cancel(%obj.deathSched);

Thats not a variable though.  Assigning it to a variable to cancel it would be like:

$var = schedule(youknowtherest);

if(iseventpending($var))
   cancel($var);

Thats not a variable though.  Assigning it to a variable to cancel it would be like:

$var = schedule(youknowtherest);

if(iseventpending($var))
   cancel($var);
Since when was an object's variable not a variable....?

Since when was an object's variable not a variable....?

The object itself is not a variable.

I kinda misread the code as %obj.schedule but it doesnt need to be an object

Oh, now I see how similar this is to the event system, etc.

Thanks.

Also, I'm guessing that to loop a schedule I just tell it to call whatever function creates the schedule?

Download TorqueDev its great for Syntax errors. http://www.torquedev.com/

Oh, now I see how similar this is to the event system, etc.

Thanks.

Also, I'm guessing that to loop a schedule I just tell it to call whatever function creates the schedule?

Yes, or you can be weird and do

Code: [Select]
schedule(1000, 0, eval, "schedule(1000, 0, eval, \"schedule(1000, 0, eval, \\\"schedule(1000, 0, eval, \\\\\"echo(\"lol what was the point of this?\\\\\");\\\");\");");

Lol, I probably made a mistake in there, but whatever.

With schedules, I love making client sided scripts. You could copy and paste lyrics for a song, then do in console

stillalive();
then it brings out stillalive lyrics.

so.

function stillalive();
{
etcetc
}

What I did, was I made keybinds to certain stuff, so like

function br()
{
commandtoserver('messagesent',"Brb, I have to go do something.");
}

I keybinded a letter to br(); and I could press that, and I can easily go brb/afk.



With schedules, I love making client sided scripts. You could copy and paste lyrics for a song, then do in console

stillalive();
then it brings out stillalive lyrics.

Code: [Select]
%delay = 3000;
commandtoserver('messagesent', "Well here we are again.");
schedule(%delay, 0, eval, "commandtoserver('messagesent', \"It's always such a pleasure.\");");
schedule(%delay*2, 0, eval, "commandtoserver('messagesent', \"Remember when you tried to kill me twice?\");");
schedule(%delay*4, 0, eval, "commandtoserver('messagesent', \"And then we laughed and laughed.\");");
schedule(%delay*5, 0, eval, "commandtoserver('messagesent', \"Except I wasn't laughing.\");");
schedule(%delay*6, 0, eval, "commandtoserver('messagesent', \"Given the circumstances, I've been shockingly nice.\");");
schedule(%delay*8, 0, eval, "commandtoserver('messagesent', \"You want your freedom?  Take it.\");");
schedule(%delay*9, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*10, 0, eval, "commandtoserver('messagesent', \"I used to want you dead\");");
schedule(%delay*11, 0, eval, "commandtoserver('messagesent', \"But now I only want you gone.\");");

schedule(%delay*13, 0, eval, "commandtoserver('messagesent', \"She was a lot like you.\");");
schedule(%delay*14, 0, eval, "commandtoserver('messagesent', \"(Maybe not quite so heavy.)\");");
schedule(%delay*15, 0, eval, "commandtoserver('messagesent', \"Now little Caroline is in here too.\");");
schedule(%delay*17, 0, eval, "commandtoserver('messagesent', \"One day they woke me up.\");");
schedule(%delay*18, 0, eval, "commandtoserver('messagesent', \"So I could live forever.\");");
schedule(%delay*19, 0, eval, "commandtoserver('messagesent', \"It's such a shame the same will never happen to you.\");");
schedule(%delay*21, 0, eval, "commandtoserver('messagesent', \"You've got your short, sad life left..\");");
schedule(%delay*22, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*23, 0, eval, "commandtoserver('messagesent', \"I'll let you get right to it.\");");
schedule(%delay*24, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone.\");");

schedule(%delay*26, 0, eval, "commandtoserver('messagesent', \"Goodbye my only friend.\");");
schedule(%delay*27, 0, eval, "commandtoserver('messagesent', \"Oh, did you think I meant you?\");");
schedule(%delay*28, 0, eval, "commandtoserver('messagesent', \"That would be funny, if it weren't so sad.\");");
schedule(%delay*30, 0, eval, "commandtoserver('messagesent', \"Well, you have been replaced.\");");
schedule(%delay*31, 0, eval, "commandtoserver('messagesent', \"I don't need anyone now.\");");
schedule(%delay*32, 0, eval, "commandtoserver('messagesent', \"When I delete you maybe I'll stop feeling so bad.\");");
schedule(%delay*34, 0, eval, "commandtoserver('messagesent', \"Go make some new disaster.\");");
schedule(%delay*35, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*36, 0, eval, "commandtoserver('messagesent', \"You're someone else's problem\");");
schedule(%delay*37, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone.\");");
schedule(%delay*38, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone...\");");
schedule(%delay*39, 0, eval, "commandtoserver('messagesent', \"Now I only want you...\");");
schedule(%delay*40, 0, eval, "commandtoserver('messagesent', \"gone.\");");


mmm yes


Code: [Select]
%delay = 3000;
commandtoserver('messagesent', "Well here we are again.");
schedule(%delay, 0, eval, "commandtoserver('messagesent', \"It's always such a pleasure.\");");
schedule(%delay*2, 0, eval, "commandtoserver('messagesent', \"Remember when you tried to kill me twice?\");");
schedule(%delay*4, 0, eval, "commandtoserver('messagesent', \"And then we laughed and laughed.\");");
schedule(%delay*5, 0, eval, "commandtoserver('messagesent', \"Except I wasn't laughing.\");");
schedule(%delay*6, 0, eval, "commandtoserver('messagesent', \"Given the circumstances, I've been shockingly nice.\");");
schedule(%delay*8, 0, eval, "commandtoserver('messagesent', \"You want your freedom?  Take it.\");");
schedule(%delay*9, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*10, 0, eval, "commandtoserver('messagesent', \"I used to want you dead\");");
schedule(%delay*11, 0, eval, "commandtoserver('messagesent', \"But now I only want you gone.\");");

schedule(%delay*13, 0, eval, "commandtoserver('messagesent', \"She was a lot like you.\");");
schedule(%delay*14, 0, eval, "commandtoserver('messagesent', \"(Maybe not quite so heavy.)\");");
schedule(%delay*15, 0, eval, "commandtoserver('messagesent', \"Now little Caroline is in here too.\");");
schedule(%delay*17, 0, eval, "commandtoserver('messagesent', \"One day they woke me up.\");");
schedule(%delay*18, 0, eval, "commandtoserver('messagesent', \"So I could live forever.\");");
schedule(%delay*19, 0, eval, "commandtoserver('messagesent', \"It's such a shame the same will never happen to you.\");");
schedule(%delay*21, 0, eval, "commandtoserver('messagesent', \"You've got your short, sad life left..\");");
schedule(%delay*22, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*23, 0, eval, "commandtoserver('messagesent', \"I'll let you get right to it.\");");
schedule(%delay*24, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone.\");");

schedule(%delay*26, 0, eval, "commandtoserver('messagesent', \"Goodbye my only friend.\");");
schedule(%delay*27, 0, eval, "commandtoserver('messagesent', \"Oh, did you think I meant you?\");");
schedule(%delay*28, 0, eval, "commandtoserver('messagesent', \"That would be funny, if it weren't so sad.\");");
schedule(%delay*30, 0, eval, "commandtoserver('messagesent', \"Well, you have been replaced.\");");
schedule(%delay*31, 0, eval, "commandtoserver('messagesent', \"I don't need anyone now.\");");
schedule(%delay*32, 0, eval, "commandtoserver('messagesent', \"When I delete you maybe I'll stop feeling so bad.\");");
schedule(%delay*34, 0, eval, "commandtoserver('messagesent', \"Go make some new disaster.\");");
schedule(%delay*35, 0, eval, "commandtoserver('messagesent', \"That's what I'm counting on.\");");
schedule(%delay*36, 0, eval, "commandtoserver('messagesent', \"You're someone else's problem\");");
schedule(%delay*37, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone.\");");
schedule(%delay*38, 0, eval, "commandtoserver('messagesent', \"Now I only want you gone...\");");
schedule(%delay*39, 0, eval, "commandtoserver('messagesent', \"Now I only want you...\");");
schedule(%delay*40, 0, eval, "commandtoserver('messagesent', \"gone.\");");


mmm yes
Or you can do
... , 0, commandToServer, 'messagesent', "bla bla bla");

Or you can do
... , 0, commandToServer, 'messagesent', "bla bla bla");

I have always had miserable luck with doing that, so I just do it the other way..

Say I wanted to make a weapon to have a delay of whatever, and then do a special thing.

Code: [Select]
function WeaponImage::onFire(%this,%obj,%slot)
{

%obj.chargeSched = %obj.schedule(5000, WeaponCharged, %this, %obj, %slot);
%obj.ChargingWeapon = 1;
%obj.playThread(2, armAttack);
}

function WeaponCharged(%this,%obj,%slot)
{
%obj.setDamageLevel(0);
serverPlay3D(WeaponChargedFireSound, %obj.getPosition());
%obj.ChargingWeapon = 0;
serverCmdUnUseTool(%obj.client);
}
How would I do that? Because this isn't working.