发新话题
打印

修改gmsv制造出我们想要的脚本语句【第三篇】

修改gmsv制造出我们想要的脚本语句【第三篇】

示范帖子在这里:http://bbs.mocwww.com/thread-20416-1-1.html魔力私服,最新魔力宝贝私服技术交流6 Y) Z6 x* @! ^9 W3 D7 w- _
这是第三篇,我的目的是大家在大概明白第二篇的意思的基础上再来看这篇,所以这一篇就不是一句一句地分析了。妖城在线论坛* I% _5 h  n  Y+ B) c
接着上一篇遗留下来的问题,找到set_level下面的一个函数,add_gold_level。魔力私服,最新魔力宝贝私服技术交流7 a3 d* p; j  }4 C
我很疑惑gmsv开发这个脚本语句做什么用,说实话我是觉得没什么用。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 Z0 R: J4 k2 L+ E

( d5 x) q( v' ]) y大家都知道这个这个脚本语句:addgold
# A" X" C, r! r( F; kaddgoldlevel addgold 其实只差了一点,前者给予金钱的数目是脚本内设定值 * 等级。
  E8 k* n9 p! q2 T" n% i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表两者的格式都是一样的: addgold   num1,(num2)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ a2 Z' G' E  I' Y( e5 r7 Y
num1是设定给予的金钱数,num2是对应msg的编号,可省略。num2必须加括号。
5 s9 `0 h: [/ T( T6 E1 tbbs.mocwww.comnum2的意义就是如果你不想在这个脚本结束之后让玩家看到类似:失去(得到)了xxxx金币之类的提示,你可以让客户端显示自己想要的提示。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  H; ~" _; r. B% U% D" Z

! x" E- |( o4 D5 h9 Y. T魔力私服,最新魔力宝贝私服技术交流下面加了下划线的是函数名称,没加下划线的是脚本语句。
& A, s9 b8 |( d5 b1 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& y) l; q$ T. ^) {" e5 D* D! M2 [3 Y
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------bbs.mocwww.com) k. t! ]8 e" d0 O9 W" h9 }% H

8 r2 K! x* @; E( D5 ~下面我们就拿这个函数来开刀!看图:bbs.mocwww.com/ M9 Z8 G, O% G0 W
先说明一下:这个图是我拼成的(真难拼,比上篇的函数长……),蓝色的框是该函数没改之前的样子,框对应位置应该能看懂吧?
- f  J0 I" M( D5 ~" F; S妖城在线论坛注1:
2 G* i3 |: K" x) N0 ?5 z/ _/ L魔力私服,最新魔力宝贝私服技术交流这个我不多说了。参见上一篇。& |2 [. {/ f/ I! u# L0 t
注2:魔力私服,最新魔力宝贝私服技术交流2 k# q$ V0 m( R9 F4 p- l6 {+ [
参见注1。不过这里是第2个参数。魔力私服,最新魔力宝贝私服技术交流+ ?, B5 ~  ~3 l: y9 U, S1 n6 h7 T- r
注3:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, b& ], F; V3 @  ^' r8 l
这里4个nop对应于右边蓝色框里面的第一句话。魔力私服,最新魔力宝贝私服技术交流6 x2 H9 u1 `) T5 C9 ~
imul  ebx,[esi+2Ch]   是将等级与脚本设定给予金钱值相乘。这句话也是 add_gold_level 跟 add_gold 唯一不同的地方哦!
3 {2 j# w* H; Q* k* I9 s1 G" {注4:
, l9 B: ?: D5 i7 o; S/ n/ u8 ~为什么把原来的 E0 改成 B0 参见上一篇的注7部分。
2 D2 y# P% z* q- H) z注5:
& w' g' ^! Z, Y) m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート换算一下:0F4240h == 1000000,而1B3CE68h == 28561000,是130的四次方除以10,我的F设定的是130级满级10倍经验。
+ q( h& E7 r4 r9 K9 `& U' p至于上面框里的 js 就是档小于零则跳转,实现了经验不能为负数;
/ Q2 u  x5 C& h6 v) U. l9 e魔力私服,最新魔力宝贝私服技术交流这个框里的 jle 是小于等于则跳转,实现了经验上限控制。注意这里两个跳转的红绿线走向。魔力私服,最新魔力宝贝私服技术交流5 |! L9 ]6 T4 ^. d) L( d( V  s
注6:bbs.mocwww.com: c2 ~  a* ?7 S) m& _, \, H
参见注4。8 o3 a- r( k7 B2 g
注7:魔力私服,最新魔力宝贝私服技术交流( z6 y7 b! P9 \, z: [' v& c
这里原本是80000000h,改成0FFFFFFFFh,这样才能在经验改变之后立即显示出来,这里晕了我下……魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% Q0 V. j5 k) C# A2 _5 _
注8注9:bbs.mocwww.com3 @# y( i/ j. x( r% r' f7 J6 ]
这里是获得和减少经验值的提示语句,我把它放到了偏移地址为13E358h和13E36Ch的位置。我写的是:
, d. Y- k0 \- t$ Pbbs.mocwww.com偏移地址为13E358h的位置,写:“获得了%d经验值。”
" F! P7 X: m* [7 D! Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート偏移地址为13E36Ch的位置,写:“失去了%d经验值。”
4 L; |6 l; Z" W+ r, A; s/ a4 B  x妖城在线论坛好了,如果你的 gmsv 改到这里了,那么只要你在你的脚本里面写诸如:addgoldlevel +5000之类的,那么就会增加5000经验了。
8 A: d: G+ z* ^( Q) Abbs.mocwww.com我们不是想要自己的脚本语句吗!9 M" G& K0 Q0 s) E% i
那么用UE打开 gmsv ,我们搜索 addgoldlevel ,只有2处,嘿嘿,好办,我们改成 addplayerexp (长度跟addgoldlevel相等即可)。
4 l8 p' l( \# V  y4 o0 lbbs.mocwww.com改了运行一下,嘿嘿,成功了!魔力私服,最新魔力宝贝私服技术交流. w/ W; Y* ^, m1 F, T! x) m) {  x
我们上篇遗留的问题也解决了,能控制上下限,能有自己想要的提示。至于格式,参见上面咯。bbs.mocwww.com3 p/ p3 }+ |8 h+ _, C8 {4 d0 d
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 m8 x+ G; M5 {9 q
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8 {8 `3 Q! }2 }/ ]  V) ]) R* W9 s2 x. `3 d7 T
但是马上问题来了,gm命令 level 用不了,脚本内如果有判断等级的语句,服务端会报错!魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% [4 p; _" w( \* S8 e$ ^& s& I/ {
但是改成 erexp 就能用!靠!看来是 gmsv 调用了这个地方的 level 进行等级判断和gm命令的识别!—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 I7 ^8 m, u7 G/ I' R9 s* s
我们看看 addgoldlevel 这个短语的绝对地址是08186114h,那么这里的 level 就是0818611Bh魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& M* f0 Y8 Y! I" X$ E8 l7 x8 J* g
我们在gmsv内搜索:1B 61 18 08,搜索到3个,用IDA看看位置,其中最后一个偏移地址15F9A0h是对我们是有用的。妖城在线论坛. d1 s& s& q& V+ c
现在我们要把它移开,移到 setlevel 短语的 level 去吧,即 1B 改成 2C 。测试,成功。那么我们的 addplayerexp 在脚本内就可用了。
+ J) f- A& g% ]% Z! d5 g4 D1 X* z3 [妖城在线论坛这里感谢 兰纳的弟弟IKKI 提供的思路。
. u1 z: X; l5 s# Rbbs.mocwww.com妖城在线论坛  {2 K. l: p/ T7 J: ^
我之所以说这堆废话,是希望大家在这方面有更宽广的思路。
8 D* m; C$ g' Q- l1 J这就是修改 gmsv 实现加经验脚本语句的全过程,其中的地址和修改的地方都给出了。希望大家一起学习讨论,做出自己更好的东西。—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) \, D; {, q8 c5 V/ S

9 b7 R* @; P9 c9 ], |' jbbs.mocwww.com##########################################################################################################################—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 t. S, K6 }) u; t

. H7 n( r- K, ~# h1 t; Sbbs.mocwww.com我这是最后一篇了,暂时不准备再发另外的了。妖城在线论坛9 N! k/ `1 ]5 J5 p4 y) s) u

