选择在"@@buildguildnow"这段代码插入:
————————————————————————————————
* Possible StringData Ref from Code Obj ->"@@buildguildnow"
|
:004A3662 BA54374A00 mov edx, 004A3754
:004A3667 8B45F0 mov eax, dword ptr [ebp-10]
:004A366A E8D156F6FF call 00408D40
:004A366F 85C0 test eax, eax
:004A3671 750E jne 004A3681
:004A3673 8B4DEC mov ecx, dword ptr [ebp-14]
:004A3676 8B55F8 mov edx, dword ptr [ebp-08]
:004A3679 8B45FC mov eax, dword ptr [ebp-04]
:004A367C E8A3FAFFFF call 004A3124
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A3671(C)
|
:004A3681 E9CA8F0600 jmp 0050C650 --- 在这里跳,到我们的代码空间
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0050C6B2(U)
|
:004A3686 8B45F0 mov eax, dword ptr [ebp-10]
。。。。。。。。。。。。。。。
————————————————————————————————
主要代码:
————————————————————————————————
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A3681(U)
|
:0050C650 BACAC55000 mov edx, 0050C5CA --- 我修改的M2,这里是@@NPCTALK,似乎是废话
:0050C655 8B45F0 mov eax, dword ptr [ebp-10] --- 人
:0050C658 E8E3C6EFFF call 00408D40
:0050C65D 85C0 test eax, eax --- 典型的比较命令的语句
:0050C65F 754C jne 0050C6AD
:0050C661 8B4DEC mov ecx, dword ptr [ebp-14] --- 取 @@NPCTALK 后面带的字符,既要发广播的字
:0050C664 8B55F8 mov edx, dword ptr [ebp-08] --- 人
:0050C667 8B45FC mov eax, dword ptr [ebp-04]
:0050C66A E8C8FCFFFF call 0050C337 --- 这个就是实现NPC红字广播的子程序,最主要的了
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0050C65F(C)
|
* Possible StringData Ref from Code Obj ->"@@guildwar"
|
:0050C6AD BA6C374A00 mov edx, 004A376C
:0050C6B2 E9CF6FF9FF jmp 004A3686 --- 上面的JMP截断了,这里写完NPC红字广播要跳回去
————————————————————————————————
————————————————————————————————
接上面的:0050C66A E8C8FCFFFF call 0050C337
:0050C320 FFFFFFFF BYTE 4 DUP(0ffh)
:0050C324 0D0000005B or eax, 5B000000
:0050C329 4E dec esi
:0050C32A 50 push eax
:0050C32B 43 inc ebx
:0050C32C B7A2 mov bh, A2
:0050C32E BBB0B2E2CA mov ebx, CAE2B2B0
:0050C333 D45D aam (base93)
:0050C335 0000 add byte ptr [eax], al
* Referenced by a CALL at Address:
|:0050C66A ----- 实现NPC红字广播的子程序
|
:0050C337 55 push ebp
:0050C338 8BEC mov ebp, esp
:0050C33A 83C4EC add esp, FFFFFFEC
:0050C33D 53 push ebx
:0050C33E 33DB xor ebx, ebx
:0050C340 895DEC mov dword ptr [ebp-14], ebx
:0050C343 894DF4 mov dword ptr [ebp-0C], ecx
:0050C346 8955F8 mov dword ptr [ebp-08], edx
:0050C349 8945FC mov dword ptr [ebp-04], eax
:0050C34C 8B45F4 mov eax, dword ptr [ebp-0C]
:0050C34F E82C7DEFFF call 00404080
:0050C354 33C0 xor eax, eax
:0050C356 55 push ebp
:0050C357 68F6C35000 push 0050C3F6
:0050C35C 64FF30 push dword ptr fs
eax]
:0050C35F 648920 mov dword ptr fs
eax], esp
这小段是金币操作~~~~~~~
:0050C375 8B45F8 mov eax, dword ptr [ebp-08] --- 取人
:0050C378 81783030750000 cmp dword ptr [eax+30], 00007530 --- 有没30W金币?
:0050C37F 7C22 jl 0050C3A3 --- 没有,跳"你的金币不够了。"
:0050C381 BA30750000 mov edx, 00007530
:0050C386 8B45F8 mov eax, dword ptr [ebp-08]
:0050C389 E81A33FBFF call 004BF6A8
:0050C38E 8B45F8 mov eax, dword ptr [ebp-08]
:0050C391 E85E86FBFF call 004C49F4 --- >30W金币,从人物扣除30W金币
:0050C3A1 EB11 jmp 0050C3B4 --- 再跳主要发话的代码
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0050C37F(C)
|
:0050C3A3 33C9 xor ecx, ecx
* Possible StringData Ref from Code Obj ->"你的金币不够了。"
|
:0050C3A5 BA40344A00 mov edx, 004A3440
:0050C3AA 8B45F8 mov eax, dword ptr [ebp-08]
:0050C3AD E8417D0100 call 005240F3
:0050C3B2 EB1D jmp 0050C3D1 --- 一个完成 "你的金币不够了。" 的操作
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0050C3A1(U) 发话的代码
|
:0050C3B4 8D45EC lea eax, dword ptr [ebp-14] --- 取人物输入的字符的偏移地址
:0050C3B7 BAF4A64C00 mov edx, 0050C328
:0050C3BC 90 nop
:0050C3BD 8B4DF4 mov ecx, dword ptr [ebp-0C]
:0050C3C0 E8537BEFFF call 00403F18
:0050C3C5 8B55EC mov edx, dword ptr [ebp-14] --- 取字符串
:0050C3C8 E853000000 call 0050C420 --- 实现所有人都能看见字的,有如(*)
——————————————————————————————————
——————————————————————————————————
* Referenced by a CALL at Address:
|:0050C3C8
| 这个CALL实现所有人都能看见字的,有如(*)
:0050C420 A190A44E00 mov eax, dword ptr [004EA490]
:0050C425 8B00 mov eax, dword ptr [eax]
:0050C427 E8C426FAFF call 004AEAF0
:0050C42C A18CA74E00 mov eax, dword ptr [004EA78C]
:0050C439 50 push eax
:0050C43A 8B0D4CA64E00 mov ecx, dword ptr [004EA64C]
:0050C440 8B09 mov ecx, dword ptr [ecx]
:0050C442 A190A44E00 mov eax, dword ptr [004EA490]
:0050C447 8B00 mov eax, dword ptr [eax]
:0050C449 BACC000000 mov edx, 000000CC
:0050C44E E8D532FAFF call 004AF728
:0050C453 C3 ret
其中
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A3681(U)
|
:0050C650 BACAC55000 mov edx, 0050C5CA --- 我修改的M2,这里是@@NPCTALK
这儿的@@NPCTALK是怎样添加的,需要怎么添加?

