找回密码
 点一下
查看: 1873|回复: 10

[求助]自制jass毛病

[复制链接]
发表于 2007-11-9 10:30:51 | 显示全部楼层 |阅读模式
[codes=jass]function ItemUp takes integer i,integer n,unit u returns nothing
   
    local integer a = i
    local integer b= n
    local integer c=0
    local player p =GetOwningPlayer(u)
    loop
        exitwhen a > b
        if ( udg_ItemType[a] == GetItemTypeId(UnitItemInSlotBJ(u, 1)) )  then
            set c = a
        else
        endif
        set a= a + 1
    endloop
    if ( c==0 ) then
        call DisplayTimedTextToPlayer( p, 0, 0, 3.00, "|c009D2B56请在物品栏第一格放置可升级的物品退还打造费!|r" )
        call AdjustPlayerStateBJ( 1000, p, PLAYER_STATE_RESOURCE_GOLD )
    else
        call RemoveItem( UnitItemInSlotBJ(u, 1) )
        call UnitAddItemByIdSwapped( udg_ItemType[(c + 1 )], u )
    endif
    set c = 0
   
   endfunction[/codes]

事件:单位获得物品
条件:物品类型为 打造
动作:call ItemUp(1,4,GetTriggerUnit())

可以进入游戏
点“打造”的时候就弹出来了,出错。
不知道怎么回事
发表于 2007-11-9 16:12:55 | 显示全部楼层
暂没发现问题,可自行尝试调式:
代码先全注释掉然后从开始逐段允许加进,
显示当前的各变量数值。
回复

使用道具 举报

 楼主| 发表于 2007-11-9 16:37:27 | 显示全部楼层
怎样逐段允许加入?我是通过先把T做出来再转J改的,T运行良好,转成J后就不行了
怀疑是不是loop的原因?
回复

使用道具 举报

发表于 2007-11-10 10:28:22 | 显示全部楼层
比如先把循环后面的语句用双反斜杠//注释掉,然后加上那个检查的句子
[codes=jass]function debugmsg takes string s returns nothing
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,10,s)
endfunction
function ItemUp takes integer i,integer n,unit u returns nothing
      
      local integer a = i
      local integer b= n
      local integer c=0
      local player p =GetOwningPlayer(u)
      loop
            exitwhen a > b
            if ( udg_ItemType[a] == GetItemTypeId(UnitItemInSlotBJ(u, 1)) )   then
                  set c = a
            else
            endif
            set a= a + 1
      endloop
call debugmsg("循环结束 a="+I2S(a))
call debugmsg("循环结束 b="+I2S(b))
call debugmsg("循环结束 c="+I2S(c))
//      if ( c==0 ) then
//            call DisplayTimedTextToPlayer( p, 0, 0, 3.00, "|c009D2B56请在物品栏第一格放置可升级的物品退还打造费!|r" )
//           call AdjustPlayerStateBJ( 1000, p, PLAYER_STATE_RESOURCE_GOLD )
//     else
//           call RemoveItem( UnitItemInSlotBJ(u, 1) )
//           call UnitAddItemByIdSwapped( udg_ItemType[(c + 1 )], u )
//     endif
//     set c = 0
   
    endfunction
[/codes]
回复

使用道具 举报

发表于 2007-11-10 11:20:39 | 显示全部楼层
call UnitAddItemByIdSwapped( udg_ItemType[(c + 1 )], u )《---------------莫非udg_ItemType[]保存的是物品类型?还和单位的物品栏有关系?

c=1~4。。。然后+1

c=2~5

你确定udg_ItemType[2~5]是你想要的物品?
回复

使用道具 举报

 楼主| 发表于 2007-11-10 20:32:27 | 显示全部楼层
确定、一定以及肯定
[codes=jass]function Trig_SetItem_______u_Actions takes nothing returns nothing
    set udg_ItemType[0] = 'modt'
    set udg_ItemType[1] = 'I003'
    set udg_ItemType[2] = 'I004'
    set udg_ItemType[3] = 'I005'
    set udg_ItemType[4] = 'I006'
    set udg_ItemType[5] = 'I007'
        call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_SetItemJ takes nothing returns nothing
    set gg_trg_SetItemJ = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_SetItemJ, 3.00 )
    call TriggerAddAction( gg_trg_SetItemJ, function Trig_SetItem_______u_Actions )
endfunction

[/codes]
本来准备做个物品升级的jass,想升级的话就直接调用,结果还是不行啊。。。。
回复

使用道具 举报

 楼主| 发表于 2007-11-10 21:12:08 | 显示全部楼层
貌似是调用的时候出错了,因为我把loop都搞成注释了还是不行。。。。。。。。
回复

使用道具 举报

发表于 2007-11-11 22:33:51 | 显示全部楼层
貌似没有发现错误
回复

使用道具 举报

 楼主| 发表于 2007-11-12 11:43:19 | 显示全部楼层
难道我又发现了一个难题么?这样吧,我把图传上来,大家帮忙看下,是不是别的地方的问题:
回复

使用道具 举报

发表于 2007-11-12 13:43:57 | 显示全部楼层
引用楼主acer01于2007-11-09 10:30发表的 [求助]自制jass毛病 :
事件:单位获得物品
条件:物品类型为 打造
动作:call ItemUp(1,4,GetTriggerUnit())
动作错误.
改成:
[trigger]
HealthStone
    Events
        单位 - 任意单位 获得物品
    Conditions
        ((被操作物呿 的类圿 等于 打辿
    Actions
        设置 Unit_Buyer = (触发单位)
        自定义代码 call ItemUp(1,4,udg_Unit_Buyer)
[/trigger]
该死,论坛Trigger标签又坏了
HealthStone
    Events
        单位 - 任意单位 获得物品
    Conditions
        ((被操作物呿 的类圿 等于 打辿
    Actions
        设置 Unit_Buyer = (触发单位)
        自定义代码 call ItemUp(1,4,udg_Unit_Buyer)
回复

使用道具 举报

 楼主| 发表于 2007-11-12 14:14:23 | 显示全部楼层
哦,终于知道了,把代码搞成函数了,郁闷。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 13:27 , Processed in 0.037913 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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