Board logo

标题: [疑问] 新手學改版問題~~ [打印本页]

作者: erickoala    时间: 2009-10-28 19:03     标题: 新手學改版問題~~

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

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

2. 這個問題解決了~~

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

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

[ 本帖最后由 erickoala 于 2009-10-30 15:07 编辑 ]
作者: 青龙    时间: 2009-10-28 19:24

定点捕捉用XSE,改站立(定点)怪兽用OT!
作者: erickoala    时间: 2009-10-28 19:32

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

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

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

增加?你用Overworld试试,里面好像有数量修改,但只是好像。
作者: erickoala    时间: 2009-10-31 18:19

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

ROM本身对这个是有限制的。当然,最近在外国论坛看到了OE的改装版,允许去提升这个限制,但是目前还没放出来,再等等吧
作者: erickoala    时间: 2009-10-31 19:59

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

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



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

[ 本帖最后由 erickoala 于 2009-11-1 00:25 编辑 ]
作者: liuyanghejerry    时间: 2009-11-1 11:38

米事-v-欢迎提问
作者: erickoala    时间: 2009-11-1 13:22

引用:
原帖由 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 编辑 ]
作者: liuyanghejerry    时间: 2009-11-1 13:42

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


那我就不客氣了~~

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

引用:
原帖由 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 编辑 ]
作者: liuyanghejerry    时间: 2009-11-1 18:04

引用:
原帖由 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...就是说,有了的情况会被跳转,而没有的情况则无事发生,这种情况下,没有道具自然无事发生。
作者: erickoala    时间: 2009-11-1 18:36

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


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

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

[ 本帖最后由 erickoala 于 2009-11-1 22:04 编辑 ]
作者: liuyanghejerry    时间: 2009-11-1 23:37

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

不知道你这个脚本是不是从ROM里其它神兽那里摘抄的,感觉很怪
作者: erickoala    时间: 2009-11-2 11:53

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

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

那個的確是抄的,不過是別人在另一個論壇寫的~~
因為現在重點不在這,所以就對那段的改動不大~~~~^^
不過,之後也會留意~~~
作者: liuyanghejerry    时间: 2009-11-2 12:58

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

引用:
原帖由 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 编辑 ]
作者: liuyanghejerry    时间: 2009-11-3 16:39

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.
点击查看原始代码

作者: chaotix    时间: 2009-11-3 17:28

我以前遇到过同样的问题。
似乎对于
“compare LASTRESULT 0x1
if 0x1 goto 0x86C8568”

checkflag时可省,checkitem时不能省,原因不明
作者: 堕落悠二    时间: 2009-11-3 17:35

怎么改?我也顺便问问才行
作者: erickoala    时间: 2009-11-4 00:08

引用:
原帖由 chaotix 于 2009-11-3 17:28 发表
我以前遇到过同样的问题。
似乎对于
“compare LASTRESULT 0x1
if 0x1 goto 0x86C8568”

checkflag时可省,checkitem时不能省,原因不明
原來是這樣啊~~~
怪不得弄了這麼多次才成功...>.<..
引用:
原帖由 liuyanghejerry 于 2009-11-3 16:39 发表
checkitem 0x32 0x1
compare LASTRESULT 0x1
if 0x1 goto 0x86C8568

把你的脚本都改成类似以上这样。以下是我的代码,在我给了主角一个大师球(0x1)之后,运行完美。
[xse]
#org @a1
lock
faceplayer
che ...
終於成功了~~
感謝版主的幫忙啊~~~~~

不知可否繼續問呢...

可以的話,希望版主解答以下問題吧~~~

1. 對不起,版主,這個問題我終於找到問題所在了~~~thx~~^^

2. 另外想問一下,在am內,新加的地圖怎樣才可播放背景音樂?????
我想要的是一進入地圖便播放,但找不到任何地方可以加背景音樂....
我試過用"s"腳本控制,但由於以下的問題,所以弄不了...>.<...

