此问题已解决~谢谢各位~

这是一个叫横扫千军的游戏。

按照以下程序下载并安装游戏后,某两个单位在攻击状态下会导致bug,使游戏崩溃。

1)百度“横扫千军”,安装“横扫千军三合一简体中文版最新官方版下载_百度软件中心 ”的1.1G大小的版本
2)安装3902补丁 地址http://tieba.baidu.com/p/3495611975
3)安装飞龙版 http://tieba.baidu.com/p/3460905063

求会编写脚本和制作模型的玩家帮忙解决以下问题:(报错图片在二楼 单位数据下载在三楼)

在安装了3902补丁的情况下安装飞龙版,会出现以下bug。

talon族的二级防御塔 talvl 大马士革锤子导弹发射器及雷神之锤卫星炮在攻击状态下会弹出bug窗口,如果多次弹出会导致游戏非法。
估计是由于该单位的模型和脚本的问题

在此帖上传此单位的模型脚本及单位蓝本 希望拥有模型及脚本制作技能的玩家提供帮助

查看errorlog.txt 内容如下:
ad Model Which Crash Game In Random!!!
Bad Unit ID:
Damascus
Bad Unit Name:
TALVL
Bad Unit Description:
Heavy Rocket Tower
Bad Unit ObjectName:
TALVL

===============================

Bad Model Which Crash Game In Random!!!
Bad Unit ID:
Thor’s Hammer
Bad Unit Name:
TALION
Bad Unit Description:
Orbital Bombardment Facility - 100,000 E / Shot
Bad Unit ObjectName:
TALION

===============================
ta-merge模拟联机 caused an Access Violation in
module ta-merge模拟联机.exe at 0023:004ab0da.
Exception handler called in Global Exception Handler. Time: Wed Dec 24 21:31:01 2014
F:\Cavedog\TOTALA\ta-merge模拟联机.exe, run by Administrator on JEYXIUGWZ39GD5N
Executable is 1179832 bytes long and dated 2/10/2012 20:47:28
UTC link time: 35c0b9e5 - Thu Jul 30 18:22:29 1998
Library version 996. Library date Jun 30 1998 16:08:53
4 processors
0 MBytes physical memory
Stack goes from 0414A38C to 04160000
Instruction pointer is 004AB0DA
ExceptionCode = C0000005 - Access Violation
Access violation: Illegal read, data address 0x142A5464
ExceptionFlags = 00000000 ExceptionAddress = 004AB0DA
Parameters = 00000000 142A5464

Registers:
EAX=00000001 CS=0023 EIP=004AB0DA EFLGS=00010206
EBX=02A9BD23 SS=002B ESP=0415FBE8 EBP=0415FC9C
ECX=00000001 DS=002B ESI=01EAEE18 FS=00000053
EDX=0415FB74 ES=002B EDI=142A5460 GS=0000002B

Bytes at CS:EIP:
8b 77 04 85 db 0f bf 46 13 89 44 24 10 0f bf 4e

Call stack:
004AB0DA 004AB0DA 004AB0DA 004AB187
Stack dump:
0415FBE8: 02A9BD23 0415FC9C 01EAEE18 142E4038 76B84785 007A5AE8 0415FCD8 0415FC7C
0415FC08: 004AB0DA 142A5460 0415FC9C 02A9BD23 02A9BD23 0415FC9C 01EAEE18 14322C10
0415FC28: 066D5150 00000000 00000000 00000000 004AB0DA 142E4038 0415FC9C 02A9BD23
0415FC48: 00000138 0415FCD0 01EAEE18 0000024A 0415FCD0 00000138 00000000 00000000
0415FC68: 004AB187 14322C10 0415FC9C 02A9BD23 60073A7E 02A64415 0415FC9C 02A9BD23
0415FC88: 01E2ED58 76B850AC 76B850B3 2128E0B7 0000024A 00000558 000002E0 00000558
0415FCA8: 0ED10028 00000000 00000000 00000000 00000000 00000000 00000555 000002DF
0415FCC8: 00000000 2151958F 0415FDCC 60073CD5 0ED10028 00000556 000002E0 00000558
0415FCE8: 01E2ED58 00000064 00000000 00000000 00000000 00000000 00000000 00000000
0415FD08: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0415FD28: 00000000 00000000 00000000 00000000 00000000 00000009 00000000 00000000
0415FD48: 00000000 00000000 0000024A 0000006C 0000100F 000002E0 00000556 00000558
0415FD68: 00000000 00000000 00000000 00000000 0ED10028 00000000 00000000 00000000
0415FD88: 00000000 00000000 00000000 00000000 00000000 00000020 00000060 00000000
0415FDA8: 00000008 00000000 00000000 00000000 00000000 00000840 01EA7428 00000001
0415FDC8: 21519493 0415FE90 6007A91B 00000001 00000001 215197CF 0000024A 01EAEE18
0415FDE8: 00000138 01EA8B38 0415FE80 0415FE60 0415FE44 000008AF 0415FE80 0415FE80
0415FE08: 60098758 215197DF 0415FE44 0415FE60 01D8EFE8 00000000 0415FE04 00000000
0415FE28: 0415FE78 77017000 0000024A 0415FE44 00000000 0415FE3B 00000047 00000000
0415FE48: 00000000 00000000 215197DB 0000024A 00000000 000008AF 00000000 00000000
0415FE68: 215197CF 000002C0 000002C0 01DB59D0 0415FDDC 0415F630 0415FF78 600A2870
0415FE88: 454FDF2F FFFFFFFE 0415FEA8 6007DB23 007168E8 0000024A 00000000 05EAC650
0415FEA8: 0000014E 004C6199 01EAEE18 00000000 0000024A 0051F320 0000014E 00000138
0415FEC8: 004C285D 0415FF10 0415FF00 0415FEF0 76481432 7648110C 00000000 002AD7CA
0415FEE8: 0000024A 00000138 0000024A 00000138 0000025A 0000014E 00000233 00000126
0415FF08: 00000248 0000013D 00000556 00000300 00000558 12E30028 00002710 FFFFFFFF
0415FF28: 00000000 00000000 00000000 0000027F 000001DF 004C29D4 004C2A12 0051F320
0415FF48: 02BA1560 0415FF88 02BA1560 00000000 004E78AD 0051F320 00000000 00000000
0415FF68: 02BA1560 C0000005 0415FF60 0415F640 0415FFC4 004E6718 004FDD00 00000000
0415FF88: 0415FF94 7648338A 02BA1560 0415FFD4 77D09F72 02BA1560 73EF58EA 00000000
0415FFA8: 00000000 02BA1560 00000000 00000000 00000000 0415FFA0 00000000 FFFFFFFF
0415FFC8: 77D471F5 0035626E 00000000 0415FFEC 77D09F45 004E7850 02BA1560 00000000
0415FFE8: 00000000 00000000 00000000 004E7850 02BA1560 00000000

Dr0 = 00000000 Dr1 = 00000000 Dr2 = 00000000
Dr3 = 00000000 Dr6 = 00000000 Dr7 = 00000000

ContextFlags = 0001007F
Control Word = 0000027F StatusWord = 00000020
TagWord = 0000FFFF ErrorOffset = 600A1BD2
ErrorSelector = 00000023 DataOffset = 0415FCA8
DataSelector = 0000002B Cr0NpxState = 0D4C8180

