Good news, I got FML and LiteLoader working together, but as soon I add Macro Mod beta, I get the sound issue... Its because of my ressource pack? or mods im using?
Good news, I got FML and LiteLoader working together, but as soon I add Macro Mod beta, I get the sound issue... Its because of my ressource pack? or mods im using?
The Meaning of Life, the Universe, and Everything.
Join Date:
6/23/2013
Posts:
53
Minecraft:
Geonecis
Member Details
People really need to check the last couple of pages before repeating the same reports over and over haha.
The sound issue is present in many mods currently, not just macro mod. To quickly fix this problem, while in game Press and hold [F3] then press [S]. This will reload your sound.
This will always get the slot 0 item, even though #sl is never 0 (proof by log).
SlotClick does not expect a variable, so you need to surround it in percent signs to force out the value
variables are only variables where they are expected..., anywhere else they're literal text
and obviously there is no slot "#sl"
Changing Keybind in-game does not stay in config. Each time I log in/out of SMP or save and reopen an SSP world it has bound back to "L".
The options.txt file does show the change if I watch it while playing, but it reverts to default when you re-launch minecraft.
Minecraft 1.6.2
FML Build 789
Also running OptiFine 1.6.2 HD U B3
and LiteLoader 1.6.2-01
P.S. Attempting to bind to "[" (Left Bracket) just in case that makes a difference.
I have no idea what would cause that to happen, I don't really interfere with the regular keybindings in any way, macros has its own input subsystem and doesn't use minecraft's at all. Does it save the key when you change it to anything but "["? and does it definitely keep the setting when not running macros?
Sorry to be a little off topic, but what happened to your youtube channel Mumfrey?
Nothing "happened" to it really, making videos is just massively time consuming and not being a regular "youtuber" I have to set myself in the right frame of mind before I begin and it often takes me several takes to get a usable video. I'm always busy IRL, have a full time job, and spend any other time that I can working on mods so it's just not really happened. I made the MCP video because it was important and a few of the devs in our team wanted to know about it.
I will get back to making videos at some point but it's just a tricky thing to fit in between everything else.
Is there a tick change event (like Config for example Event[1018])? If not will there be one in the future?
No, use a loop. Since any stack pop operator has an implied 1 tick yield (because that's how the preemptive multitasking in the mod works), any time a macro pops it gets suspended until the next tick. So this is a 1-tick loop:
DO; // push
// Something
LOOP; // pop
This is a 2-tick loop
DO; // push
IF(condition); // push
// Something
ENDIF; // pop
LOOP; // pop
This is a 1 tick loop again because we suppress the preemption with UNSAFE:
DO; // push
UNSAFE(50); // context switch
IF(condition); // push
// Something
ENDIF; // pop, pre-emption suppressed by UNSAFE until 50 pops occur
ENDUNSAFE;
LOOP; // pop
If using UNSAFE, in general you should always provide a number, specifying 0 removes all pre-emption so the game will crash if you make an infinite loop there.
But in a nutshell you can use the inherent behaviour of the executive to do anything you want on a per-tick basis, because every time you pop you yield until the next tick anyway.
Pre-emption is applied to every pop operator so ENDIF, LOOP, WHILE, UNTIL, NEXT.
INDEXOF() is case insensitive. So searching for "E" is returning the index number of "e". As you can guess, it throws a wrench into the gears of converting a base64 string back to binary.
I'm hoping it's a bug and not something done with purpose. lol.
INDEXOF() is case insensitive. So searching for "E" is returning the index number of "e". As you can guess, it throws a wrench into the gears of converting a base64 string back to binary.
I'm hoping it's a bug and not something done with purpose. lol.
It kind of is done on purpose since all the string manipulation functions apart from REPLACE are case-insensitive. I can add a case-sensitive switch to INDEXOF for release though if you want. In the mean time you could use base36 instead?
Actually I could just write you a module with BASE64_ENCODE and BASE64_DECODE in it but would that spoil some of the fun of doing all the processing in the macro?
It kind of is done on purpose since all the string manipulation functions apart from REPLACE are case-insensitive. I can add a case-sensitive switch to INDEXOF for release though if you want. In the mean time you could use base36 instead?
Actually I could just write you a module with BASE64_ENCODE and BASE64_DECODE in it but would that spoil some of the fun of doing all the processing in the macro?
The switch would be great. The module would be great too but you're right that part of the fun is in figuring it out yourself and learning something new, and I've already finished the scripts so I was just testing/debugging them.
Also is it possible for STRIP(&chat,%CHAT%);IFMATCHES(%&chat%,text) to pick up on LOG(text) rather than having to use ECHO(text)?
EDIT: I read the read me and watched the videos (which are hilarious btw haha), and I didn't find a clue
Log() doesn't trigger any event, no, but there's nothing stopping you from triggering something yourself
like
Log(%&yourvar%);Exec("yourscript","logreader",%&yourvar%)
or
Log(%&yourvar%);$$<chatrelatedscript.txt>
I'd give a more specific example if i knew what you were trying to do =P
Log() doesn't trigger any event, no, but there's nothing stopping you from triggering something yourself
like
Log(%&yourvar%);Exec("yourscript","logreader",%&yourvar%)
or
Log(%&yourvar%);$$<chatrelatedscript.txt>
I'd give a more specific example if i knew what you were trying to do =P
If I can't trigger anything with log I wont use it for this purpose. Basically I and trying to make it auto place signs by it reading the text and IF(text = text) if that makes sense
I just wanted to bring that file inclusion limit back up:
In the beta I stumbled into that limit of 10 because I'm getting more and more scripts for the onChat-Event. Putting all of the code in one file would make it even messier than it is already. So is there any chance of increasing the limit to 32 for the release, since it seems like a small change just to edit one number.
The switch would be great. The module would be great too but you're right that part of the fun is in figuring it out yourself and learning something new, and I've already finished the scripts so I was just testing/debugging them.
I'll add a switch, the module isn't a bad idea but it's remembering to keep them updated that I always struggle with.
If I can't trigger anything with log I wont use it for this purpose. Basically I and trying to make it auto place signs by it reading the text and IF(text = text) if that makes sense
That doesn't make sense, there's no way to read sign text :/
The Meaning of Life, the Universe, and Everything.
Join Date:
6/23/2013
Posts:
53
Minecraft:
Geonecis
Member Details
haha omg this is so funny. I'm so lame at explaining.
STRIP(&chat,%CHAT%);
IFMATCHES(%&chat%,\([0-9]+\) levels);
MATCH(%&chat%,\(([0-9]+)\) levels,{#ets});
IF(%#ets% = 1);
PLACESIGN([trade],17 exp,$0.01:0.01,,true);
and I have $${ECHO(($$?) levels)}$$ binded to a key.
I works but then everyone in chat wonders why I keep saying x levels :/ haha
haha omg this is so funny. I'm so lame at explaining.
STRIP(&chat,%CHAT%);
IFMATCHES(%&chat%,\([0-9]+\) levels);
MATCH(%&chat%,\(([0-9]+)\) levels,{#ets});
IF(%#ets% = 1);
PLACESIGN([trade],17 exp,$0.01:0.01,,true);
and I have $${ECHO(($$?) levels)}$$ binded to a key.
I works but then everyone in chat wonders why I keep saying x levels :/ haha
That makes no sense at all. Why are you triggering the PLACESIGN script from onChat at all ?
Optifine, FML & Liteloader (Improved Chat + Macro), bspkrs's Core & IngameInfo, Rei, TMI (Forge)
Log? Screenshot?
What method did you use to create the profiles?
Known issue. Press F3 and "S". It is being worked on.
Try my guide here: [1.6.2] - FORGE, OPTIFINE, LITELOADER, AND MAGIC LAUNCHER (NO JAR MODDING)
Semper Discendi Docendique
Code to test with (open chest GUI and run it with cobble in your inventory, and any item in slot 0):
This will always get the slot 0 item, even though #sl is never 0 (proof by log).
The sound issue is present in many mods currently, not just macro mod. To quickly fix this problem, while in game Press and hold [F3] then press [S]. This will reload your sound.
SlotClick does not expect a variable, so you need to surround it in percent signs to force out the value
variables are only variables where they are expected..., anywhere else they're literal text
and obviously there is no slot "#sl"
The correct code would be:
The change is in line 4, from SLOTCLICK(#sl,l,true); to SLOTCLICK(%#sl%,l,true);
'Cause tomorrow spring is here
Until next time, immediacy.
I have no idea what would cause that to happen, I don't really interfere with the regular keybindings in any way, macros has its own input subsystem and doesn't use minecraft's at all. Does it save the key when you change it to anything but "["? and does it definitely keep the setting when not running macros?
Nothing "happened" to it really, making videos is just massively time consuming and not being a regular "youtuber" I have to set myself in the right frame of mind before I begin and it often takes me several takes to get a usable video. I'm always busy IRL, have a full time job, and spend any other time that I can working on mods so it's just not really happened. I made the MCP video because it was important and a few of the devs in our team wanted to know about it.
I will get back to making videos at some point but it's just a tricky thing to fit in between everything else.
No, use a loop. Since any stack pop operator has an implied 1 tick yield (because that's how the preemptive multitasking in the mod works), any time a macro pops it gets suspended until the next tick. So this is a 1-tick loop:
This is a 2-tick loop
This is a 1 tick loop again because we suppress the preemption with UNSAFE:
If using UNSAFE, in general you should always provide a number, specifying 0 removes all pre-emption so the game will crash if you make an infinite loop there.
But in a nutshell you can use the inherent behaviour of the executive to do anything you want on a per-tick basis, because every time you pop you yield until the next tick anyway.
Pre-emption is applied to every pop operator so ENDIF, LOOP, WHILE, UNTIL, NEXT.
INDEXOF() is case insensitive. So searching for "E" is returning the index number of "e". As you can guess, it throws a wrench into the gears of converting a base64 string back to binary.
I'm hoping it's a bug and not something done with purpose. lol.
Demonstration Video: Youtube Link
It kind of is done on purpose since all the string manipulation functions apart from REPLACE are case-insensitive. I can add a case-sensitive switch to INDEXOF for release though if you want. In the mean time you could use base36 instead?
Actually I could just write you a module with BASE64_ENCODE and BASE64_DECODE in it but would that spoil some of the fun of doing all the processing in the macro?
Also is it possible for STRIP(&chat,%CHAT%);IFMATCHES(%&chat%,text) to pick up on LOG(text) rather than having to use ECHO(text)?
EDIT: I read the read me and watched the videos (which are hilarious btw haha), and I didn't find a clue
The switch would be great. The module would be great too but you're right that part of the fun is in figuring it out yourself and learning something new, and I've already finished the scripts so I was just testing/debugging them.
Demonstration Video: Youtube Link
Log() doesn't trigger any event, no, but there's nothing stopping you from triggering something yourself
like
Log(%&yourvar%);Exec("yourscript","logreader",%&yourvar%)
or
Log(%&yourvar%);$$<chatrelatedscript.txt>
I'd give a more specific example if i knew what you were trying to do =P
'Cause tomorrow spring is here
Okay will put in an option
Why are you ECHO'ing stuff to yourself? You can use EXEC instead if you want to create a separate task to the original macro.
I'll add a switch, the module isn't a bad idea but it's remembering to keep them updated that I always struggle with.
Nice work. You should be able to list all the available environment variables by using the iterator "env":
That doesn't make sense, there's no way to read sign text :/
STRIP(&chat,%CHAT%);
IFMATCHES(%&chat%,\([0-9]+\) levels);
MATCH(%&chat%,\(([0-9]+)\) levels,{#ets});
IF(%#ets% = 1);
PLACESIGN([trade],17 exp,$0.01:0.01,,true);
and I have $${ECHO(($$?) levels)}$$ binded to a key.
I works but then everyone in chat wonders why I keep saying x levels :/ haha
That makes no sense at all. Why are you triggering the PLACESIGN script from onChat at all ?
I know I'm not smart but I can learn
Parameters are parsed before the script is compiled, so you can just put them straight into the script: