Sorry if someone already asked but is there a way to color some words in the chat?
So I want to replace text in the chat.
For example, everytime someone writes the word "Admin" it should be colored red. I've done this with Improved Chat before, but as far as I know it won't be updated.
The detection is no problem, but how can you replace the text instead of detecting it and then use LOG() to mark it?
There is no easy way, no, but you could kind-of simulate it
the downside would be that every line of chat would update it all, so they all fade together with the last message, which can be spammy
Alternatively, we now have LogTo("debug","")
you can use that to create an edited chat stream, but you'll still have the original on the left, no matter what
Finished the armor script. It ignores whatever if something is in the equip slot, it equips chainmail if its in inventory and no armors equipped in that slot, it gives you the items fully enchanted and then equips them otherwise. It also makes sure you are in survival as creatives survival inventory is "glitched" with 0 slots.
When I try to download the Modloader.class it says my java isn't updated enough even though I am runnign the latest java 7 update 5. Any way I could get the .class file?
For all crafting or inventory operations, you need to manually open the inventory
change it to
/sell rottenflesh|/sell ihelm|/sell ispade|/sell isword|/sell ghelm|/sell gsword|/sell arrow|/sell bow|$${Gui(Inventory);CRAFT(352);Gui()}$$|/sell bonem|$${wait(5);logto("debug","&6Sold all the items sir!");PLAYSOUND(custom.buy)}$$
----
This is probably by design and hard to change..., but if you can think of a workaround, it would be really helpful for the buttons themselves to be per-config
I just tried this, and now "Sold ll the items sir!" doesn't show in chat, it opens the inventory, but it doesn't craft bones to bonemeal, nether does it close the Gui. I got the log to show back up by reverting it to LOG("Sold all the items sir!") Instead of logto("debug","Sold all the items sir!")
Edit: I am on beta 1 for 1.2.5, I thought I waa on beta 2 for 1.2.5, but apparently there isn't even a beta 2 for 1.2.5 .-.
Edit two: o.O 0.9 1.3.1 works with 1.2.5 modloader/client? That macro still won't work tho.
Rollback Post to RevisionRollBack
I began minecraft ~July 7 2011 1.7.3 Beta
My username used to be Creative_Dalek but is now Dalek since 2/4/2015
Yeah I'm using minecraft 1.3 and running Macro/Keybinds Mod through the old installer thingy (still 1.3 but not with modloader). Still with your macro it still spams after 10 seconds
There is no easy way, no, but you could kind-of simulate it
the downside would be that every line of chat would update it all, so they all fade together with the last message, which can be spammy
Alternatively, we now have LogTo("debug","")
you can use that to create an edited chat stream, but you'll still have the original on the left, no matter what
Either way, it will be a bunch of scripting
Not strictly true, since you can hide the minecraft chat now in the options. So you could add a new textarea called "chat" (or even add several, like one for PM's, one for notifications, etc.) then just log the chat to those areas:
Finished the armor script. It ignores whatever if something is in the equip slot, it equips chainmail if its in inventory and no armors equipped in that slot, it gives you the items fully enchanted and then equips them otherwise. It also makes sure you are in survival as creatives survival inventory is "glitched" with 0 slots.
Nice script! I'd recommend using regular IF for straightforward comparisons rather than IFMATCHES, because the expression parser is lighter weight than regex.
I just tried this, and now "Sold ll the items sir!" doesn't show in chat, it opens the inventory, but it doesn't craft bones to bonemeal, nether does it close the Gui. I got the log to show back up by reverting it to LOG("Sold all the items sir!") Instead of logto("debug","Sold all the items sir!")
Edit: I am on beta 1 for 1.2.5, I thought I waa on beta 2 for 1.2.5, but apparently there isn't even a beta 2 for 1.2.5 .-.
Edit two: o.O 0.9 1.3.1 works with 1.2.5 modloader/client? That macro still won't work tho.
CRAFT must be the last command in your script or must be followed by some construct that makes the script wait until the crafting process has completed like the example I posted above. Even if you just use a flag. Also, auto-crafting only really works properly with the latest version (release for 1.3.1) so make sure you're running that version.
All the config files are stored under ./minecraft/mods/macros and are named accordingly. So warps go in .warps.txt, towns in .towns.txt. If you're using linux you'll need to show hidden files in order to see them.
The format in the files is pretty simple, each entry has an icon ID followed by a colon and then the entry. You can set display names by putting [Display=Whatever text] immediately following the name:
6:MyTown[Display=My Town]
uses icon index 6 for a town called "MyTown" and displays as "My Town".
Not strictly true, since you can hide the minecraft chat now in the options. So you could add a new textarea called "chat" (or even add several, like one for PM's, one for notifications, etc.) then just log the chat to those areas:
Would be pretty nifty, you can prepend colour and formatting codes as well.
You can create text areas!!?, how!? =o
Nice script! I'd recommend using regular IF for straightforward comparisons rather than IFMATCHES, because the expression parser is lighter weight than regex.
I told him to use IFMATCHES specifically because i had a script with IF(MODE = 1), and no matter what i tried, it always evaluated to true..., ALWAYS
(tried also, for example, IF("%MODE%" = "1"), among others)
Using IFMATCHES fixed it
CRAFT must be the last command in your script or must be followed by some construct that makes the script wait until the crafting process has completed like the example I posted above. Even if you just use a flag. Also, auto-crafting only really works properly with the latest version (release for 1.3.1) so make sure you're running that version.
Would a Wait(5) work?, or does the script itself need to stop at that point
Could i use an Exec to start a process with the craft command only?
At the moment you need to edit them directly into the .gui.xml file, the syntax is pretty self-explanatory but you have to make sure that all controls across all GUI's have unique ID's. Set the "name" parameter to the name you want to use in the LOGTO command.
I told him to use IFMATCHES specifically because i had a script with IF(MODE = 1), and no matter what i tried, it always evaluated to true..., ALWAYS
(tried also, for example, IF("%MODE%" = "1"), among others)
Using IFMATCHES fixed it
Because the evaluator treats 0 and 1 as false and true, you can actually just use:
Would a Wait(5) work?, or does the script itself need to stop at that point
Well no, CRAFT is like EXEC in that it kicks off a process that runs separately to the script, so if you want your script to run synchronously with the crafting operation you must use the onAutoCraftingComplete event to signal your original script that stuff is completed. You could use a WAIT but it's pretty risky, because you won't know if it's completed, if it failed, or what. Because crafting is managed by a separate module, it can't really happen in-line in the script because there's just too many things that might happen, and the amount of time is not predetermined or even easy to predict, especially if you factor in that the server might lag or any number of other factors like the user closing the GUI mid-craft or whatever.
onAutoCraftingComplete is the key to making synchronous automatic behaviour, but auto-crafting is pretty complex, and so there's no "get out of jail free" that will make it simple, at the end of the day it saves an absolute tonne of effort, so it makes sense to require at least some expenditure of thought to come up with ingenious solutions for auto-crafting too.
At the very simplest, you could do something like this (to make a blocking behaviour):
in your script
@crafting = true;
CRAFT(352);
DO;WHILE(@crafting);
LOG("Crafting finished with status %@&crafted%");
Also, i have to disagree with your first point for another reason
Setting your chat to hidden doesn't only hide it..., it blocks it both ways
You can't send messages, not even with a hotkey
and you don't receive messages..., a simple LogTo("debug","%CHAT%") stops working when you change it to hidden
With "commands only" you seem to receive all messages, so it's as good as not using the option at all, and it also blocks you from talking
Edit: also, thanks for the above explanation
Edit2: Is that button layout configs i see in the .gui file? does this mean we can switch between layouts soon? =o
I just tried it in-game, it works fine
did you not press a key?, did you bind it to a key that's already reserved or in use?,
if you copied it over and it's not working, then it must not even be getting triggered
There is no easy way, no, but you could kind-of simulate it
the downside would be that every line of chat would update it all, so they all fade together with the last message, which can be spammy
Alternatively, we now have LogTo("debug","")
you can use that to create an edited chat stream, but you'll still have the original on the left, no matter what
Either way, it will be a bunch of scripting
'Cause tomorrow spring is here
Cheers.
I just tried this, and now "Sold ll the items sir!" doesn't show in chat, it opens the inventory, but it doesn't craft bones to bonemeal, nether does it close the Gui. I got the log to show back up by reverting it to LOG("Sold all the items sir!") Instead of logto("debug","Sold all the items sir!")
Edit: I am on beta 1 for 1.2.5, I thought I waa on beta 2 for 1.2.5, but apparently there isn't even a beta 2 for 1.2.5 .-.
Edit two: o.O 0.9 1.3.1 works with 1.2.5 modloader/client? That macro still won't work tho.
I began minecraft ~July 7 2011 1.7.3 Beta
My username used to be Creative_Dalek but is now Dalek since 2/4/2015
That IS a welcome script, bind that to "OnPlayerJoin" and you're golden
'Cause tomorrow spring is here
But when I join it says Hi *everyone on the server*
OnJoinGame
$${Set(@justspawned);Wait(10);UnSet(@justspawned)}$$
OnPlayerJoin
$${Wait(1);IF(!justspawned);Echo(Hey, %JOINEDPLAYER%);ENDIF}$$
'Cause tomorrow spring is here
Yeah I'm using minecraft 1.3 and running Macro/Keybinds Mod through the old installer thingy (still 1.3 but not with modloader). Still with your macro it still spams after 10 seconds
Not strictly true, since you can hide the minecraft chat now in the options. So you could add a new textarea called "chat" (or even add several, like one for PM's, one for notifications, etc.) then just log the chat to those areas:
onChat
Would be pretty nifty, you can prepend colour and formatting codes as well.
Nice script! I'd recommend using regular IF for straightforward comparisons rather than IFMATCHES, because the expression parser is lighter weight than regex.
You're running a conflicting mod, this kind of "it's broken" message is not very helpful, post more information.
CRAFT must be the last command in your script or must be followed by some construct that makes the script wait until the crafting process has completed like the example I posted above. Even if you just use a flag. Also, auto-crafting only really works properly with the latest version (release for 1.3.1) so make sure you're running that version.
The format in the files is pretty simple, each entry has an icon ID followed by a colon and then the entry. You can set display names by putting [Display=Whatever text] immediately following the name:
uses icon index 6 for a town called "MyTown" and displays as "My Town".
'Cause tomorrow spring is here
Please post more information, pictures don't help.
Please provide a minimum of:
At the moment you need to edit them directly into the .gui.xml file, the syntax is pretty self-explanatory but you have to make sure that all controls across all GUI's have unique ID's. Set the "name" parameter to the name you want to use in the LOGTO command.
Because the evaluator treats 0 and 1 as false and true, you can actually just use:
Well no, CRAFT is like EXEC in that it kicks off a process that runs separately to the script, so if you want your script to run synchronously with the crafting operation you must use the onAutoCraftingComplete event to signal your original script that stuff is completed. You could use a WAIT but it's pretty risky, because you won't know if it's completed, if it failed, or what. Because crafting is managed by a separate module, it can't really happen in-line in the script because there's just too many things that might happen, and the amount of time is not predetermined or even easy to predict, especially if you factor in that the server might lag or any number of other factors like the user closing the GUI mid-craft or whatever.
onAutoCraftingComplete is the key to making synchronous automatic behaviour, but auto-crafting is pretty complex, and so there's no "get out of jail free" that will make it simple, at the end of the day it saves an absolute tonne of effort, so it makes sense to require at least some expenditure of thought to come up with ingenious solutions for auto-crafting too.
At the very simplest, you could do something like this (to make a blocking behaviour):
in your script
in onAutoCraftingComplete
This wouldn't really achieve anything, since crafting is asynchronous anyway.
Setting your chat to hidden doesn't only hide it..., it blocks it both ways
You can't send messages, not even with a hotkey
and you don't receive messages..., a simple LogTo("debug","%CHAT%") stops working when you change it to hidden
With "commands only" you seem to receive all messages, so it's as good as not using the option at all, and it also blocks you from talking
Edit: also, thanks for the above explanation
Edit2: Is that button layout configs i see in the .gui file? does this mean we can switch between layouts soon? =o
'Cause tomorrow spring is here
-> I am so stupid -.-
Macro/Keybind mod Wiki
Thanks and i just tried changing the IFMATCHES to IF statements like that example trying !MODE and MODE at the beginning
Both did nothing
$${DO(10);Key(Attack);Wait(20ms);LOOP}$$
I just tried it in-game, it works fine
did you not press a key?, did you bind it to a key that's already reserved or in use?,
if you copied it over and it's not working, then it must not even be getting triggered
'Cause tomorrow spring is here