Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Reload this Page [Tutorial] Scripting Guide for Beginner Hackers

Notices
For all updates, view the main page.

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.



Closed Thread
 
Thread Tools
  #26    
Old December 31st, 2007 (03:48 AM).
akash's Avatar
akash akash is offline
Pikachu is the best.
 
Join Date: Dec 2007
Location: India
Age: 21
Gender:
Nature: Calm
Posts: 21
Well thanks thethethethe. And martin its ok cuz I downloaded PKSV. Well thanks anyways. HAPPY NEW YEAR.
__________________




Need help in pokemon ruby hack for:
Title screen editing.
Scripting.
How to add warps.
editing maps.

  #27    
Old December 31st, 2007 (12:34 PM).
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
Happy new year, people! And look forward to the new part! Checkgender and start of tutorial 2!
__________________
If you remeber me, feel free to send me a PM ;-)
  #28    
Old January 7th, 2008 (04:25 AM).
thethethethe thethethethe is offline
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by Martin²:
checkgender 0x*

Asterisk represents either 0 or 1 where 0 is male, 1 is female.
Just a little response to this statement. Checkgender only needs one byte to work, A0, If you were to add an extra byte to the end of it, it would just act as a nop and just be wasted space, wouldn't it? It wouldn't really do anything. The compare is supposed to be what checks if it's boy or girl. Like you said 0x0=male, 0x1=female.

But I guess, I'd better ask, does it work this way too, becasue that's whats important?
__________________
Gone.
  #29    
Old January 9th, 2008 (12:38 PM). Edited January 12th, 2008 by Νιτραμ.
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
Ah, I see. I know what you mean now. It seems that I just misplaced that. *corrects*

Thanks :)

And yes, it worked last time I used it that way. But anyway, I have wrong statemet there, and that's what I don't want.

EDIT/REPOST: The guide was accidentally deleted, a little problem occured. Now... The guide is restored - big thanks to Hiroshi Sotomura for his kindness and mainly for restoration of the guide.

Checkgender Guide

You might sometimes need to check if player chose male or female gender in the start. It can be handy when you want to call someone "dude" or "chick" - you know, it would be silly i a boy named e.g. Travis was called "chick" :D No, we cannot let that this way. There is a command that checks gender.

checkgender

You need to use compare command again.


compare LASTRESULT 0x*


Asterisk represents either 0 or 1 where 0 is male, 1 is female.

So, look at the example. If you wnat to put this into a script, don't forget to replace 0xoffset with valid offset e.g. 0xB00000

#org 0xoffset
lock
faceplayer

checkgender
compare LASTRESULT
0x1 - if player is female, then
if 0x1 goto 0xoffset2 - go to offset
... - if player is male, script continues normally.
release
end


#org 0xoffset2
...
release
end


As you should know basic message commands, I didn't put them into the example. If you want, you can try to make a script and then post it here to be checked.
__________________
If you remeber me, feel free to send me a PM ;-)
  #30    
Old January 11th, 2008 (03:01 PM).
TB Pro's Avatar
TB Pro TB Pro is offline
Old-timer
 
Join Date: Nov 2004
Location: Midwestern USA
Age: 20
Gender: Male
Posts: 2,739
Okay,
Here goes!
I'm a little rusty sooo...
Spoiler:
Code:
#org 0x800000
lock
faceplayer
checkgender
compare LASTRESULT 0x1
goto 0x800200
boxset 6
0x800000 = Hi, Man!/n Wats up?
release
end

#org 0x800200
0x800200 = Hey, Girl!/n How's it goin'?
release
end
__________________
--I'm a creepin'..
  #31    
Old January 12th, 2008 (12:40 AM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
I think your beginning to understand this...
I've also realised my old PokeScript scripts didn't work because they were made as ScriptEd scripts xD

I think it should look like this:

Code:
#org 0x800000
lock
faceplayer
checkgender
compare LASTRESULT 0x1
goto 0x800200
boxset 0x06
message 0x800100
boxset 0x06
release
end

#org 0x800100
= Hey dude!\n Whats up?

#org 0x800200
= Hey girl!\n Hows it going?
I didn't really know where to put the boxsets, so I experimented a little.
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #32    
Old January 12th, 2008 (12:55 PM).
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
You corrected it, but your correction needs a correction, too ;) Don't worry, it won't hurt that much.