3. 我想問一下,為甚麼我弄"s"的腳本時,每次都是主角再次踏上時,才會啟動腳本???
為甚麼不會是首次踏入時便啟動腳本呢???
例子:
我將一個"s"腳本放在一洞穴的出口,理應主角一出洞穴便會發生劇情~~
但現在是每次主角一出洞穴,劇情不會發生...而要主角再踏次踏入洞穴的問口才會啟動劇情~~~
到底是為甚麼呢????

感激版主的回答了~~^^

[ 本帖最后由 erickoala 于 2009-11-4 22:45 编辑 ]
作者: liuyanghejerry    时间: 2009-11-5 14:54

引用:
原帖由 erickoala 于 2009-11-4 00:08 发表


原來是這樣啊~~~
怪不得弄了這麼多次才成功...>..
AM不是可以设定背景音乐么?我记得可以的啊
S脚本要设置var的-。-
作者: erickoala    时间: 2009-11-5 16:15

引用:
原帖由 liuyanghejerry 于 2009-11-5 14:54 发表


AM不是可以设定背景音乐么?我记得可以的啊
S脚本要设置var的-。-
找到了~~
不知為何我下的中文版不能設定,要用回英文版才行....

那我想問一下setvar後面的數字是不是甚麼數字都能的啊??
即是說我填setvar0x800 0x0或setvar 0x500 0x0,都不會影響遊戲嗎??
定還是像人物id般有一定的數目可以用???

再次感激版主的解答~~~~~
作者: liuyanghejerry    时间: 2009-11-5 16:52

引用:
原帖由 erickoala 于 2009-11-5 16:15 发表


找到了~~
不知為何我下的中文版不能設定,要用回英文版才行....

那我想問一下setvar後面的數字是不是甚麼數字都能的啊??
即是說我填setvar0x800 0x0或
setvar 0x500 0x0,都不會影響遊戲嗎??
定還是像 ...
参见教程的进阶篇吧,var不是每个都闲着给你的,因为游戏的剧情要用掉一部分(当然你全部重制另当别论)。
另外推荐LZ参考XSE包里自带的guide.chm。
而关于S脚本的情况,参考这里吧:http://www.pokecommunity.com/showthread.php?t=168292,那是我很久以前写的一篇教程。
作者: erickoala    时间: 2009-11-5 20:42

引用:
原帖由 liuyanghejerry 于 2009-11-5 16:52 发表

参见教程的进阶篇吧,var不是每个都闲着给你的,因为游戏的剧情要用掉一部分(当然你全部重制另当别论)。
另外推荐LZ参考XSE包里自带的guide.chm。
而关于S脚本的情况,参考这里吧:http://www.pokecommunity.c ...
版主的這個link對我很有用呢~~
話說這個站我也是今天早上才發現的呢~XDDD

問題又來了.... --->我也知自己很煩....>.<....
希望版主不要介意我這個"問題少年"....>.<...當作是我幫助改版區增加人氣吧~XDD

1. 我想問問,一些不是主角引發的人物事件要怎樣消失??
hidesprite只能消失一會,只要主角一走開,那些人物事件便會重現~~
setflag,但我不是由主角主動接觸而令它們消失的....這個好像不能用~~
例子:
如火紅中,主角從第二個城市的商店將物品送給博士後,博士會走到後邊拿起背包,然後送給主角及對手~~
那個背包消失就是我想要的東西~~
我看過背包的腳本,只是對話~~
至於博士的腳本,我也找不出有任何關於背包的編號...找不出相應的腳本來...>.<....

2. 想問如果rom中內本身有個地址是這樣:
#org @start
if 0x1 goto @finish
(中略)
release
end

#org @finish
release
end
那我可否在其他地方重用@finish這個地址???
即如果我想寫的腳本又是像@start及@finish的,我可不可以用@finish??但這個@finish是rom自身的~~~

