找回密码
 点一下
查看: 1218|回复: 5

太渣了!1.24d的语法检查太渣了!

[复制链接]
发表于 2010-2-13 22:33:17 | 显示全部楼层 |阅读模式
如图,咱啥也没做他竟然都报我错!!

我x你民的无效变量!

acc.JPG

贴一下:
[jass]
function bSys_Move takes nothing returns nothing
    local integer id = TDS_GetTimerIndex(GetExpiredTimer())
    local real x = 0.
    local real dx = 0.
    local real y = 0.
    local real dy = 0.
    local integer i = 0
    local integer m = 0
    local unit u = null
    local group g = null
   
    if udg_bSys_I[id] != 0 then
        
        set udg_bSys_I[id] = udg_bSys_I[id] - 1
        
        set i = R2I(udg_bSys_Vel[id] / 32.) + 1
        set x = GetUnitX(udg_bSys_Unit[id])
        set y = GetUnitY(udg_bSys_Unit[id])
        set dx = 32. * Cos(GetUnitFacing(udg_bSys_Unit[id]) * bj_DEGTORAD)
        set dy = 32. * Sin(GetUnitFacing(udg_bSys_Unit[id]) * bj_DEGTORAD)
        set g = CreateGroup()
        
        loop
            set m = m + 1
            if sPointIsInMap(x + dx, y + dy, false) == true then
                set x = x + dx
                set y = y + dy
                call GroupEnumUnitsInRange(g, x, y, 32., udg_Sys_CommonFilter)
                call GroupRemoveUnit(udg_bSys_Caster[id])
                set u = FirstOfGroup(g)
                if u != null then
                    loop
                        exitwhen u == null
                        call UnitDamageTarget(udg_bSys_Caster[id], u, udg_bSys_Damage[id], true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
                        call GroupRemoveUnit(g, u)
                        set u = FirstOfGroup(g)
                    endloop
                    call SetUnitX(udg_bSys_Unit[id], x)
                    call SetUnitY(udg_bSys_Unit[id], y)
                    
                    call TDS_Release(GetExpiredTimer())
                    call KillUnit(udg_bSys_Unit[id])
                    call DestroyGroup(g)
                    set udg_bSys_Unit[id] = null
                    set udg_bSys_Caster[id] = null
                    set u = null
                    set g = null
                endif
            else
                call TDS_Release(GetExpiredTimer())
                call KillUnit(udg_bSys_Unit[id])
                call DestroyGroup(g)
                set udg_bSys_Unit[id] = null
                set udg_bSys_Caster[id] = null
                set u = null
                set g = null
            endif
            exitwhen m == i
        endloop
        
        set x = GetUnitX(udg_bSys_Unit[id]) + udg_bSys_Vel[id] * Cos(GetUnitFacing(udg_bSys_Unit[id]) * bj_DEGTORAD)
        set y = GetUnitY(udg_bSys_Unit[id]) + udg_bSys_Vel[id] * Sin(GetUnitFacing(udg_bSys_Unit[id]) * bj_DEGTORAD)
        call SetUnitX(udg_bSys_Unit[id], x)
        call SetUnitY(udg_bSys_Unit[id], y)
        
        set udg_bSys_Vel[id] = udg_bSys_Vel[id] + udg_bSys_Acc[id]
    else
        call TDS_Release(GetExpiredTimer())
        call KillUnit(udg_bSys_Unit[id])
        call DestroyGroup(g)
        set udg_bSys_Unit[id] = null
        set udg_bSys_Caster[id] = null
        set u = null
        set g = null
    endif
endfunction
[/jass]

结果发现把上面那一行call GroupRemoveUnit(udg_bSys_Caster[id])删了就没事了.......我.......
发表于 2010-2-13 22:39:48 | 显示全部楼层
瞎眼,看挫了
回复

使用道具 举报

发表于 2010-2-13 22:57:58 | 显示全部楼层
你这个明显是自己写错。we的语法检测向来都可能会偏离错误位置一两行又不是124d改成这样的。

从单位组中删除单位怎么可能只有一个参数呢。想想就知道。
回复

使用道具 举报

 楼主| 发表于 2010-2-13 23:06:11 | 显示全部楼层
所以我错了TAT
回复

使用道具 举报

发表于 2010-2-14 03:10:29 | 显示全部楼层
太渣了!
回复

使用道具 举报

发表于 2010-2-14 07:25:45 | 显示全部楼层
我遇到這樣的問題乾脆分開重做,然後哪個部份保存錯誤哪個部份檢查。
手誤WE還能檢查出來,一些邏輯型錯誤位置經常亂套。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-10-21 18:16 , Processed in 0.039586 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表