#org 0x800000
lock
faceplayer
checkgender
compare LASTRESULT 0x1
if 0x1 goto 0x800200
message 0x800100
callstd 0x6
release
end

#org 0x800100
= Hey dude!\n What's up?

#org 0x800200
msgbox 0x800300
callstd 0x6
release
end

#org 0x800300
= Hey girl!\n How's it going?

It is better now. Mainly because you cannot put the goto command pointing directly to a message.
And I replaced boxsets with callstd. It will sure work with both ways, but I like callstd more :D

And I know now why there was amistake with the goto command, I forgot to put in the "if" routine. It's fixed in the guide, now.

And Blazikendude, FORGET EVERYTHING YOU LEARNED WITH POKéSCRIPT TUTORIALS. ScriptED's language is pretty much different so don't mix up the two. It may work in Pokéscript but it WON'T WORK IN SCRIPTED.
__________________
If you remeber me, feel free to send me a PM ;-)
  #33    
Old January 12th, 2008 (08:19 PM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Thanks for fixing that, I was thinking about if the goto needed an "if", and it bothered me quite a bit xD.
I can tell that ScriptEd is alot different from PokeScript xD.
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #34    
Old January 13th, 2008 (12:36 PM).
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
And therefore I don't recommend using the two at the same time. You should choose if you want to stay with one or another, and that should be definitive. Personally, I have nothing against Irish Witch, but I don't like the mess Pokéscript caused amongst ScriptEd usera and therefore I strongly recommend to use ScriptEd instead. Everyone who isn't sure how to write out commands in ScriptEd can freely look in this guide and the content will expand with enough feedback.
__________________
If you remeber me, feel free to send me a PM ;-)
  #35    