3. 一個am問題,不知何故,我不能加地圖...
加地圖的話,進入game,轉換地圖會變成黑屏....
但之前都可以加的,但現在忽然不能加...有沒有任何解決方法???

關於這項,不知是否因為其中一張新加的地圖出了問題所致???
當我按這個地圖時出現這些:

AdvanceMapError(2): Cannot read bytes behind end of file! Please contakt Luhopoke@gmail.com
(按ok後)
Access violation at address 004C309B in module 'AdvanceMap.exe'. Read of address 00554004.

thx版主~~^^

[ 本帖最后由 erickoala 于 2009-11-5 22:50 编辑 ]
作者: liuyanghejerry    时间: 2009-11-5 23:46

1、任何情况都是setflag;试着看看地图头里的脚本
2、自己写的可以直接以@finish的方法重用,但限于在同时写入时;如果是系统原有的或是以前自己写入过得,需要直接引用实际地址,如goto 0x123456
3、估计你用的汉化版?这问题暂时无解,因为原作者不处理汉化后的版本。对他来说,汉化版只是个改版而已…
顺便说下我的推测。根据出错后的那个提示,貌似是内存读写控制不当造成的,可能是汉化版读出的东西大于了原先的设定。
作者: yeahyu    时间: 2009-11-6 01:26

我是来学习的!
作者: erickoala    时间: 2009-11-6 01:28

引用:
原帖由 liuyanghejerry 于 2009-11-5 23:46 发表
1、任何情况都是setflag;试着看看地图头里的脚本
2、自己写的可以直接以@finish的方法重用,但限于在同时写入时;如果是系统原有的或是以前自己写入过得,需要直接引用实际地址,如goto 0x123456
3、估计你用的汉 ...
1. 剛看了,好像沒有???
不過,我看到博士的腳本中有用hidesprite,然後再setvar...但暫時未找出是甚麼..>.<..
2. 那就是說那個地址,我可以在其他地方使用??因為這樣可以減少估用空位~~
3. 我製作地圖時是用漢化版的,因為剛剛接觸改版不久~~
那是否代表着這個rom我已經不能用了.... ..那我之前作的劇情便要"搬"到另一個clear的rom...很大工程唷..(雖則也不算很多..>.<..)
作者: liuyanghejerry    时间: 2009-11-6 13:15

引用:
原帖由 erickoala 于 2009-11-6 01:28 发表


1. 剛看了,好像沒有???
不過,我看到博士的腳本中有用hidesprite,然後再setvar...但暫時未找出是甚麼..>..
脚本我抽空看看。
至于你的ROM,不是有句话说的好么,要常记得备份么-。-要不要重制只能自己把握了……
另外,重制的话先别急,我有样东西给你。
作者: erickoala    时间: 2009-11-6 13:54

引用:
原帖由 liuyanghejerry 于 2009-11-6 13:15 发表


脚本我抽空看看。
至于你的ROM,不是有句话说的好么,要常记得备份么-。-要不要重制只能自己把握了……
另外,重制的话先别急,我有样东西给你。
感激版主了~~^^
本想着之前沒有問題,所以只備份了最新的版本..>.<....
東西 會是甚麼呢...
作者: liuyanghejerry    时间: 2009-11-6 18:50

http://poketb.com/bbs/thread-14340-1-1.html请看这里吧。
作者: erickoala    时间: 2009-11-6 23:31

引用:
原帖由 liuyanghejerry 于 2009-11-6 18:50 发表
http://poketb.com/bbs/thread-14340-1-1.html请看这里吧。
這個不錯呢~~~
不過我未做過漢化的工作...可能要試試了~

p.s. 希?嬷鲿簳r別鎖這個帖,遲些我應該還會有問想問的....



剛再試過加新地圖...又再次黑屏...>.<..
為何每次新增劇情後就不能用加地圖啊....
是不是要新增所有地圖後才能加劇情.....

明明之前測試時沒問題的.....>.<....

