XD its not mostly about the ease of access. Just want a way so i dont have to keep track of all the different versions. As my version of it i constantly update things add new scripts etc and dont want to have different versions out there. Want to be able to keep 1 cop globally, instead of having to update an exe or jar once or twice a day.
Oh, no no no.., the executable would never need to be updated.., it would simply download the newest version from some static location you can upload it to and overwrite the current script
and the actual script could use the HTTP module to check online for the version number too, or it could send you a hidden PM if you're online
for the end user, it's basically this:
Never had your script before:
Downloads the exe/jar/py, runs it - the script is automatically downloaded to his /macros/... Has an up to date scripy:
Knows the script is up to date because it says it is, everything is great
There are newer versions:
When the script first runs, it tells the player that there's an update from version x.x.x to x.y.0
There's another script the player can run (another button) that tells him all the patch notes for all the versions above what he has, so he knows what's going to change
He simply runs the exe/jar/py again to update the mod, it should only take about 7 seconds
And just to be clear, you don't need to keep the old versions.., you just need a version number that always goes 'up' - the script checks that and replaces WHATEVER they currently have with the current. up-to-date version
edit: The post below me details one very specific way to do exactly this
Found a typo, just sayin', where you have the permissions and copyright stuff it says "You may redistribute the mod, provided it is umodified" (instead of unmodified.
Hey guys, I need some basic help here, could you point me out how to make an onChat event that, when it reads an specific message, it sends to myself a private message?
What do I want to do? I'm on a server that has clear lag, and it says "warning ground items will be removed in 60 seconds", in an almost invisible red inside a whole lot of colored text, and that's the only warning you get. I'd want to add an event that reads that message or part of it, and sends me a very noticeable pm (because it would be shown doubled) saying that very same thing, and another one 30 seconds later because this server doesn't have a 30 seconds warning. Just in case I'm very focused on building something xD
Hey guys, I need some basic help here, could you point me out how to make an onChat event that, when it reads an specific message, it sends to myself a private message?
What do I want to do? I'm on a server that has clear lag, and it says "warning ground items will be removed in 60 seconds", in an almost invisible red inside a whole lot of colored text, and that's the only warning you get. I'd want to add an event that reads that message or part of it, and sends me a very noticeable pm (because it would be shown doubled) saying that very same thing, and another one 30 seconds later because this server doesn't have a 30 seconds warning. Just in case I'm very focused on building something xD
Is that possible?
Yes, although from your description i think you don't need to send yourself a PM at all.., you can display things directly on your screen so why bother the server (and get extra delay)
to see if a certain message appears, you can use IFMATCHES(%CHAT%,regexToCheckAgainst);yourcode;ENDIF
To show stuff in the chat area, you can use Log(message)
for example (you should make a better regex.., but)
$${
IFMATCHES(%CHAT%,"ground items will be removed");
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 60 seconds|");
Log("&c--------------------------------");
Wait(30);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 30 seconds|");
Log("&c--------------------------------");
Wait(20);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 10 seconds|");
Log("&c--------------------------------");
ENDIF;
}$$
But really the problem is that there's too much chat on the server.., i recommend working towards building a chat filter that puts random chat you don't care about into a separate chatarea or hides it completely, so you can have a manageable flow of messages that actually matter to you =P
Unfortunately, because every server formats their chat differently, there's no prebuilt solution to use, you'll have to craft a regular expression that works for your server
edit: But just to answer your question anyway, you can send yourself a PM by calling Echo(/pm %PLAYER% message), assuming /pm is the command on your server.
basically Echo(txt) sends txt as a chat packet
Yes, although from your description i think you don't need to send yourself a PM at all.., you can display things directly on your screen so why bother the server (and get extra delay)
to see if a certain message appears, you can use IFMATCHES(%CHAT%,regexToCheckAgainst);yourcode;ENDIF
To show stuff in the chat area, you can use Log(message)
for example (you should make a better regex.., but)
$${
IFMATCHES(%CHAT%,"ground items will be removed");
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 60 seconds|");
Log("&c--------------------------------");
Wait(30);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 30 seconds|");
Log("&c--------------------------------");
Wait(20);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 10 seconds|");
Log("&c--------------------------------");
ENDIF;
}$$
But really the problem is that there's too much chat on the server.., i recommend working towards building a chat filter that puts random chat you don't care about into a separate chatarea or hides it completely, so you can have a manageable flow of messages that actually matter to you =P
Unfortunately, because every server formats their chat differently, there's no prebuilt solution to use, you'll have to craft a regular expression that works for your server
edit: But just to answer your question anyway, you can send yourself a PM by calling Echo(/pm %PLAYER% message), assuming /pm is the command on your server.
basically Echo(txt) sends txt as a chat packet
Thank you, that was really interesting, I'm gonna run some tests on it to see how would it work better for me, tyvm
Looking over one of my scripts trying to make it a bit smaller and more neat. The script requires the placing of several blocks and all runs in a big loop with a few if statements inside of it. Currently to mark out how much of a item i have, i increase a counter (i know i could use a variable) to mark where i am. However since different parts of the script are isolated from each other i have to have copies of the same "class" that makes sure i have enough of an item to finish the "row" it is building. Like if i made only 1 counter system and didnt copy it i could potentially run out of blocks in the middle of one of the loops and the script would not realize it until it is out of that if statement.
Sorry this is kinda hard to understand and put into words. Ill throw something up here to show my issue
Do()
if(place)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
set(jumpplace)
endif
if(jumpsplace)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
endif
You see how i could not use the same "class" for each if statement bc they could run out of cobble in one of the ifstatements. Also they are shifting and leaning over blocks when this is happening, so this is not as simple as ending the if statement short and setting another ifstatement to true, then going back to the other one. Sorry i can understand if this is a confusing way to say this lol
Looking over one of my scripts trying to make it a bit smaller and more neat. The script requires the placing of several blocks and all runs in a big loop with a few if statements inside of it. Currently to mark out how much of a item i have, i increase a counter (i know i could use a variable) to mark where i am. However since different parts of the script are isolated from each other i have to have copies of the same "class" that makes sure i have enough of an item to finish the "row" it is building. Like if i made only 1 counter system and didnt copy it i could potentially run out of blocks in the middle of one of the loops and the script would not realize it until it is out of that if statement.
Sorry this is kinda hard to understand and put into words. Ill throw something up here to show my issue
Do()
if(place)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
set(jumpplace)
endif
if(jumpsplace)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
endif
You see how i could not use the same "class" for each if statement bc they could run out of cobble in one of the ifstatements. Also they are shifting and leaning over blocks when this is happening, so this is not as simple as ending the if statement short and setting another ifstatement to true, then going back to the other one. Sorry i can understand if this is a confusing way to say this lol
That code has unpaired blocks and the two halves look identical (aside from the pairing) - can't figure out what it's supposed to do...
What does the 30 in Do(30) stand for?
what are jumpplace, jumpsplace, and place?
Alternatively, can you include the entire (working) code or just describe what exactly it does?
That was just an example lol i just threw some words together. I will private msg you the actually code.
Oh, well if it's a subroutine you wanna use one way is to put it in its' own file and use a file include
$$<myScript.txt> will get replaced with the contents of that file (yes, you can put one file inside another, max depth is 10 (but you really shouldn't go above 3..., there's no reason to)
I'm going over the script now, see if i can find anything else to change (for example the very first condition checks the same thing twice, i assume you meant to compare both coordinates but the && wasn't working quite right (|| makes more sense there)
edit: It seems the file include limit is number, not depth? - had a bunch of two level includes and the last one would only go in a single level
*replaced with syncronous exec as a workaround
So whenever im tabbed out and "pauseontab" or whatever it is is disabled and my account tps somewhere, then back it cant mine. It will keep swinging at the block but wont do any damage to it anywhere. I think i have seen this exact issue described somewehre but unsure for a fix.
So nobody knows what happened to beta3? Was just wondering if it had a heafty bug or somethin.
No idea.., i thought it might be because of people linking it but that doesn't fully explain why the other two remain
....i guess maybe if it was a direct link it doesn't matter
Anyway, if you just find the latest post (mumfrey's, i mean) with a download link i would assume that works
could someone please make me a script that sends a "&6Welcome(&bplayername)" in chat when a player joins a server for the first time
not if some one joins the server period... just when they join for the first time ever i don't know f its even possible to determine if a player is new of not
maybe with the plugin that tracks how long a player has been on the server.... maybe the script could do like
ONPLAYERJOIN /ar check
if time played is less than 30 seconds... then say "&6Welcome(&bplayername)"
but i don't know how to put that into code please and thank you
could someone please make me a script that sends a "&6Welcome(&bplayername)" in chat when a player joins a server for the first time
not if some one joins the server period... just when they join for the first time ever i don't know f its even possible to determine if a player is new of not
maybe with the plugin that tracks how long a player has been on the server.... maybe the script could do like
ONPLAYERJOIN /ar check
if time played is less than 30 seconds... then say "&6Welcome(&bplayername)"
but i don't know how to put that into code please and thank you
This depends heavily on how your server works...
For example.., if your server doesn't automatically turn &6asd into colors, then there's no way to send colored chat (or rather, if you do the server kicks you because "Invalid character")
/ar check could work, but i've never seen that command before and i don't know exactly what it returns
if you could bind $${LogTo(debug.txt,%CHAT%}$$ to your onChat and capture an example of what the /ar check response looks like, that would help
(it's saved to your .minecraft/liteconfig/common/macros/logs)
Can someone help me? I need a macro that'll automine only ice, packed ice, and obsidian. Can someone explain how?
Break it down into small generic actions...
you want to have the attack key constantly triggered...
you also want to check whether your targetted block is one of three and decide what to do based on that
and then you also want to keep doing that indefinitely
triggering a bind - Key(attack) splitting based on a condition - IF(HITID == ice || HITID == packed_ice || HITID == obsidian);...;ELSE;...;ENDIF
Does anyone know the code to move every item in a chest into your inventory?
AND
Does anyone know the code to move every item in your inventory into a GUI (such as a chest)?
(every item is the same)
Unsure why this was posted twice by 2 people lol. If same person please be patient for the people that do this in their free time.
Part 1 (requires you to be in a chest already)
For(#check,0,53)
slotclick(%#check%,l,true)
next
Part 2 (assuming you are in a DOUBLE chest)
For(#check,55,89)
slotclick(%#check%,l,true)
next
Now technically this wont work since if a chest is full you cant take all the items, nor can you store and take at the same time, you would need a 2nd chest. But this will (attempt) to take out every item out of a chest for you. Part 2 will do the same thing but on the inventory side.
Oh, no no no.., the executable would never need to be updated.., it would simply download the newest version from some static location you can upload it to and overwrite the current script
and the actual script could use the HTTP module to check online for the version number too, or it could send you a hidden PM if you're online
for the end user, it's basically this:
Never had your script before:
Downloads the exe/jar/py, runs it - the script is automatically downloaded to his /macros/...
Has an up to date scripy:
Knows the script is up to date because it says it is, everything is great
There are newer versions:
When the script first runs, it tells the player that there's an update from version x.x.x to x.y.0
There's another script the player can run (another button) that tells him all the patch notes for all the versions above what he has, so he knows what's going to change
He simply runs the exe/jar/py again to update the mod, it should only take about 7 seconds
And just to be clear, you don't need to keep the old versions.., you just need a version number that always goes 'up' - the script checks that and replaces WHATEVER they currently have with the current. up-to-date version
edit: The post below me details one very specific way to do exactly this
'Cause tomorrow spring is here
Found a typo, just sayin', where you have the permissions and copyright stuff it says "You may redistribute the mod, provided it is umodified" (instead of unmodified.
Hey guys, I need some basic help here, could you point me out how to make an onChat event that, when it reads an specific message, it sends to myself a private message?
What do I want to do? I'm on a server that has clear lag, and it says "warning ground items will be removed in 60 seconds", in an almost invisible red inside a whole lot of colored text, and that's the only warning you get. I'd want to add an event that reads that message or part of it, and sends me a very noticeable pm (because it would be shown doubled) saying that very same thing, and another one 30 seconds later because this server doesn't have a 30 seconds warning. Just in case I'm very focused on building something xD
Is that possible?
Yes, although from your description i think you don't need to send yourself a PM at all.., you can display things directly on your screen so why bother the server (and get extra delay)
to see if a certain message appears, you can use IFMATCHES(%CHAT%,regexToCheckAgainst);yourcode;ENDIF
To show stuff in the chat area, you can use Log(message)
for example (you should make a better regex.., but)
$${
IFMATCHES(%CHAT%,"ground items will be removed");
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 60 seconds|");
Log("&c--------------------------------");
Wait(30);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 30 seconds|");
Log("&c--------------------------------");
Wait(20);
Log("&c--------------------------------");
Log("&c|Ground items will be removed in 10 seconds|");
Log("&c--------------------------------");
ENDIF;
}$$
But really the problem is that there's too much chat on the server.., i recommend working towards building a chat filter that puts random chat you don't care about into a separate chatarea or hides it completely, so you can have a manageable flow of messages that actually matter to you =P
Unfortunately, because every server formats their chat differently, there's no prebuilt solution to use, you'll have to craft a regular expression that works for your server
edit: But just to answer your question anyway, you can send yourself a PM by calling Echo(/pm %PLAYER% message), assuming /pm is the command on your server.
basically Echo(txt) sends txt as a chat packet
'Cause tomorrow spring is here
Thank you, that was really interesting, I'm gonna run some tests on it to see how would it work better for me, tyvm
Looking over one of my scripts trying to make it a bit smaller and more neat. The script requires the placing of several blocks and all runs in a big loop with a few if statements inside of it. Currently to mark out how much of a item i have, i increase a counter (i know i could use a variable) to mark where i am. However since different parts of the script are isolated from each other i have to have copies of the same "class" that makes sure i have enough of an item to finish the "row" it is building. Like if i made only 1 counter system and didnt copy it i could potentially run out of blocks in the middle of one of the loops and the script would not realize it until it is out of that if statement.
Sorry this is kinda hard to understand and put into words. Ill throw something up here to show my issue
Do()
if(place)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
set(jumpplace)
endif
if(jumpsplace)
do(30)
key(use)
pick(cobblestone)
inc(counter,1)
if(#counter = 256)
//get more cobble part here
endif
loop
endif
You see how i could not use the same "class" for each if statement bc they could run out of cobble in one of the ifstatements. Also they are shifting and leaning over blocks when this is happening, so this is not as simple as ending the if statement short and setting another ifstatement to true, then going back to the other one. Sorry i can understand if this is a confusing way to say this lol
That code has unpaired blocks and the two halves look identical (aside from the pairing) - can't figure out what it's supposed to do...
What does the 30 in Do(30) stand for?
what are jumpplace, jumpsplace, and place?
Alternatively, can you include the entire (working) code or just describe what exactly it does?
'Cause tomorrow spring is here
That was just an example lol i just threw some words together. I will private msg you the actually code.
Oh, well if it's a subroutine you wanna use one way is to put it in its' own file and use a file include
$$<myScript.txt> will get replaced with the contents of that file (yes, you can put one file inside another, max depth is 10 (but you really shouldn't go above 3..., there's no reason to)
I'm going over the script now, see if i can find anything else to change (for example the very first condition checks the same thing twice, i assume you meant to compare both coordinates but the && wasn't working quite right (|| makes more sense there)
edit: It seems the file include limit is number, not depth? - had a bunch of two level includes and the last one would only go in a single level
*replaced with syncronous exec as a workaround
'Cause tomorrow spring is here
Hi i have found a bug!!!!!!
No idea.., i thought it might be because of people linking it but that doesn't fully explain why the other two remain
....i guess maybe if it was a direct link it doesn't matter
Anyway, if you just find the latest post (mumfrey's, i mean) with a download link i would assume that works
'Cause tomorrow spring is here
could someone please make me a script that sends a "&6Welcome(&bplayername)" in chat when a player joins a server for the first time
not if some one joins the server period... just when they join for the first time ever i don't know f its even possible to determine if a player is new of not
maybe with the plugin that tracks how long a player has been on the server.... maybe the script could do like
ONPLAYERJOIN /ar check
if time played is less than 30 seconds... then say "&6Welcome(&bplayername)"
but i don't know how to put that into code please and thank you
This depends heavily on how your server works...
For example.., if your server doesn't automatically turn &6asd into colors, then there's no way to send colored chat (or rather, if you do the server kicks you because "Invalid character")
/ar check could work, but i've never seen that command before and i don't know exactly what it returns
if you could bind $${LogTo(debug.txt,%CHAT%}$$ to your onChat and capture an example of what the /ar check response looks like, that would help
(it's saved to your .minecraft/liteconfig/common/macros/logs)
'Cause tomorrow spring is here
Can someone help me? I need a macro that'll automine only ice, packed ice, and obsidian. Can someone explain how?
Break it down into small generic actions...
you want to have the attack key constantly triggered...
you also want to check whether your targetted block is one of three and decide what to do based on that
and then you also want to keep doing that indefinitely
triggering a bind - Key(attack)
splitting based on a condition - IF(HITID == ice || HITID == packed_ice || HITID == obsidian);...;ELSE;...;ENDIF
repeating a piece of logic - Do();...;Loop
Combining those
$${
Do();
IF(HITID == ice || HITID == packed_ice || HITID == obsidian);
Key(attack);
ENDIF;
Loop;
}$$
'Cause tomorrow spring is here
Does anyone know the code to move every item in a chest into your inventory?
AND
Does anyone know the code to move every item in your inventory into a GUI (such as a chest)?
(every item is the same)
Thank you so much!
Your explanation was also very helpful!
I just tried it out, and it seems to not work. Any ideas?
Is there a way to detect a full inventory?
Do();
IF((%HITID% = "ice") || (%HITID% = "packed_ice") || (%HITID% = "obsidian"));
Key(attack);
ENDIF;
Loop;
Im unsure marts method but i like to use a lot of extra characters
that worked for me.
Unsure why this was posted twice by 2 people lol. If same person please be patient for the people that do this in their free time.
Part 1 (requires you to be in a chest already)
For(#check,0,53)
slotclick(%#check%,l,true)
next
Part 2 (assuming you are in a DOUBLE chest)
For(#check,55,89)
slotclick(%#check%,l,true)
next
Now technically this wont work since if a chest is full you cant take all the items, nor can you store and take at the same time, you would need a 2nd chest. But this will (attempt) to take out every item out of a chest for you. Part 2 will do the same thing but on the inventory side.