Old January 13th, 2008 (03:35 PM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Alright, can I use #raw and specials in ScriptEd?
That would help me replace commands I don't know.
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #36    
Old January 13th, 2008 (04:45 PM).
TB Pro's Avatar
TB Pro TB Pro is offline
Old-timer
 
Join Date: Nov 2004
Location: Midwestern USA
Age: 20
Gender: Male
Posts: 2,739
What does a #RAW command do anyway?
I never quite found out what they do.
__________________
--I'm a creepin'..
  #37    
Old January 13th, 2008 (04:52 PM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Well, a #raw command is sought of like a hex command, instead of using the proper command in the program, you use a hex code if you don't know the actual command or if it wont work. In all programs there are no movements called ; left, right, up or down. They are #raw's. Atleast that's what I learnt O.o
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #38    
Old January 13th, 2008 (05:05 PM).
TB Pro's Avatar
TB Pro TB Pro is offline
Old-timer
 
Join Date: Nov 2004
Location: Midwestern USA
Age: 20
Gender: Male
Posts: 2,739
Oh!
Thank you Carshink!
You are the only person who atually awnsers my n00bish scripting questions!
Thank you so much!
Now are you saying that #RAW commands are movement commands?
Anyways,
I thank you so much!
__________________
--I'm a creepin'..
  #39    
Old January 13th, 2008 (05:45 PM).
thethethethe thethethethe is offline
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by Crashink:
Alright, can I use #raw and specials in ScriptEd?
That would help me replace commands I don't know.
Of course. "special" is a command common between both scriptED and pokescript. And #raw can be used in both.
But Martin² might correct me here... but in pokescript, you can use #raw's like this...
Code:
#raw 0x53 0x0F 0x80
But it needs to be used like this in ScriptED...
Code:
#raw 0x53
#raw 0x0F
#raw 0x80
Quote originally posted by Teh Blaziken:
Oh!
Now are you saying that #RAW commands are movement commands?
Anyways,
I thank you so much!
#raw commands are anything. Movements are #raw's. All commands are #raw's. Let me put it this way. Here's a normal script.
Code:
#org 0x800000
#raw 0x6A
#raw 0x5A
#raw 0x0F
#raw 0x00
#raw 0x0D
#raw 0x00
#raw 0x80
#raw 0x08
#raw 0x09
#raw 0x06
#raw 0x6C
#raw 0x02
This script in #raw's will do the exact same thing as this script below. (I left out pointers)
Code:
#org 0x800000
lock
faceplayer
message 0x80000D
boxset 6
release
end
Scripting in hex is the same as Scripting in #raw's.
__________________
Gone.
  #40    
Old January 13th, 2008 (06:09 PM).
TB Pro's Avatar
TB Pro TB Pro is offline
Old-timer
 
Join Date: Nov 2004
Location: Midwestern USA
Age: 20
Gender: Male
Posts: 2,739
Oh I see.
So #RAW's are just...
Anything.
__________________
--I'm a creepin'..
  #41    
Old January 13th, 2008 (11:57 PM).
Jayster23's Avatar
Jayster23 Jayster23 is offline
A Promise To Return
 
Join Date: Jan 2008
Location: Straya
Age: 18
Gender: Male
Posts: 1,241
Im the biggest n00b at scripting so can you tell me where i can get the tools
__________________
FC: 4441-9989-0344
FS: Tangela | Swadloon | Quilladin
IGN: Jayden
  #42    
Old January 14th, 2008 (12:23 AM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Go to toolbox and then Temporary Tool Resource, scroll down and download my starter package. Though this isn't the place too ask it, if you searched a little i'm pretty sure you would of found it ..
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #43    
Old January 14th, 2008 (06:35 AM).
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
Okay guys, thanks for answering the questions, as I don't have time for this (exams). So, yes, you can use raws, but it should be written the way thethethethe stated. The one for ScriptED, of course. And I would like to ask anyone for not posting things unrelated to this guide and writing scripts (writing, not using scripting tools). I would be really grateful. Thanks guys (Crashink, thethethethe, Blazikendude) for being active here, I will release next part of guide this week.

~Martin
__________________
If you remeber me, feel free to send me a PM ;-)
  #44    
Old February 6th, 2008 (12:52 PM).
Scorp Con's Avatar
Scorp Con Scorp Con is offline
 
Join Date: Sep 2007
Location: Sydney, Australia
Age: 18
Gender:
Posts: 92
Awesome tutorial, I've being reading it yesterday... but how do you put the script into the rom (Windows XP)?
__________________
My PokeCommunity Friends
Concorde - Heatran
  #45    
Old February 6th, 2008 (05:23 PM).
2and2makes5's Avatar
2and2makes5 2and2makes5 is offline
 
Join Date: Mar 2007
Nature: Quiet
Posts: 6
This is a great tutorial, but can you give a working example of a Yes/No script? For some reason, my script just leaves the question on the screen, and nothing happens. Here's my script so you can see what's wrong with it:
Spoiler:

#org 0x800100
lock
faceplayer
msgbox 0x800110
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x800120
msgbox 0x800140
callstd 0x2
release
end

#org 0x800120
msgbox 0x800130
callstd 0x2
release
end

#org 0x800110
= Can you pick YES or NO?

#org 0x800130
= YES!

#org 0x800140
= No!

This is just a test to see if I can get it to work. Thanks in advance! :)
  #46    
Old February 6th, 2008 (08:26 PM).
Scorp Con's Avatar
Scorp Con Scorp Con is offline
 
Join Date: Sep 2007
Location: Sydney, Australia
Age: 18
Gender:
Posts: 92
Spoiler:
#org 0x800000
Lock
Faceplayer
msgbox 0x800100
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x800200
msgbox 0x800400
callstd 0x2
end

#org 0x800200
msgbox 0x800300
callstd 0x2
end

#org 0x800100
= Can you pick YES or NO?.

#org 0x800300
= YES!

#org 0x800400
= No!

Just fixed the offsets...

The offset should have at least 100 between each other...
__________________
My PokeCommunity Friends
Concorde - Heatran
  #47    
Old February 6th, 2008 (11:29 PM).
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
Quote originally posted by Madridista:
Awesome tutorial, I've being reading it yesterday... but how do you put the script into the rom (Windows XP)?
If you use ScriptED, there's no problem doing it. You need to set an option to show file's extension (Open some folder - best My Documents - Tools-> Folder options ->Appearance - I think - and there should be checkbox "Hide extensions of registered filetype". Uncheck it.)

Now, back to your ScriptED window and click on the Compile button. There will pop a browse dialog. Find your ROM and doubleclick it. There will pop a Notepad window with a script log, you should check if it didn't find any errors there.

Now, when it's written there, you need to open AdvanceMap. Open the map where you want your event be put in, click on the sprite or trigger and now, on the right side, there should be a sidebar. Find the box labeled Script offset. Write there $ followed by the script's offset number (e.g. $800000). Save your ROM, open it in VBA and test it.

If it goes okay, congrats. If not, post a screenie.


Quote originally posted by 2and2makes5:
This is a great tutorial, but can you give a working example of a Yes/No script? For some reason, my script just leaves the question on the screen, and nothing happens. Here's my script so you can see what's wrong with it:
Spoiler:

#org 0x800100
lock
faceplayer
msgbox 0x800110
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x800120
msgbox 0x800140
callstd 0x2
release
end

#org 0x800120
msgbox 0x800130
callstd 0x2
release
end

#org 0x800110
= Can you pick YES or NO?

#org 0x800130
= YES!

#org 0x800140
= No!

This is just a test to see if I can get it to work. Thanks in advance! :)
You got this fixed by Madridista, and thanks for comment.
Quote originally posted by Madridista:
Spoiler:
#org 0x800000
Lock
Faceplayer
msgbox 0x800100
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x800200
msgbox 0x800400
callstd 0x2
end