原來還不只這樣...>.<...一失敗的話,連之前備份的檔案也全用不了....>.<..
我已經備份了3及4...但全部都不能用..要用回2....



對不起,版主,我有新的問題想問...>.<...
我想知道為何每次用am自帶的找空地址/fsf找空地址,找出來的地址,有很多時都會有問題的???
是否我設定某一項時錯誤???
很多時,在xse內按complie,然後按decomplie後,code會改變~
有時會減少了一部份,有時又會改了另外的東西...
感激版主回答~~^^

[ 本帖最后由 erickoala 于 2009-11-8 00:39 编辑 ]
作者: liuyanghejerry    时间: 2009-11-8 15:06

能举个实例么?因为搜出来空间是不会莫名改变的,除非
1、你压根没有限制空间的大小,也就是说,你可能需要的是500字节,但你只搜了100字节的用
2、你把一段空间用了两次

如果不是上述情况,那么还请举个实例看看-。-不然实在是爱莫能助
至于黑屏,我更是无从谈起。
作者: erickoala    时间: 2009-11-8 17:35

引用:
原帖由 liuyanghejerry 于 2009-11-8 15:06 发表
能举个实例么?因为搜出来空间是不会莫名改变的,除非
1、你压根没有限制空间的大小,也就是说,你可能需要的是500字节,但你只搜了100字节的用
2、你把一段空间用了两次

如果不是上述情况,那么还请举个实例看 ...
就拿剛弄的給你看...

以下是一個"s"腳本,一踏上,鏡頭會移動到一個地方,對話,按制取消對話,鏡頭移回原地

隐藏内容:
点击这里查看隐藏内容
点击这里收回隐藏内容

'---------------
#org 0x71EA88
checkflag 0x203
if 0x1 goto 0x81A7AE0
lockall
special 0x113
applymovement MOVE_CAMERA 0x871EB18
waitmovement 0x0
msgbox 0x871CC30 MSG_NORMAL '"......................."
applymovement MOVE_CAMERA 0x871EC34
waitmovement 0x0
special 0x114
setflag 0x203
releaseall
end
'---------------
#org 0x1A7AE0
release
end

'---------
' Strings
'---------
#org 0x71CC30
= .......................

'-----------
' Movements
'-----------
#org 0x71EB18
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xFE 'End of Movements

#org 0x71EC34
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xFE 'End of Movements


另外這個腳本是博士的腳本,半完成,亦未完整,但暫對劇情沒有任何影響~

隐藏内容:
点击这里查看隐藏内容
点击这里收回隐藏内容

'---------------
#org 0x71EA20
checkflag 0x204
if 0x1 goto 0x871CCE8
msgbox 0x871CCF4 MSG_NORMAL '"Welcome!!!\nThis is a new world of..."
applymovement 0x1 0x871EB28
waitmovement 0x0
pause 0x20
applymovement 0x1 0x871EE98
waitmovement 0x0
givepokemon 0x115 0x5 0x0 0x0 0x1 0x0
givepokemon 0x118 0x5 0x0 0x0 0x1 0x0
givepokemon 0x11B 0x5 0x0 0x0 0x1 0x0
fanfare 0x13E
waitfanfare
hidesprite 0x4
hidesprite 0x3
hidesprite 0x2
msgbox 0x871EF40 MSG_NORMAL '"But in this beautiful world,\nther..."
release
end
'---------------
#org 0x71CCE8
msgbox 0x871CF2C MSG_NORMAL '"Please help us!!!!"
release
end

'---------
' Strings
'---------
#org 0x71CCF4
= Welcome!!!\nThis is a new world of pokemon.\pYou can catch many special \npokemon in here!!\pBefore you catch them,\nlet me gave you \psome new pokemon.
#org 0x71EF40
= But in this beautiful world,\nthere is a bad energy\pcontrol this world,\nI need you to help us!!!!\nPlease!!!
#org 0x71CF2C
= Please help us!!!!

'-----------
' Movements
'-----------
#org 0x71EB28
#raw 0x3 'Face Right
#raw 0xF 'Step Right (Slow)
#raw 0xFE 'End of Movements
#org 0x71EE98
#raw 0x2 'Face Left
#raw 0xE 'Step Left (Slow)
#raw 0x4A 'Face Player
#raw 0xFE 'End of Movements




這個就是當我在am內,轉去了另一地圖後,再回來查博士的腳本,發現了以上的兩個腳本結合在一起...>.<..
這是結合後的博士腳本:

隐藏内容:
点击这里查看隐藏内容
点击这里收回隐藏内容

'---------------
#org 0x71EA20
checkflag 0x204
if 0x1 goto 0x871CCE8
msgbox 0x871CCF4 MSG_NORMAL '"Welcome!!!\nThis is a new world of..."
applymovement 0x1 0x871EB28
waitmovement 0x0
pause 0x20
applymovement 0x1 0x871EE98
waitmovement 0x0
givepokemon 0x115 0x5 0x0 0x0 0x1 0x0
givepokemon 0x118 0x5 0x0 0x0 0x1 0x0
givepokemon 0x11B 0x5 0x0 0x0 0x1 0x0
fanfare 0x13E
waitfanfare
hidesprite 0x4
hidesprite 0x3
hidesprite 0x2
loadpointer 0x0 0x871EF40 '"But in this beautiful world,\nther..."
checkflag 0x203
if 0x1 goto 0x81A7AE0
lockall
special 0x113
applymovement MOVE_CAMERA 0x871EB18
waitmovement 0x0
msgbox 0x871CC30 MSG_NORMAL '"......................."
applymovement MOVE_CAMERA 0x871EC34
waitmovement 0x0
special 0x114
setflag 0x203
releaseall
end
'---------------
#org 0x71CCE8
msgbox 0x871CF2C MSG_NORMAL '"Please help us!!!!"
release
end
'---------------
#org 0x1A7AE0
release
end

'---------
' Strings
'---------
#org 0x71CCF4
= Welcome!!!\nThis is a new world of pokemon.\pYou can catch many special \npokemon in here!!\pBefore you catch them,\nlet me gave you \psome new pokemon.
#org 0x71EF40
= But in this beautiful world,\nthere is a bad energy\pcontrol this world,\nI need you to help us!!!!\nPlease!!!
#org 0x71CC30
= .......................
#org 0x71CF2C
= Please help us!!!!

'-----------
' Movements
'-----------
#org 0x71EB28
#raw 0x3 'Face Right
#raw 0xF 'Step Right (Slow)
#raw 0xFE 'End of Movements

#org 0x71EE98
#raw 0x2 'Face Left
#raw 0xE 'Step Left (Slow)
#raw 0x4A 'Face Player
#raw 0xFE 'End of Movements

#org 0x71EB18
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xE 'Step Left (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xD 'Step Up (Slow)
#raw 0xFE 'End of Movements

#org 0x71EC34
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xC 'Step Down (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xF 'Step Right (Slow)
#raw 0xFE 'End of Movements


真的完全不明白為何會這樣......>.<.....

[ 本帖最后由 erickoala 于 2009-11-8 17:38 编辑 ]
作者: liuyanghejerry    时间: 2009-11-8 17:52

虽然没有仔细看,但你的地址明显有重叠部分,前一个脚本和后一个脚本的移动部分地址太靠近。
不要认为一个地址能够存下无数数据。
假设有地址0x01,那么从0x01到0x02只有一个字节而已;
如果你在0x01写下了N多信息,那么再次利用0x02的时候,必然会导致空间重用。
作者: erickoala    时间: 2009-11-9 00:06

