分享到新浪微博 分享到QQ空间 打印

[疑问] 新手學改版問題~~

新手學改版問題~~

數年前學製過386版,現在想學更強大的改版技術
想改火紅版,有2個問題想問:
1. 火紅202後沒有像三鳥般站立的人物編號圖,即這些:

我想將這火紅沒有的神獸以"定點捕捉"的方式捕捉
但想問一下,如何增加那些神獸站立的圖(如上)加入ROM內???
不想用修改圖的方式,因為怕影響其他的人物圖
換個說法,即想問一下在AM內,如何增加人物圖片???

2. 這個問題解決了~~

跪求大大幫我一下吧~~
因為我在這裏和另一關注改版的forum也找不到任何相關的教程.....
感激大家了~~~^^

希望大家可以幫我一下吧~~~~

[ 本帖最后由 erickoala 于 2009-10-30 15:07 编辑 ]

TOP

定点捕捉用XSE,改站立(定点)怪兽用OT!

TOP

引用:
原帖由 青龙 于 2009-10-28 19:24 发表
定点捕捉用XSE,改站立(定点)怪兽用OT!
OT是甚麼軟件啊????
THX你的幫忙~~

TOP

AM里在事件页面增加人物事件即可…然后会出来一个主角图,调整它的图片编号,就能变成相应的样子。当然,这些样子都是事先就在ROM里的,如果要改,需要用其他的工具来另外编辑。


想死你们了!

TOP

我不是想改他們啦,我是想增加~~~
好像火紅裏只有火紅可以捉到的神獸的人物圖片(另加夢幻),但我想將寶石版的三大神獸等等的人物圖片加入~~
不知有沒有任何的工具可以完成呢????

TOP

增加?你用Overworld试试,里面好像有数量修改,但只是好像。


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-10-31 17:37 发表
增加?你用Overworld试试,里面好像有数量修改,但只是好像。
不行啊,到了153後,不能輸入154以後的數值....
難道真的不成嗎....

TOP

ROM本身对这个是有限制的。当然,最近在外国论坛看到了OE的改装版,允许去提升这个限制,但是目前还没放出来,再等等吧


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-10-31 19:09 发表
ROM本身对这个是有限制的。当然,最近在外国论坛看到了OE的改装版,允许去提升这个限制,但是目前还没放出来,再等等吧
o...那就只用其他方式得到寶石的神獸吧~~
感激版主的幫忙了~~^^

我在另外一個論壇好像找到了方法,但它的圖已死了~~
也不給予轉載....文字又看不明....
發帖的lz也不見了....真可惜...



p.s. 話說我其實又有新的問題...>.<....但好像問得太多了....

[ 本帖最后由 erickoala 于 2009-11-1 00:25 编辑 ]

TOP

米事-v-欢迎提问


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-11-1 11:38 发表
米事-v-欢迎提问
那我就不客氣了~~

1. 我想問一下,有沒有可以查主角身上有沒有某種精靈的XSE code???
我只知道有checkitem,但找不到checkpokemon←亂作的
2. 火紅內的島8及島9的船票,要怎樣才可以生效??或怎樣寫code才可以令他們生效???
3. 有沒有一個工具可以像advance trainer一樣這樣強大的改訓練師的工具,但又可以用於日版rom???
我用了它新增一個新的訓練師,但他不但精靈的名字完全看不出是何pm,招式也不能自選,自選後按save,轉版面回來,所有的招式會變回空位..
一定要選default才行~~但default只是用pm最新學的四招式,不太有用~~
4. 怎樣查出special 0x187在火紅中是代表那一劇情????

暫時只有這樣吧~~~~
感激幫忙~~^^

[ 本帖最后由 erickoala 于 2009-11-1 13:29 编辑 ]

TOP

引用:
原帖由 erickoala 于 2009-11-1 13:22 发表


那我就不客氣了~~

[众多问题……]
1、-。-有让玩家出示某只PM,如果不是就进入一种情况的脚本。具体你可以看看让你给展示PM或者交换PM的那个NPC的脚本。
2、船票如何生效你可以反编译那个查票员的脚本,就可以看到了-v-
3、AT本身支持日版,但中文版俺就不知道支持的如何了。其它训练师修改器还没强大到能够支持自定义招式的地步貌似。AT会更新的,只是时间问题- -||
4、-v-有一份special表,我没翻译过,0x187是一个查错用的命令,和事件无关,当这个命令返回值为0x2,脚本就会被强制结束。


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-11-1 13:42 发表