7 C5 W; n" L6 w魔力私服,最新魔力宝贝私服技术交流如果想修改成万能脚本,这里说一下我的思路:魔力私服,最新魔力宝贝私服技术交流4 _/ B, X8 n9 f+ M% s2 s

; ^5 z  [3 A0 O妖城在线论坛setcharxxxx  a,b,c,d魔力私服,最新魔力宝贝私服技术交流/ M- `. @9 K7 t. g
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 Q+ K  t6 j# u/ w0 I/ E- i$ u. h
setcharxxxx这里根据实际情况长度再定。
9 l  |7 v& Z. ]4 `, f' ?8 J妖城在线论坛3 j. }" M1 I7 ~& [) G- A
a是要修改的项目的数据值,格式+number,-number,number,分别表示增加,减少,直接修改;! s4 f6 g, F3 \% I5 W0 t  t& `( j
b是数据范围下界,-1表示不限制;
$ b9 x$ a. E: g2 m( N* E3 x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートc是数据范围上界,-1表示不限制;
& I, E/ L( Y/ g! K* L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表d是数据栏位,如9就是修改等级。妖城在线论坛/ {* f! Y4 b2 x- Q, k6 _6 i

( x" J! f$ a# N0 T) j* U/ v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表或者a和d的位置颠倒一下也行。
5 a+ K5 V. t; {3 N% d' L1 K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这个命令带了4个参数,我们很容易考虑到一个脚本语句:warp。看看这个函数怎么执行的,绝对对想做万能脚本的同学有帮助。
) o* b" O4 `/ B3 y0 X5 G  X' L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流7 L0 d0 H! z, H  @; @1 p
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$( u& J  D% T/ t
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 u$ V) r* w# i' |/ Q- }
附傻瓜修改法,当然自己修改的话就省点钱咯,哈哈。 傻瓜修改法.rar (531 Bytes)
9 i& `! T, e  M+ O1 L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com8 x" l1 o' \& c) W6 f0 X! @4 I
[ 本帖最后由 feifei1937 于 2009-8-9 16:02 编辑 ]

附件

addgoldlevel.jpg (430.07 KB)

2009-8-9 01:35

addgoldlevel.jpg

本帖最近评分记录
  • orochi0531 妖力 +10 这个绝对的是最大限度上实现gmsv的功能了的 2009-8-13 16:07

TOP

引用:
原帖由 sin 于 2009-8-9 13:16 发表 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ {' V0 P: r3 C) h* r- S
很强大是不用说了,看不懂也是事实~
妖城在线论坛/ T% O; N# _6 a/ m4 _1 Y0 B
我真失败……不过有傻瓜修改法……

TOP

发新话题