引用:
原帖由 liuyanghejerry 于 2009-11-8 17:52 发表
虽然没有仔细看,但你的地址明显有重叠部分,前一个脚本和后一个脚本的移动部分地址太靠近。
不要认为一个地址能够存下无数数据。
假设有地址0x01,那么从0x01到0x02只有一个字节而已;
如果你在0x01写下了N多信息 ...
那如果這樣的話,那要怎樣避免???
因為我每次都是找100字節/10字節~~
而地址都是用am內的找空位功能找的,而這個功能每次只能找5個空位地址~~~
那怎樣才知道我那時要跳過1-2個地址呢??
作者: liuyanghejerry    时间: 2009-11-9 00:07

XSE具有动态地址功能,写脚本的时候只需要一个首地址即可。具体请看XSE教程初级篇。
作者: erickoala    时间: 2009-11-9 13:43

引用:
原帖由 liuyanghejerry 于 2009-11-9 00:07 发表
XSE具有动态地址功能,写脚本的时候只需要一个首地址即可。具体请看XSE教程初级篇。
我一直以為那個是給別人看的,所以就一直沒有留意...
原來是用在xse的...>.<...

另外想問一下,在am內新增地圖時,它也是自動設定地圖名稱是pallet town,但我又不能增加地圖名字~~
只能從舊有的地圖名字中選擇,可以教我一下如何增加地圖名字嗎??

再問問...
有沒有一種戰鬥類型是像火紅綠葉精靈塔的"嘎拉嘎拉",是不能捕捉,只能對戰的???
我試過一次找出來,但必定是"嘎拉嘎拉",不能是其他的精靈~~~
或要怎樣在xse中寫出來???

對不起,版主,剛剛又遇到新的問題~~
我想問問,火紅中是不是不能像寶石版般不能顯示烈日的天氣???
我試了很多次,就是不能在地圖中顯示烈日....

關於動態地址~~
我發覺如果我想修改之前的code時,會有機會會將發生我之前的問題...
那要怎樣才可以修改呢??因為有時候,打code時,總會忘記打少了一部份...要入game測試結果後才發覺有問題...>.<...

感激版主~~^^

[ 本帖最后由 erickoala 于 2009-11-9 21:43 编辑 ]
作者: erickoala    时间: 2009-11-11 14:01

版主,對不起~~~
看見版主好像沒有看這個tp,所以才再回覆多一次(加上有新問題想問)
希望版主別當我連貼就好了~~

我不知我的腳本是否缺了些指令沒寫??
我這個腳本是希望主角給予錢,然後npc改變地圖塊(打開洞口)的腳本~~
不知為何每次只能給一次錢,離開後回來的話,那個npc每次都說我錢不足..但我是足錢的..
還有就是我明明在setmaptile最後一項中填了0xC,但不知為何轉了地圖塊後,會變成了1,變得不能移動~~~


隐藏内容:
点击这里查看隐藏内容
点击这里收回隐藏内容

'---------------
#org 0x728508
lock
faceplayer
showmoney 0x0 0x0 0x0
msgbox 0x872852D MSG_NORMAL '"If you want to keep going.\nYou ne..."
checkmoney 0x186A0 0x1
if 0x1 goto 0x87285B7
msgbox 0x8728568 MSG_NORMAL '"You don't have enough money to kee..."
release
end

'---------------
#org 0x7285B7
msgbox 0x8728595 MSG_YESNO '"Do you want to gvie me  100000?"
compare LASTRESULT 0x0
if 0x0 goto 0x81A7AE0
paymoney 0x186A0 0x0
setmaptile 0x5 0xA 0xA9 0xC
special 0x8E
hidemoney 0x0 0x0
release
end

'---------------
#org 0x1A7AE0
hidemoney 0x0 0x0
release
end


'---------
' Strings
'---------
#org 0x72852D
= If you want to keep going.\nYou need to give me \p 100000.

#org 0x728568
= You don't have enough money to keep going.

#org 0x728595
= Do you want to gvie me  100000?



另外,就是如果我發覺節字不夠~~
然後找一個新的地址,那舊的地址還能用嗎????
還是因為已經寫入過了資料,所以不能用??