1、-。-有让玩家出示某只PM,如果不是就进入一种情况的脚本。具体你可以看看让你给展示PM或者交换PM的那个NPC的脚本。
2、船票如何生效你可以反编译那个查票员的脚本,就可以看到了-v-
3、AT本身支持日版,但中 ...
1,2. =="不行,看不明白....它用了很多copyvar,我對var這些暫時未能掌握...>.<....
還有這個:PLAYERFACING,到底是啥??完全找不到這個是代表甚麼....但好像很重要似的...
3. ....那即是說現在沒有任何一個工具能修改嗎??(我試過用ue查看,但好像怪怪的...)
4. 版主知道那個special表可在那裏找到???

感激版主的幫忙~~~^^


另外,版主可以幫忙看看這個有甚麼問題???
為甚麼會沒有任何反應的??

'---------------
#org 0x6C7F08
setvar 0x800D 0x1
checkitem 0x32 0x1
compare LASTRESULT 0x4
if 0x1 goto 0x6C85CC

'---------------
#org 0x6C85CC
setvar 0x800D 0x1
checkitem 0x30 0x1
compare LASTRESULT 0x4
if 0x1 goto 0x6C7EA4

'---------------
#org 0x6C7EA4
setvar 0x800D 0x1
checkitem 0x30 0x1
compare LASTRESULT 0x4
if 0x1 goto 0x6C8568

'---------------
#org 0x6C8568
lock
faceplayer
setwildbattle 0xF9 0x1E 0x0
checksound
cry 0xF9 0x2
pause 0x28
waitcry
setflag 0x8C1
dowildbattle
clearflag 0x8C1
fadescreen 0x1
hidesprite LASTTALKED
setflag 0x200B
fadescreen 0x0
release
end

第一段到第三段是先要出示/查主角有沒有這些道具,然後最後進入精靈精鬥~~~
感激版主了~~~

[ 本帖最后由 erickoala 于 2009-11-1 17:02 编辑 ]

TOP

引用:
原帖由 erickoala 于 2009-11-1 14:40 发表


[一大堆话]
是这样,
1,2、-。-那你还需要继续学习脚本知识,希望能坚持看看教程区的XSE初级、进阶教程。
3、用UE也可以,但是你需要知道训练师这段数据的结构。眼下我还有别的事情,处理完了我会试着看看能不能找到那结构的-。-
4、那个表是英文的,我给你直接贴出来吧:

隐藏内容:

Special Description *other data*
000 Heals pokemon
001 clears the variable given in special2 or all the usual variables if in special 1
002 door warp script (fade black until finished warping)
003 same screen effect as 02. Peculiar behaviour, warps to last used warp, or to center-map if last change was made by a screen transition, or trapped in Battle link if used after game start
020 battle trough link. Stored in the same location as all other battle data
021 link start (trading)
022 faster link start (overwrites other commands)
023 save game popup
029 although it lets you select three pokemon, it shows not where they are stored, being nowhere on the usual variables(8000-800f)
02A Nice crash sound…
034 prints a buffered message, buffered somewhere by the trainerBattle command. *the trainer buffer is placed in 0x020386ae to 0x020386cc 020386ac trainer battle type; 0x020386ae - trainer number; 0x020386b4 - trainer starting talk pointer; 0x020386b8 - trainer loses pointer.*
035 prints a buffered message, buffered somewhere by a different command from 34. responds to Dpad.
036 returns the number of times the buffered trainer was fought. If bigger than 0, usually is followed by na end signal
038 plays buffered trainer music
039 used vs-seeker. placed in given variable if it was
03B activates battle with buffered trainer
03C activates pokestorage menu
05D save game popup
05F edit profiles. Which depend on 0x8004 value *Key: 0x0 = profile 0x1 = battle quote 0x2 = uppon wining 0x3 = uppon losing quote 0x4 = nine word message 0x5 and up, nothing*
060 displays profile, same key as 5f
07B checks pokemon nickname, buffers it and put 01 in given variable if it was never nicknamed
07C buffers pokemon name indicated at 0x8004 (nickname)
07D obtained in a trade checker
080 flushes random words into buffer 2
083 counts the number of pokemon in your party and places it on a given variable
084 same as 83
085 gives the number to the last pokemon on your party, to the variable passed
08D displays last processed message
09D old man battle
09E nickname pokemon in party indicated by 0x8004
09F chooses a pokemon for a purpose and stores its position at 0x8004. works even with eggs
0AB makes a random battle based on the Tree wild values
0B4 after battle, ceratin variables are set. b4 reads them and places on a given variable the status at battle end. *key 0x1 = fainted, 0x7 = captured, 0x4 = escaped*
0B6 daycare status *key: 0x1 = one egg, 0x2 = one pokemon, 0x3 = two pokemon*
0BA seems to register a pokemon number after reading from the party(with other special) and puts it in a variable. Returns 277 for Treeko, so real, in game number.
0BB removes pokemon stored at 0x8004 from party. Places it on the daycare center address (dynamic)
0BC A selection screen for pokemon with store instead of select, identical in use to 9f
0BD two slot selection screen that allows you to choose one of two pokemon on the daycare center. If no pokemon is stored there, blank name, lv0 male will appear.
0BE checks number of levels they grew in daycare and places it on given variable as well as in buffer2.
0BF calculates price on pokemon growth and places it on buffer2
0C0 gets pokemon back from daycare center (taken with bb). If 0x8004 is different from the slot number the pokemon is in, a bad egg is formed.
0C2 hatches a pokemon in the 0x8004 given position, even if not an egg
0C4 shows battle records and time scores. varies with value on ox8004 *key:0x0 = battle records, else = time board*
0C5 checks if you have enough money to pay for pokemon return. If true, return 1 to given variable
0C6 charges the money calculated bf
0C8 whiteout screen and carried to a pokecenter. Variables are cleaned, money is partially lost
0CD start safari game. Upon end, teleported back to default map, even though you never went near it
0CE ends safari game. This end, not being the default call to script, lets you remain where you are
0D4 seems to place on 0x8005 the seen pokemon and on 0x8006 the caught ones. Also places on 0x800c a number that might be pokemon the pokedex doesn't detect but were caught.
0D5 prints the pokedex evaluation. Number of pokemon caught is stored on 0x8004
0D6 flashes a tile that is one tile above the script. Used in pc scripts
0D7 switces a tile above script. Another animation
0DB selects a pokemon, but no variable is updated
0DC shows moves from pokemon in 0x8004 and allows you to choose one, position placed on 0x8005
0DD deletes move that was suposedly chosen with dc
0DF places on last-result the number of attacks on a pokemon defined by 0x8004
0E0 opens up a menu to teach previously known attacks to pokemon (move reminder) pokemon used is stored at 0x8004
0E6 returns the slot of the first available attack. If all occupied, returns 3 to given variable
0E8 game seem to freeze
0EC crash
0EF clears party, erasing all pokemon
0F1 shuts the system down, as if waiting for something (both audio and video)
0F5 asks to select three pokemon, and places them in the given order(removing the remaining) - pokemon tower. Choose cancel to get all your pokemon back.
0F6 appears to return if a pokemon is able to enter the event
0F8 really wierd command, deletes part of your party except for some of those you chose in f5
0F9 pc item storage menu with pc animation (your room)
0FA same as f9 but without pc animation
0FB town map
0FC checks the trade in 0x8004 and buffers the name of the wanted pokemon(0x0) and the given pokemon(0x1)
0FD gets the pokemon to trade and places it in 0x0202402c. Is in it's party form, that is, fully decrypted, 100 bytes.
0FE activates trade, gets pokemon from previous memory address Incomplete pokemon(80 byte form) crash when seen. If deposited and withdrawn, it's fixed
0FF checks pokemon in 0x8004's number and places it in given variable
106 opens pc menu, no animations, returns 01 to given variable and ff to lastresult
107 shows hall of fame thens returns you to pc menu
108 shows diploma for finishing kanto dex. Finishes script.
10F crash
110 saves hall of fame and plays ending
111 elevator scene + small animation
113 freeze screen, but only on scripts, not on signposts or people. Call again to unfreeze
114 unfreeze screen\camera. Works on all surfaces
11F returns to a variable the facing you had when activating the event
132 shows current floor
136 use strenght sound
137 starts wild battle on ice. Uses everything the normal wild battle use
138 starts wild battle on normal terrain. Uses everything the normal wild battle use.
139 same as 138
13D flashes screen.
13E warps to last used warp
13F falls to last used warp
143 perfectly normal wild battle
147 checks your pokemon in position referenced by 0x8004 and returns to the given variable its pokemon number. returns 0x19c if an egg.
14C fades sound until it turns off. Only some soundeffects remain. Loses effect after leaving map.
153 checks your party for pokemon equipped with e-card berries. 1 to variable if it happens
155 different from standart, no idea
156 ghost battle. If you have a shilp scope, it becomes the lv 30, uncatchable marowak. If not, the ghost will have the cry of the pokemon that was buffered.
157 activates bicycle
158 opens several different multichoice boxes depending on 0x8004 *key: 0x0 = badge talk; 0x1 = silph-co elevator; 0x2 = rocket elevator; 0x3 = celadon department store elevator; 0x4 = link options; 0x5 = pharmacy options?; 0x6 other elevator; 0x7 and up - return 0x7f to lastresult*
15C crashes game after executing whole script
160 same as 15c, but doesn't execute the rest of the code
161 activates surf sprite
163 sees pokemon number 0x8004 in the pokedex
166 lets you nickname your first pokemon in your box. Gives it the buffered name.
16A checks for wireless connector, 1 if there, 0 otherwise. Places value on given variable
16B tries to link for a game of pokemon jump the rope
16C tries to link for a game of dodrio berry-picking
16D linking for union room
16E wireless status
16F activates national dex
17B travels in the boat for vermillion
183 Wiredness… Makes every data go haywire,messing up video and everything. As long as you don't save, you're safe
187 places value on given variable. Seems to be a error checker of some kind, for every time it returns 0x2, a script is called to end.
18B shows fossil picture. Only works if 0x8004 is 0x8d or 0x8e. Position is stored in 0x8005(x) and 0x8006(y)
18C unshows picture
18D Accesses move tutor data and teaches that move to na allowed pokemon. Tutor placed at 0x8005
18E a menu to choose pokemon for something
191 SS Anne departure scene. With no boat, your sprite will follow it and disappear, making you invisible.
193 places value on given variable
194 if used without 0x8004, clears all warps and reproduces buffered video all over the map. Entering any menu will blank the video, crashing the game on exit
195 pokemon jump records
19C shows powder counter
19D hides powder counter
1A2 shows berry crushing records
1A5 plays credits
1A6 berry-picking records
1A7 multichoice for the islands, varies with what's on 0x8004
1AB sound effect for deoxys triangles
1AE checks for illegal pokemon for the union room and places one if found on a given variable
1B0 checks if pokedex (national) is complete. 0x1 if true, placed on a given variable
1B2 places a red arrow on the top of the screen
1B5 creates a tile animaiton one block left two-four up the player
1B7 creates a tile animation two-six blocks right from the top-left corner of the screen


5、因为前三段你没写没带该道具的情况,每次都是if 0x1...就是说,有了的情况会被跳转,而没有的情况则无事发生,这种情况下,没有道具自然无事发生。


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-11-1 18:04 发表


是这样,
1,2、-。-那你还需要继续学习脚本知识,希望能坚持看看教程区的XSE初级、进阶教程。
3、用UE也可以,但是你需要知道训练师这段数据的结构。眼下我还有别的事情,处理完了我会试着看看能不能找到那结 ...
1,2. 其實那兩個教程已經看了不下十次...但我仍會努力學習的~~^^
3. 希望版主能弄到吧~~^^
4. 感謝版主~~~^^
5. 試過了,身上帶有這些道具的話,會不知何故變成買東西(可買的是大磨茹),然後如果不買的話,會向後走,然後黑屏....
但大多數對着npc按了很多次以上才會出現這個情況~~按了數次後也是沒有任何反應~~~

唉.....很多問題啊....>.<....
已經不斷地將劇情減弱....>.<....

[ 本帖最后由 erickoala 于 2009-11-1 22:04 编辑 ]

TOP

那就一点点分析吧,我也有一段时间没动脚本了……首先是这里:
checkitem 0x30 0x1
compare LASTRESULT 0x4
checkitem的结果要么是0x0,要么是0x1,返回的不是数量,你拿0x4和结果比有什么意义?
后面尽量不要用setwildbattle和do的那一套,那一套还有些不明朗,换用简单的wildbattle试试。
checksound这个命令要么就是多余,要么就是你没用对,因为这个命令会返回结果,而你压根没有对结果进行处理。
pause 和waitcry作用有少许重叠,你pause的一段时间应该cry已经停止了,这个时候何必用wait?要用也应该是两个命令倒置吧?