smackw32.DLL : 00220000 : 00018000 :
MPLAYX.dll : 00240000 : 00046000 : 1.0.0.545
ta-merge模拟联机.exe : 00400000 : 00130000 : 1.0.0.0
TA4.dll : 10000000 : 00008000 :
DXRAW.dll : 60070000 : 00077000 : 3.9.2.0
dbghelp.dll : 70000000 : 000EB000 : 6.1.7601.17514
wnmkey.dll : 73E20000 : 0000D000 :
CRYPTBASE.dll : 751C0000 : 0000C000 : 6.1.7600.16385
SspiCli.dll : 751D0000 : 00060000 : 6.1.7601.18637
SETUPAPI.dll : 75230000 : 0019D000 : 6.1.7601.17514
SHELL32.dll : 75470000 : 00C4A000 : 6.1.7601.18517
CFGMGR32.dll : 762C0000 : 00027000 : 6.1.7601.17621
GDI32.dll : 762F0000 : 00090000 : 6.1.7601.18577
sechost.dll : 76380000 : 00019000 : 6.1.7600.16385
DSOUND.dll : 763A0000 : 00072000 : 6.1.7600.16385
kernel32.dll : 76470000 : 00110000 : 6.1.7601.18409
ADVAPI32.dll : 76580000 : 000A0000 : 6.1.7601.18247
DCIMAN32.dll : 76620000 : 00006000 : 6.1.7601.18177
LPK.dll : 76630000 : 0000A000 : 6.1.7601.18177
CLBCatQ.DLL : 76640000 : 00083000 : 2001.12.8530.16385
RPCRT4.dll : 76750000 : 000F0000 : 6.1.7601.18532
WINMM.dll : 76840000 : 00032000 : 6.1.7601.17514
DEVOBJ.dll : 76890000 : 00012000 : 6.1.7601.17621
POWRPROF.dll : 768B0000 : 00025000 : 6.1.7600.16385
ole32.dll : 768E0000 : 0015C000 : 6.1.7601.17514
MSCTF.dll : 76A40000 : 000CC000 : 6.1.7600.16385
IMAGEHLP.DLL : 76B30000 : 0002B000 : 6.1.7601.18288
USER32.dll : 76C90000 : 00100000 : 6.1.7601.17514
USP10.dll : 76EE0000 : 0009D000 : 1.626.7601.18454
SHLWAPI.dll : 76F80000 : 00057000 : 6.1.7601.17514
KERNELBASE.dll : 76FE0000 : 00047000 : 6.1.7601.18409
IMM32.dll : 77030000 : 00060000 : 6.1.7601.17514
oleaut32.dll : 770B0000 : 0008F000 : 6.1.7601.18640
msvcrt.dll : 77140000 : 000AC000 : 7.0.7601.17744
dwmapi.dll : 77610000 : 00013000 : 6.1.7600.16385
ntdll.dll : 77CD0000 : 00180000 : 6.1.7601.18247

[attach]18006[/attach]
[attach]18008[/attach]
[attach]18007[/attach]

[attach]18009[/attach]

脚本修改软件

模型查看软件

求高手解决

飞龙鸡要耐心等啦

等不了啊 wangyaoalan失踪了 联系了一星期都不见其人

会做单位的人 国内也就这么几个 一个手可以数过来的 猫神 小原子 wangyaoalan honeyfox xpoy 也算上tro

:6_273:你修改了什么?直接换回TALON原装的模型和脚本文件能解决吗?

什么都没修改,和3902补丁冲突,这两个单位进行攻击就会非法

你说的这个办法 早就试过了 无济于事

大马士革TALON原装脚本如下,红色的应该是出问题的部分,尝试修改成常见的TA脚本模式
#define TA // This is a TA script

#include “sfxtype.h”
#include “exptype.h”

piece base, body, mis, mis2, rocket, fp;
static-var smoke, trav, still;
// Signal definitions
#define SIG_AIM 2

SmokeUnit(healthpercent, sleeptime, smoketype)
{
while( get BUILD_PERCENT_LEFT )
{
sleep 400;
}
while( TRUE )
{
healthpercent = get HEALTH;
if( healthpercent < 66 )
{
smoketype = 256 | 2;
if( Rand( 1, 66 ) < healthpercent )
{
smoketype = 256 | 1;
}
emit-sfx smoketype from base;
}
sleeptime = healthpercent * 50;
if( sleeptime < 200 )
{
sleeptime = 200;
}
sleep sleeptime;
}
}

measure()
{
while(1)
{
if(trav == 1)
{
sleep rand(1500,2000);
trav = 0;
}
sleep 1;
}
}

Create()
{
trav=0;
dont-cache rocket;
dont-cache mis;
dont-cache mis2;
start-script SmokeUnit();
dont-shade base;
dont-shade body;
hide rocket;
smoke = 0;
still = 0;
move fp to y-axis [40] now;
start-script measure();
}

restore()
{
while(trav)
{
sleep 1;
}
smoke=0;
if(still)
{
explode rocket type BITMAPONLY | BITMAP3;
}
hide rocket;
move rocket to y-axis [0] now;
turn mis2 to x-axis <0> now;
move mis to y-axis [0] now;
still=0;
trav=0;
}

smoke1()
{
while(smoke)
{
emit-sfx 256 | 1 from rocket;
sleep 1;
}
return(0);
}