再次感激版主的答覆~~~
作者: liuyanghejerry    时间: 2009-11-11 17:29

我倒着回答你问题吧。
旧的地址可以用,但你要把以前的内容彻底覆盖掉,而且保证不受残留物的影响。另外为了能让软件识别这部分空间,就得自己把里面的内容FF了。
脚本问题道理很简单。
001 checkmoney 0x186A0 0x1
002 if 0x1 goto 0x87285B7
点击查看原始代码
你检查的结果是“是否等于”,而不是“是否大于”或者“是否小于”,这样当然没法继续执行了,因为无论是大于还是小于,都没办法走到0x1的部分啊
看这里:
引用:
小于(0x0)
等于(0x1)
大于(0x2)
小于等于(0x3)
大于等于(0x4)
不等于(0x5)
setmaptile不要用0xc,用0x0。具体原因暂时不解释。
至于地图的问题,我还在想呢
作者: erickoala    时间: 2009-11-12 12:59

引用:
原帖由 liuyanghejerry 于 2009-11-11 17:29 发表
我倒着回答你问题吧。
旧的地址可以用,但你要把以前的内容彻底覆盖掉,而且保证不受残留物的影响。另外为了能让软件识别这部分空间,就得自己把里面的内容FF了。
脚本问题道理很简单。
我剛試過了....
還是不行.....>.<...
001 checkmoney 0x186A0 0x2
002 if 0x1 goto 0x87285B7
点击查看原始代码
這個還是一樣,第一次給予錢後,又是說我不足錢~~~
改了0x3也是一樣....>.<...

甚至我試了調換他們.....
001 checkmoney 0x186A0 0x1
002 if 0x4 goto 0x87285B7
点击查看原始代码
這個是就算沒有錢,他也會打開洞穴(改變地圖塊)....

再甚至我試過了改成一樣...
001 checkmoney 0x186A0 0x2
002 if 0x2 goto 0x87285B7
点击查看原始代码
這個是足夠錢的也說不足錢...>.<...

對不起,版主,我知我有點蠢...>.<...

p.s. 另外前頁的天氣,戰鬥類型等問題,也希望版主能夠解答~~~
感激版主了~~~
作者: liuyanghejerry    时间: 2009-11-12 13:25

嘎啦嘎啦是内嵌进去的,脚本不起作用,那是个完整的special。
-。-那就是没有烈日咯。
改脚本很简单么,把原来的自己变成FF,再写不就完了。

checkmoney后面那个参数不要写0x2,老老实实写0x0,谁教你写的0x2?你写代码还是和之前一样,自己都不知道自己在做什么。而且明白的告诉你,如果那个参数写0x1,那么命令压根就不会执行。
后面IF判断部分才是要改的。
以后脚本再出问题的时候,先给每一句带上注释,搞清楚是在干嘛。
作者: erickoala    时间: 2009-11-13 23:13

引用:
原帖由 liuyanghejerry 于 2009-11-12 13:25 发表
嘎啦嘎啦是内嵌进去的,脚本不起作用,那是个完整的special。
-。-那就是没有烈日咯。
改脚本很简单么,把原来的自己变成FF,再写不就完了。

checkmoney后面那个参数不要写0x2,老老实实写0x0,谁教你写的0x2? ...
對不起,版主..>.<....
現在弄明白了....


o......嘎啦嘎啦的那個spcial很好用....>.<...

如果變成ff,那00的是不是要清除他??


好好~~下次一定寫清楚一點~~~

感激版主了~~~
作者: liuyanghejerry    时间: 2009-11-13 23:26

其实00和FF本质上没区别,只是火叶里的FF多,被认作是自由空间,宝石中则是00多.
作者: 钢の力量    时间: 2009-11-14 15:29

我学了很多啊 。。真是好教程




欢迎光临 口袋社区-Poke The BBS (https://ww.poketb.com/) Powered by Discuz! 6.1.0F