不知道你这个脚本是不是从ROM里其它神兽那里摘抄的,感觉很怪


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-11-1 23:37 发表
那就一点点分析吧,我也有一段时间没动脚本了……首先是这里:
checkitem 0x30 0x1
compare LASTRESULT 0x4
checkitem的结果要么是0x0,要么是0x1,返回的不是数量,你拿0x4和结果比有什么意义?
后面尽量不要用 ...
啊...我見0x1不行,才試試用數量去代替~~~

我在想會不會是setver這個出了問題??
話說我是看了rom內調查招式機器的npc中抄來的~~~
但那個npc是調查主角有何招式,再作出對應的招式交換,與我需要的,有少許分別.....

那個的確是抄的,不過是別人在另一個論壇寫的~~
因為現在重點不在這,所以就對那段的改動不大~~~~^^
不過,之後也會留意~~~

TOP

你这么一说我才注意到,你写的这个setvar确实问题非常大。
因为0x800D就是LASTRESULT。你这样的setvar压根就没意义,因为随后的checkitem会立即抹掉你先前set的值。
你这脚本的用意就有很大问题,建议LZ在写脚本的时候头脑要有一个思路,搞清楚自己的每一步是在干嘛。


想死你们了!

TOP

引用:
原帖由 liuyanghejerry 于 2009-11-2 12:58 发表
你这么一说我才注意到,你写的这个setvar确实问题非常大。
因为0x800D就是LASTRESULT。你这样的setvar压根就没意义,因为随后的checkitem会立即抹掉你先前set的值。
你这脚本的用意就有很大问题,建议LZ在写脚本的 ...
每次學習programming,不知為何總是與我的想法差別很大...>.<....

我己改寫了,但還是不能,版主可以再幫我看看嗎??
thx~~~


隐藏内容:

'---------------
#org 0x6C7F08
checkitem 0x30 0x1
if 0x1 goto 0x86C85CC
goto 0x86C82A8
end

'---------------
#org 0x6C85CC
checkitem 0x31 0x1
if 0x1 goto 0x86C7EA4
goto 0x86C82A8
end

'---------------
#org 0x6C82A8
release
end

'---------------
#org 0x6C7EA4
checkitem 0x32 0x1
if 0x1 goto 0x86C8568
goto 0x86C82A8
end

'---------------
#org 0x6C8568
lock
faceplayer
wildbattle 0xF9 0x14 0xFFAC
fadescreen 0x1
hidesprite LASTTALKED
setflag 0x200B
fadescreen 0x0
release
end


以上的code我用另一個方法試驗過,好像是行的,但不知為何轉回上邊的,就還是沒有任何的反應~~
是否道具的問題???因為這三個道具在火紅中是沒有任何用途的,是用在寶石的~~

以下是我用另一個方法的code,是將主角捕捉三只鳥後,到新地圖,check到有三個flag已經被set(就是代表三鳥已被捉),就可以捕捉神獸了~~~
這個被我測試過是行的,但換回checkitem就不行了....


隐藏内容:

'---------------
#org 0x6C7F08
checkflag 0x2BF
if 0x1 goto 0x86C85CC
goto 0x86C82A8
end
'---------------
#org 0x6C85CC
checkflag 0x2BD
if 0x1 goto 0x86C7EA4
goto 0x86C82A8
end
'---------------
#org 0x6C82A8
release
end
'---------------
#org 0x6C7EA4
checkflag 0x2BE
if 0x1 goto 0x86C8568
goto 0x86C82A8
end
'---------------
#org 0x6C8568
lock
faceplayer
wildbattle 0xF9 0x14 0xFFAC
fadescreen 0x1
hidesprite LASTTALKED
setflag 0x200B
fadescreen 0x0
release
end


希望版主可以抽空幫忙一下~~

p.s. 很抱歉這麼麻煩版主...

[ 本帖最后由 erickoala 于 2009-11-3 01:27 编辑 ]

TOP

checkitem 0x32 0x1
compare LASTRESULT 0x1
if 0x1 goto 0x86C8568

把你的脚本都改成类似以上这样。以下是我的代码,在我给了主角一个大师球(0x1)之后,运行完美。
001 #org @a1
002 lock
003 faceplayer
004 checkitem 0x1 0x1
005 compare LASTRESULT 0x1
006 if 0x1 goto @a2
007 release
008 end
009  
010  
011 #org @a2
012 message @a3 0x2
013 release
014 end
015  
016 #org @a3
017 = Done.
点击查看原始代码


想死你们了!

TOP