NOTE: this does not work with scrach, or panther only on BYOB
-------------------------------------------------------------------------------------------------------------------------
1. goto the folder were you installed BYOB,click BYOB develoment, byob should load up, shift click the edit menu, hit "turnfilscreenoff"
2. right click anywhere in the white space that appears.
3. click open then browser
4 goto: scrach-objects/scriptablescrachmorph/class/block specs/blockSpecs
5. instead of theis code:
blockSpecs
| t1 |
t1 _ #('control' ('when %m clicked' #S #-) ('when %k key pressed' #K #-) ('when %m clicked' #M #-) #- ('wait %n secs' #t #wait:elapsed:from: 1) #- ('forever' #c #doForever) ('repeat %n' #c #doRepeat 10) #- ('broadcast %e' #- #broadcast:) ('broadcast %e and wait' #s #doBroadcastAndWait) ('when I receive %e' #E #-) #- ('forever if %b' #c #doForeverIf) ('if %b' #c #doIf) ('if %b' #c #doIfElse) ('wait until %b' #s #doWaitUntil) ('repeat until %b' #c #doUntil) #- ('stop script' #s #doReturn) ('stop all' #- #stopAll) 'operators' ('%n + %n' #r #+ #- #-) ('%n - %n' #r #- #- #-) ('%n * %n' #r #* #- #-) ('%n / %n' #r #/ #- #-) #- ('pick random %n to %n' #r #randomFrom:to: 1 10) #- ('%s < %s' #b #< '' '') ('%s = %s' #b #= '' '') ('%s > %s' #b #> '' '') #- ('%b and %b' #b #&) ('%b or %b' #b #|) ('not %b' #b #not) #- ('join %s %s' #r #concatenate:with: 'hello ' 'world') ('letter %n of %s' #r #letter:of: 1 'world') ('length of %s' #r #stringLength: 'world') #- ('%n mod %n' #r #\\ #- #-) ('round %n' #r #rounded #-) #- ('%f of %n' #r #computeFunction:of: 'sqrt' 10) 'sound' ('play sound %S' #- #playSound:) ('play sound %S until done' #s #doPlaySoundAndWait) ('stop all sounds' #- #stopAllSounds) #- ('play drum %D for %n beats' #t #drum:duration:elapsed:from: 48 0.2) ('rest for %n beats' #t #rest:elapsed:from: 0.2) #- ('play note %N for %n beats' #t #noteOn:duration:elapsed:from: 60 0.5) ('set instrument to %I' #- #midiInstrument: 1) #- ('change volume by %n' #- #changeVolumeBy: -10) ('set volume to %n%' #- #setVolumeTo: 100) ('volume' #r #volume) #- ('change tempo by %n' #- #changeTempoBy: 20) ('set tempo to %n bpm' #- #setTempoTo: 60) ('tempo' #r #tempo) 'motor' ('motor on for %n secs' #t #motorOnFor:elapsed:from: 1) ('motor on' #- #allMotorsOn) ('motor off' #- #allMotorsOff) ('motor power %n' #- #startMotorPower: 100) ('motor direction %W' #- #setMotorDirection: 'this way') 'variables' ('show variable %v' #- #showVariable:) ('hide variable %v' #- #hideVariable:) 'list' ('add %s to %L' #- #append:toList: 'thing') #- ('delete %y of %L' #- #deleteLine:ofList: 1) ('insert %s at %i of %L' #- #insert:at:ofList: 'thing' 1) ('replace item %i of %L with %s' #- #setLine:ofList:to: 1 'list' 'thing') #- ('item %i of %L' #r #getLine:ofList: 1) ('length of %L' #r #lineCountOfList:) ('%L contains %s' #b #list:contains: 'list' 'thing') )
^ t1 , self obsoleteBlockSpecsput:
blockSpecs
| t1 |
t1 _ #('control' ('when %m clicked' #S #-) (' mind control %m to do script/block:' #c #doTellSpriteTo) ('when %k key pressed' #K #-) ('when %m clicked' #M #-) #- ('wait %n secs' #t #wait:elapsed:from: 1) #- ('forever' #c #doForever) ('repeat %n' #c #doRepeat 10) #- ('broadcast %e' #- #broadcast:) ('broadcast %e and wait' #s #doBroadcastAndWait) ('when I receive %e' #E #-) #- ('forever if %b' #c #doForeverIf) ('if %b' #c #doIf) ('if %b' #c #doIfElse) ('wait until %b' #s #doWaitUntil) ('repeat until %b' #c #doUntil) #- ('stop script' #s #doReturn) ('stop all' #- #stopAll) 'operators' ('%n + %n' #r #+ #- #-) ('%n - %n' #r #- #- #-) ('%n * %n' #r #* #- #-) ('%n / %n' #r #/ #- #-) #- ('pick random %n to %n' #r #randomFrom:to: 1 10) #- ('%s < %s' #b #< '' '') ('%s = %s' #b #= '' '') ('%s > %s' #b #> '' '') #- ('%b and %b' #b #&) ('%b or %b' #b #|) ('not %b' #b #not) #- ('join %s %s' #r #concatenate:with: 'hello ' 'world') ('letter %n of %s' #r #letter:of: 1 'world') ('length of %s' #r #stringLength: 'world') #- ('%n mod %n' #r #\\ #- #-) ('round %n' #r #rounded #-) #- ('%f of %n' #r #computeFunction:of: 'sqrt' 10) 'sound' ('play sound %S' #- #playSound:) ('play sound %S until done' #s #doPlaySoundAndWait) ('stop all sounds' #- #stopAllSounds) #- ('play drum %D for %n beats' #t #drum:duration:elapsed:from: 48 0.2) ('rest for %n beats' #t #rest:elapsed:from: 0.2) #- ('play note %N for %n beats' #t #noteOn:duration:elapsed:from: 60 0.5) ('set instrument to %I' #- #midiInstrument: 1) #- ('change volume by %n' #- #changeVolumeBy: -10) ('set volume to %n%' #- #setVolumeTo: 100) ('volume' #r #volume) #- ('change tempo by %n' #- #changeTempoBy: 20) ('set tempo to %n bpm' #- #setTempoTo: 60) ('tempo' #r #tempo) 'motor' ('motor on for %n secs' #t #motorOnFor:elapsed:from: 1) ('motor on' #- #allMotorsOn) ('motor off' #- #allMotorsOff) ('motor power %n' #- #startMotorPower: 100) ('motor direction %W' #- #setMotorDirection: 'this way') 'variables' ('show variable %v' #- #showVariable:) ('hide variable %v' #- #hideVariable:) 'list' ('add %s to %L' #- #append:toList: 'thing') #- ('delete %y of %L' #- #deleteLine:ofList: 1) ('insert %s at %i of %L' #- #insert:at:ofList: 'thing' 1) ('replace item %i of %L with %s' #- #setLine:ofList:to: 1 'list' 'thing') #- ('item %i of %L' #r #getLine:ofList: 1) ('length of %L' #r #lineCountOfList:) ('%L contains %s' #b #list:contains: 'list' 'thing') ).
^ t1 , self obsoleteBlockSpecsafter you put that in right click anywhere in the code box and hit "acept"
now goto: Scratch-Execution Engine/Scrachprocess/private-special forms
now enter in this code:
doTellSpriteTo
| t1 t2 t3 |
t1 _ stackFrame expression.
t2 _ stackFrame arguments.
t2 size = 0
ifTrue:
[t3 _ t1 argumentAt: 1.
^ self pushStackFrame: (ScratchStackFrame new expression: t3)].
self popStackFrame.
t3 _ t1 fullCopy.
t3 firstBlockList do: [:t4 | t4 receiver: (ScriptableScratchMorph new coerceSpriteArg: t2 first)].
self pushStackFrame: (ScratchStackFrame new expression: t3 firstBlockList)now right click it and hit "acept".close out of the browser.
shift click the edit menu again, hit "turnfillscreenon", then hit "save image for end user" click ok then load byob up. make 2 sprites, make this code: [blocks]
<when green flag clicked>
mind control {sprite2} to do script/block:
<say[ hello]
<end>
[/blocks]
run the script and it shoulld make sprite 2 to say "hello"
Offline
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
Offline
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
Offline
ssss wrote:
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
wiki wrote:
To Do Blocks
* [make {sprite^} do: (C Block, not worked on yet)
Offline
scimonster wrote:
ssss wrote:
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
wiki wrote:
To Do Blocks
* [make {sprite^} do: (C Block, not worked on yet)
Sorry, devs have been a bit inactive, and the wiki needs updating! We also need to make a new website, so... I'll work on the wiki now!
Offline
ssss wrote:
scimonster wrote:
ssss wrote:
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
wiki wrote:
To Do Blocks
* [make {sprite^} do: (C Block, not worked on yet)Sorry, devs have been a bit inactive, and the wiki needs updating! We also need to make a new website, so... I'll work on the wiki now!
Yeah, I haven't seen too much activity on your thread.
EDIT: 1800TH POST!
[/offtopic]
Last edited by scimonster (2011-04-18 00:00:40)
Offline
ssss wrote:
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
Well, Its really a nice step taken by you and i really appreciate it. As you said you will think about using this thing also in scratch then this is really good.
Offline
jassmine12 wrote:
ssss wrote:
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
Well, Its really a nice step taken by you and i really appreciate it. As you said you will think about using this thing also in scratch then this is really good.
Well, i'm not the scratch team, so i can't say to use it in scratch
I'm an RKT dev (well actually, the creator of RKT) and i will think about adding this as an add-on. if you want to do a mind control in scratch, then i will have to upload a project showing how to do that
Offline
I love how everyone is going crazy over this guide, but no one payed any attention to my guide which actually works...
Sorry, but this doesn't work with reporters. Example: Telling a sprite to say its x-position will make it say the x-position of the sprite using the block.
Offline
He probably got this from Slash. If you're using a block that has a special thing in the ScratchProcess, you need to put it into a BYOB block.
Offline
rubiks_cube_guy238 wrote:
I love how everyone is going crazy over this guide, but no one payed any attention to my guide which actually works...
Sorry, but this doesn't work with reporters. Example: Telling a sprite to say its x-position will make it say the x-position of the sprite using the block.
I did. I was about to point out that you had already made it, then I saw you had done it already.
Offline
He even took my terminology for it.
Offline
ssss wrote:
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
Well, we'll think about it. However, you have to remember we aim, not to make programming to easy, just to add lacking features of scratch, and compatibility with other programming languages. While this does seem like a good thing, if you think about it could be accomplished without the block! Just like, rather than have 'change cursor to' I am planning on making it 'hide cursor' & 'show cursor'. With this you could easily do the exact same as change cursor to, with more effort. So, you get it? RKT adds features that really are needed, not make pointless blocks!
I think we should add it.
Offline
scimonster wrote:
IT WORKS IN SCRATCH! AWESOME! Hey, the RKT devs might want to look at this...
![]()
thank you
Offline
thegombafan wrote:
NOTE: this does not work with scrach, or panther only on BYOB
Well, in theory it would work in Scratch and Panther, since BYOB, Scratch, and Panther are all based on the same version of Squeak.
Last edited by celloguy123 (2011-04-19 18:21:28)
Offline
celloguy123 wrote:
thegombafan wrote:
NOTE: this does not work with scrach, or panther only on BYOB
Well, in theory it would work in Scratch and Panther, since BYOB, Scratch, and Panther are all based on the same version of Squeak.
![]()
I think they do, I'm using it in Scratch.
Offline
Squeak is giving me errors like declare temp! Help!
Offline
you can easily do this in BYOB 3.1
tell (sprite) to (code[) Sprite is an object input, code is a c input.
rur ((code)of(sprite))
Offline
jalkan wrote:
why cant you just use broadcasts?
well, we are talking about modding scratch here, and its much easier
Offline
thebuilderdd wrote:
Squeak is giving me errors like declare temp! Help!
Scratch-Execution Engine/Scrachprocess/private-special forms go there, then insert the code
Offline
"mind-controll block!!"
Lol.
Offline