AimPrimary(heading, pitch)
{
signal SIG_AIM;
set-signal-mask SIG_AIM;
// while(enroute)
// {
// sleep 1;
// }

smoke = 1;
start-script smoke1();
show rocket;

// sleep 1;

// turn mis2 to x-axis <0> now;
// move mis to y-axis [0] now;
// move rocket to y-axis [0] now;
still = 1;
if(!trav)
{
turn mis to y-axis heading now;
}
move mis to y-axis [20] speed [100];
wait-for-move mis along y-axis;
turn mis2 to x-axis <90> - pitch speed <150>;
wait-for-turn mis2 around x-axis;
move rocket to y-axis [200] speed [100];

if(trav==0)
{
trav=1;
}

start-script restore();

return (1);
}

FirePrimary()
{
smoke=0;
trav = 0;
hide rocket;

// sleep 100;
trav=0;
still = 0;
turn mis2 to x-axis <0> now;
move mis to y-axis [0] now;
move rocket to y-axis [0] now;
}

AimFromPrimary(piecenum)
{
piecenum = fp;
}

SweetSpot(piecenum)
{
piecenum = base;
}

QueryPrimary(piecenum)
{
piecenum = rocket;
}

Killed(severity, corpsetype)
{
if( severity <= 25 )
{
corpsetype = 1;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
if( severity <= 50 )
{
corpsetype = 2;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
if( severity <= 99 )
{
corpsetype = 3;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
corpsetype = 3;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
}

我的水平只能改到这,把攻击的效果去掉,应该不会出错了吧。
#define TA // This is a TA script

#include “sfxtype.h”
#include “exptype.h”

piece base, body, mis, mis2, rocket, fp;

// Signal definitions
#define SIG_AIM 2

SmokeUnit(healthpercent, sleeptime, smoketype)
{
while( get BUILD_PERCENT_LEFT )
{
sleep 400;
}
while( TRUE )
{
healthpercent = get HEALTH;
if( healthpercent < 66 )
{
smoketype = 256 | 2;
if( Rand( 1, 66 ) < healthpercent )
{
smoketype = 256 | 1;
}
emit-sfx smoketype from base;
}
sleeptime = healthpercent * 50;
if( sleeptime < 200 )
{
sleeptime = 200;
}
sleep sleeptime;
}
}

Create()
{
dont-cache rocket;
dont-cache mis;
dont-cache mis2;
start-script SmokeUnit();
dont-shade base;
dont-shade body;
hide rocket;
move fp to y-axis [40] now;
}

restore()
{

hide rocket;
move rocket to y-axis [0] now;
turn mis2 to x-axis <0> now;
move mis to y-axis [0] now;

}

AimPrimary(heading, pitch)
{
signal SIG_AIM;
set-signal-mask SIG_AIM;
show rocket;
start-script restore();
return (1);
}

FirePrimary()
{
hide rocket;
turn mis2 to x-axis <0> now;
move mis to y-axis [0] now;
move rocket to y-axis [0] now;
}

AimFromPrimary(piecenum)
{
piecenum = fp;
}

SweetSpot(piecenum)
{
piecenum = base;
}

QueryPrimary(piecenum)
{
piecenum = rocket;
}

Killed(severity, corpsetype)
{
if( severity <= 25 )
{
corpsetype = 1;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
if( severity <= 50 )
{
corpsetype = 2;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
if( severity <= 99 )
{
corpsetype = 3;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
return (0);
}
corpsetype = 3;
explode base type BITMAPONLY | BITMAP3;
explode body type BITMAPONLY | BITMAP1;
}

的确没问题了 大马士革防御塔不会出Bug了,下面是雷神之锤的 我应该删除哪一段? 我记得在游戏中在发射卫星的那段会时间会出错,我应该删除哪段比较合适

:7_347: 雷神之锤脚本太长太复杂了,看样子搞不定:6_292: 要不要试试问问HoneyFox

貌似这个是Dplayx.dll的问题,TALON的某些特殊单位只能稳定运行在1.0.0.545版本的Dplayx.dll,而国内mod一般是使用1.0.0.546版。不知道3902补丁是根据那个dll弄出来的。

雷神之锤被我搞定了 但是大马士革现在变成平射了 不是垂直发射了 求修改

应该是那两句turn mis2 to x-axis <0> now;,意思是转动部件mis2到X轴,删掉应该可以了