以下引用Elegance于2008-5-26 20:27:01的发言:
沉了,好东西帮你顶下。
=begin
RtlMoveMemory(API 函數)
說明:將指定之記憶體範圍移動到新的位置
(對於內存進行讀取或修改)
參數說明:p -想要移動的內容(字符串)
i -移動的地址(整數)
i -複製的字節數(整數)
返回值 :沒有查到(毆~)
Zlib::Inflate.inflate( ) (壓縮方法)
作用:把整數壓縮成字符串
說明:把整數寫( )之內就可以了
Zlib::Deflate.deflate( ) (壓縮方法)
作用:與上面相反
"rgba" * width * height (String 類方法)
作用:擴展字符串
說明:看以下例子
"abc" * 2 #=>"abcabc"
new(w, h) (Bitmap 類方法)
作用:生成指定尺寸的 Bitmap 對象
說明:常用形式爲 Bitmap.new(width, height)
因爲這裏是 class Bitmap 內部調用,所以可以簡化爲 new(width, height)
string.unpack() (String 類方法)
作用:.unpack 會有把一個字符串轉換爲數組(Array)
說明:.unpack( )需要帶有參數說明轉換的方法
(LLa*)代表把字符轉換爲以下樣式的數組:
array=[
unsigned native long integer(整數),
unsigned native long integer(整數),
string(字符串),
]
最後的 * 表示會使用完字符串當中所有的元素
array.pack() (Array 類方法)
作用:把數組(Array)轉換爲字符串(String)
參數說明參考 .unpack
* .pack() 與 .unpack() 的作用是實現數組(Array)與字符串(String)的互相轉換
buffer, ad = "xxxx", object_id * 2 + 16 (賦值方法)
作用:同時賦值兩個變量
說明:Ruby 語句允許同時給多個變量賦值
左邊的「變量」會取得右邊相應位置的「數值」
使用時格式應該爲:
a , b, c = avalue, bvalue, cvalue
注意:= 號的左右兩邊元素量可以不等
如果「值」數量多於「變量」數量會忽略多餘值
如果「變量」數量多於「值」數量,多餘的「變量」會有得到「nil」值
如果左邊只有一個「變量」而右邊多於一個「值」會賦成爲數組
=end
以下引用沉影不器于2008-5-27 9:19:17的发言:
RtlMoveMemory参数好像是:
1目的地址
2源地址
...
Zlib::Inflate.inflate 一直只知道个大概,超过那个参考手册的全都不懂
"rgba" * width * height 开辟空间
以下引用Elegance于2008-5-27 18:01:31的发言:
http://tkool.web-ghost.net/wiki/wiki.cgi?page=Script%2FBitmap%A4%CEMarshal%C2%D0%B1%FE
http://jbbs.livedoor.jp/bbs/read.cgi/game/14836/1090833499/856
最终更新时间:2008年02月05日 23时46分45秒
投稿日: 2008/02/04(月) 19:26:05…………无言。
以下引用yangff于2008-5-27 20:46:25的发言:
呵呵,脚本的实用性。话说到底是做什么的?
以下引用link006007于2008-5-27 21:56:13的发言:
哈`~! 来的正好 问lz一个问题(我基本卡死这地方了...):
一个指向 C++ 类的指针如何能被 ruby的Data_Wrap_Struct转换成VALUE?
其实不一定要Data_Wrap_Struct 只要能够被ruby保存就好
我建立了一个C的结构体保存C++类的指针, 然后把C结构体拿来Data_Wrap_Struct也会出错
不知道具体要怎么做...
typedef struct _holdCXXPTR{
;VALUE klass;
void* pData; // 保存C++PTR的, 本来想通过保存C结构体来保存C++类指针...
... ...
}HOLDCXXPTR;
以下引用沉影不器于2008-5-31 20:19:08的发言:
原来您在日站深造,难怪这个脚本的书写习惯看着很不爽,我给改写了一下
以下引用轮回者于2008-6-3 13:32:08的发言:
"rgba" 指的是红,绿,蓝,透明
是储存图片中某一点要用的4个参数.
以下引用link006007于2008-8-9 12:09:57的发言:
我一直很好奇
我觉得 最关键是lz最早是怎么得到bitmap的图像数据是保存在Bitmap实例内存首地址偏移这么多的量之后的内存地址中的
以下引用沉影不器于2008-8-9 22:26:18的发言:object_id * 2 + 16<---这个楼主很早就说明了在ruby资源文件里头说的
这脚本的伟大还在于真的需要了解到很多内部类的构成啊啊啊...
以下引用dna_7086于2008-8-11 12:38:50的发言:
以下引用link006007于2008-8-9 12:09:57的发言:
我一直很好奇
我觉得 最关键是lz最早是怎么得到bitmap的图像数据是保存在Bitmap实例内存首地址偏移这么多的量之后的内存地址中的
你用OllDBG跟踪GAME.EXE试试吧,应该也能得到吧...
以下引用沉影不器于2008-8-10 9:20:20的发言:
我没下载那些什么ruby资源之流,我是先默认'object_id*2 + 16'成立,那么所有内存操作都明显成立了.
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |