--llama a IUP
require("iuplua")
--Variables
on= 1
puntos1=memory.readbyte(0x0007DE) --Read the points value
puntos2=memory.readbyte(0x0007DF)
puntos3=memory.readbyte(0x0007E0)
puntos4=memory.readbyte(0x0007E1)
puntos5=memory.readbyte(0x0007E2)
p1=puntos1*100000 --Convert the raw values to it's game value
p2=puntos2*10000
p3=puntos3*1000
p4=puntos4*100
p5=puntos5*10
maxpuntaje=p1+p2+p3+p4+p5 --Calculate the final result
mundo=memory.readbyte(0x00075F) --Read the "world" value
nivel=memory.readbyte(0x000760) --Read the "level" value
estado=memory.readbyte(0x000770) --Read the mario "state" (00 not in game, 01 playing, 03 game over)
--Escribir las variables anteriores al morir
memory.writebyte(0x00075A,00) --Change the "lives" value to 1
while(on==1) do
estado=memory.readbyte(0x000770)
print(estado)
print(type(estado))
if(estado==03)then
print("Puntuacion maxima (sesion actual) = ",maxpuntaje)
print("Mundo y nivel Actual: ",mundo+1,"-",nivel+1)
end
结束
(代码已编辑)
This is the state of 0x000770 when playing
This is the state of 0x000770 when the Game Over scene jumps in
有什么问题吗?当我运行此脚本时,fceux只是停止响应,在堆栈溢出和编程时是全新的,因此,每一个帮助都将受到欢迎
答案 0 :(得分:0)
调试起来很简单,但是需要更多信息
mundo=memory.readbyte(0x00075F)
nivel=memory.readbyte(0x000760)
estado=memory.readbyte(0x000770)
print(mundo, nivel, estado)
if
条件检查正确的类型尝试一下:
while(on==1) do
estado=memory.readbyte(0x000770)
print(estado)
print(type(estado))
if(estado==03)then
print("Puntuacion maxima (sesion actual) = ",maxpuntaje)
print("Mundo y nivel Actual: ",mundo+1,"-",nivel+1)
end
end
答案 1 :(得分:0)
很抱歉浪费您的时间,但是我发现了错误,实际上很简单,在周期结束时缺少FCEU.frameadvance。 我不知道为什么它会导致模拟器崩溃,但是将其放置到位后它停止崩溃了。感谢wsha的帮助。