关于触发器在J文件里的命名 关键词:jass//we//T//触发//war3
通常用UI写出来的T在J里面都是ggtrgxxx对吧,今天偶然打开dota图看了一眼,发现里面的命名居然是很奇怪的乱序命名.于是我试着随便写了一个触发,保存,用记事本打开...
通常用UI写出来的T在J里面都是gg trg xxx对吧,今天偶然打开dota图看了一眼,发现里面的命名居然是很奇怪的乱序命名.
于是我试着随便写了一个触发,保存,用记事本打开J文件,把里面的触发名gg trg a改成a(比喻) gg trg b改成b
触发声明也一起改掉了
结果就无法通过魔兽的语法检测了.
请问这个命名规则到底是一个怎么回事呢
如果可以的话,可以举个例子让我看一看该怎么改成像这样的触发器名字吗
比如:
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
function Trig_def_Actions takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function InitTrig_def takes nothing returns nothing
set gg_trg_def=CreateTrigger()
call TriggerRegisterGameStateEventTimeOfDay(gg_trg_def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function Trig_def_Actions)
endfunction
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
这样的,该怎么改触发名呢
如果答案满意,分数不会让你失望.
2楼的不错,只不过还是没看懂我想表达的意思,我的意思不是说改gg trg xxx变成gg trg yyy
而是把gg trg xxx改成单纯的abc def这样的格式,没有前面的gg trg格式
把dota里面的一小段复制出来看看好了.
globals
trigger BH=null
trigger CH=null
trigger DH=null
trigger EH=null
trigger FH=null
trigger GH=null
trigger HH=null
trigger ZH=null
trigger VH=null
trigger WH=null
trigger XH=null
trigger YH=null
trigger JH=null
trigger KH=null
trigger LH=null
trigger MH=null
trigger NH=null
unit HX=null
unit ZX=null
unit VX=null
unit WX=null
……
endglobals
function GD1 takes string F0I,integer GC1 returns nothing
local trigger t=CreateTrigger()
local integer FRI=GetHandleId(t)
call TriggerRegisterTimerEvent(t,1.5,false)
call TriggerAddCondition(t,Condition(function GB1))
call SaveStr(GJ,(FRI),(90),(F0I))
call SaveInteger(GJ,(FRI),(89),(GC1))
set t=null
endfunction
……
太多了,不贴了,总之我就想用这种无序乱数的名字做触发名,求格式而已.
奖励已提高一次. 展开
于是我试着随便写了一个触发,保存,用记事本打开J文件,把里面的触发名gg trg a改成a(比喻) gg trg b改成b
触发声明也一起改掉了
结果就无法通过魔兽的语法检测了.
请问这个命名规则到底是一个怎么回事呢
如果可以的话,可以举个例子让我看一看该怎么改成像这样的触发器名字吗
比如:
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
function Trig_def_Actions takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function InitTrig_def takes nothing returns nothing
set gg_trg_def=CreateTrigger()
call TriggerRegisterGameStateEventTimeOfDay(gg_trg_def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function Trig_def_Actions)
endfunction
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
这样的,该怎么改触发名呢
如果答案满意,分数不会让你失望.
2楼的不错,只不过还是没看懂我想表达的意思,我的意思不是说改gg trg xxx变成gg trg yyy
而是把gg trg xxx改成单纯的abc def这样的格式,没有前面的gg trg格式
把dota里面的一小段复制出来看看好了.
globals
trigger BH=null
trigger CH=null
trigger DH=null
trigger EH=null
trigger FH=null
trigger GH=null
trigger HH=null
trigger ZH=null
trigger VH=null
trigger WH=null
trigger XH=null
trigger YH=null
trigger JH=null
trigger KH=null
trigger LH=null
trigger MH=null
trigger NH=null
unit HX=null
unit ZX=null
unit VX=null
unit WX=null
……
endglobals
function GD1 takes string F0I,integer GC1 returns nothing
local trigger t=CreateTrigger()
local integer FRI=GetHandleId(t)
call TriggerRegisterTimerEvent(t,1.5,false)
call TriggerAddCondition(t,Condition(function GB1))
call SaveStr(GJ,(FRI),(90),(F0I))
call SaveInteger(GJ,(FRI),(89),(GC1))
set t=null
endfunction
……
太多了,不贴了,总之我就想用这种无序乱数的名字做触发名,求格式而已.
奖励已提高一次. 展开
2个回答
展开全部
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
function Trig_def_Actions takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function InitTrig_def takes nothing returns nothing
set gg_trg_def=CreateTrigger()
call TriggerRegisterGameStateEventTimeOfDay(gg_trg_def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function Trig_def_Actions)
endfunction
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
看上面的代码(其实是俩触发转的吧dota我也看过map.j里面没有这些触发转的j)
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
这里是全局变量申明trigger gg_trg_abc= null 生成trigger型变量gg_trg_abc赋值没有(null)
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
这个是名字InitTrig_abc的触发器
里面set gg_trg_abc=CreateTrigger() 这句是对trigger型变量gg_trg_abc赋值CreateTrigger() 一个新创建的触发 就用上了globals全局变量里面的gg_trg_abc
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
这个是最后读取地图时候要读取的触发器call InitTrig_abc()就调用前面的
function InitTrig_abc takes nothing returns nothing
然后又调用了全局变量里面的gg_trg_abc变量所保存的触发
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
这个是gg_trg_abc对应的事件和动作
事件由任意单位事件EVENT_PLAYER_UNIT_DEATH产生
动作则调用函数function Trig_abc_Actions takes nothing returns nothing
还有不懂的继续问
望采纳 谢谢
用你的例子来说吧
把gg_trg_abc变成abc
gg_trg_def变成def 其他的函数无序排列就是
globals
trigger abc= null //这里是变量 叫什么的无所谓 但是前面的trigger不能变 说明这个变量只能用来装trigger 不能用来记录其他东西
trigger def= null
endglobals
function AH takes nothing returns nothing //function AH 这个意思是函数名字AH
call DoNothing()
endfunction
function CH takes nothing returns nothing //不解释function了
set abc=CreateTrigger() //变量abc记住的一个新建的触发器 一个句柄类型的变量
call TriggerRegisterAnyUnitEventBJ(abc, EVENT_PLAYER_UNIT_DEATH) //向abc变量记住的触发注册事件 当事件发生的时候判断条件 做动作 当然这个没条件
call TriggerAddAction(abc, function AH) //向abc变量记住的触发添加动作 注意添加动作时候的添加的是函数AH
endfunction
function BH takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function DH takes nothing returns nothing
set def=CreateTrigger() //和上面差不多
call TriggerRegisterGameStateEventTimeOfDay(def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function BH)
endfunction
function InitCustomTriggers takes nothing returns nothing
call CH()
call DH()
endfunction
看明白了么通过函数InitCustomTriggers调用函数CH和DH
由CH生成触发abc并且注册事件条件动作
由DH生成触发def并且注册事件条件动作
然后map.j后面有最后一个主函数main调用InitCustomTriggers函数达到生成触发的原理
魔兽的jass的结构就是 先变量 然后基础函数 然后调用了基础函数的函数 这样一级一级往后面走最后是主函数main入口
不明白继续问
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
function Trig_def_Actions takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function InitTrig_def takes nothing returns nothing
set gg_trg_def=CreateTrigger()
call TriggerRegisterGameStateEventTimeOfDay(gg_trg_def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function Trig_def_Actions)
endfunction
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
看上面的代码(其实是俩触发转的吧dota我也看过map.j里面没有这些触发转的j)
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
这里是全局变量申明trigger gg_trg_abc= null 生成trigger型变量gg_trg_abc赋值没有(null)
function InitTrig_abc takes nothing returns nothing
set gg_trg_abc=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
endfunction
这个是名字InitTrig_abc的触发器
里面set gg_trg_abc=CreateTrigger() 这句是对trigger型变量gg_trg_abc赋值CreateTrigger() 一个新创建的触发 就用上了globals全局变量里面的gg_trg_abc
function InitCustomTriggers takes nothing returns nothing
call InitTrig_abc()
call InitTrig_def()
endfunction
这个是最后读取地图时候要读取的触发器call InitTrig_abc()就调用前面的
function InitTrig_abc takes nothing returns nothing
然后又调用了全局变量里面的gg_trg_abc变量所保存的触发
call TriggerRegisterAnyUnitEventBJ(gg_trg_abc, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(gg_trg_abc, function Trig_abc_Actions)
这个是gg_trg_abc对应的事件和动作
事件由任意单位事件EVENT_PLAYER_UNIT_DEATH产生
动作则调用函数function Trig_abc_Actions takes nothing returns nothing
还有不懂的继续问
望采纳 谢谢
用你的例子来说吧
把gg_trg_abc变成abc
gg_trg_def变成def 其他的函数无序排列就是
globals
trigger abc= null //这里是变量 叫什么的无所谓 但是前面的trigger不能变 说明这个变量只能用来装trigger 不能用来记录其他东西
trigger def= null
endglobals
function AH takes nothing returns nothing //function AH 这个意思是函数名字AH
call DoNothing()
endfunction
function CH takes nothing returns nothing //不解释function了
set abc=CreateTrigger() //变量abc记住的一个新建的触发器 一个句柄类型的变量
call TriggerRegisterAnyUnitEventBJ(abc, EVENT_PLAYER_UNIT_DEATH) //向abc变量记住的触发注册事件 当事件发生的时候判断条件 做动作 当然这个没条件
call TriggerAddAction(abc, function AH) //向abc变量记住的触发添加动作 注意添加动作时候的添加的是函数AH
endfunction
function BH takes nothing returns nothing
call PauseAllUnitsBJ(true)
endfunction
function DH takes nothing returns nothing
set def=CreateTrigger() //和上面差不多
call TriggerRegisterGameStateEventTimeOfDay(def, LESS_THAN_OR_EQUAL, 12)
call TriggerAddAction(gg_trg_def, function BH)
endfunction
function InitCustomTriggers takes nothing returns nothing
call CH()
call DH()
endfunction
看明白了么通过函数InitCustomTriggers调用函数CH和DH
由CH生成触发abc并且注册事件条件动作
由DH生成触发def并且注册事件条件动作
然后map.j后面有最后一个主函数main调用InitCustomTriggers函数达到生成触发的原理
魔兽的jass的结构就是 先变量 然后基础函数 然后调用了基础函数的函数 这样一级一级往后面走最后是主函数main入口
不明白继续问
2010-12-17
展开全部
暴雪的jass 语言跟其他编程语言都有特定的申明。。这个代表什么 那个代表什么。。不可以随便改。。有些是 函数。。有些是变量。。区域 等
地图包里面的j 是整个触发器 跟地图设定 生成的jass。。所以有些东西 触发里面灭有
比如 变量 跟 地图单位设定 区域 镜头(等)
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
》》》》这个 是变量声名gg_trg 是某个变量名字 后面的是名称。。。貌似是触发器吧。。忘了
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
这个就是一个完成句子。。。如果你要该触发器的名字。。。首先要知道 变量的名称跟功能
gg_xxxx yyyy gg_就是一个定义。。代表变量 xxxx函数名称 比如区域 点 单位等yyyy 就是变量的名字 比如 abc 等
地图包里面的j 是整个触发器 跟地图设定 生成的jass。。所以有些东西 触发里面灭有
比如 变量 跟 地图单位设定 区域 镜头(等)
globals
trigger gg_trg_abc= null
trigger gg_trg_def= null
endglobals
》》》》这个 是变量声名gg_trg 是某个变量名字 后面的是名称。。。貌似是触发器吧。。忘了
function Trig_abc_Actions takes nothing returns nothing
call DoNothing()
endfunction
这个就是一个完成句子。。。如果你要该触发器的名字。。。首先要知道 变量的名称跟功能
gg_xxxx yyyy gg_就是一个定义。。代表变量 xxxx函数名称 比如区域 点 单位等yyyy 就是变量的名字 比如 abc 等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询