#org 0x800200
msgbox 0x800300
callstd 0x2
end

#org 0x800100
= Can you pick YES or NO?.

#org 0x800300
= YES!

#org 0x800400
= No!

Just fixed the offsets...

The offset should have at least 100 between each other...

Your statmemnt is partly fine, mainly for short scripts. You won't need to do this always... cause when HackMew's XSE (a script editor that uses same language as ScriptED, but much better) will be released, you wil be amazed how easy will scripting be with dynamic offsets (I know Pokéscript already has that, but the dynamic offset ipmlementation will be better over here, and mainly, you will be able to easily use ScriptED language used in this guide).
__________________
If you remeber me, feel free to send me a PM ;-)
  #48    
Old February 7th, 2008 (12:26 AM).
Scorp Con's Avatar
Scorp Con Scorp Con is offline
 
Join Date: Sep 2007
Location: Sydney, Australia
Age: 18
Gender:
Posts: 92
I don't think u need a screenshot...

When I tried to talk to the person, nothing happeneds...

Script:

$org 0x800000
Lock
Faceplyaer
msgbox 0x800100
callstd 0x6
release
end

#org 0x800100
= Hi mate!
__________________
My PokeCommunity Friends
Concorde - Heatran
  #49    
Old February 7th, 2008 (12:52 AM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Quote originally posted by Madridista:
I don't think u need a screenshot...

When I tried to talk to the person, nothing happeneds...

Script:

$org 0x800000
Lock
Faceplyaer
msgbox 0x800100
callstd 0x6
release
end

#org 0x800100
= Hi mate!
Not really any problems, just a few typos.

Code:
#org 0x800000
lock
faceplayer
message 0x800100
callstd 0x6
release
end

#org 0x800100
= Hi Mate!
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #50    
Old February 7th, 2008 (12:49 PM). Edited February 7th, 2008 by Scorp Con.
Scorp Con's Avatar
Scorp Con Scorp Con is offline
 
Join Date: Sep 2007
Location: Sydney, Australia
Age: 18
Gender:
Posts: 92
Ok, but still nothing happeneds...

That's how I putted into the room.
ScriptED -> Paste Script -> Compile -> Double Click on rom (FR) -> A-map -> Pallet town - > Events -> Click on sprite -> right hand side, Script offset, write $800000 -> Close it and save it
__________________
My PokeCommunity Friends
Concorde - Heatran
Closed Thread
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are UTC -8. The time now is 07:33 PM.