function Trig_blizzard_intelligence________2_Func002002003001 takes nothing returns boolean return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false ) endfunction function Trig_blizzard_intelligence________2_Func002002003002001 takes nothing returns boolean return ( IsUnitAliveBJ(GetFilterUnit()) == true ) endfunction function Trig_blizzard_intelligence________2_Func002002003002002 takes nothing returns boolean return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_blizzard_hero)) == true ) endfunction function Trig_blizzard_intelligence________2_Func002002003002 takes nothing returns boolean return GetBooleanAnd( Trig_blizzard_intelligence________2_Func002002003002001(), Trig_blizzard_intelligence________2_Func002002003002002() ) endfunction function Trig_blizzard_intelligence________2_Func002002003 takes nothing returns boolean return GetBooleanAnd( Trig_blizzard_intelligence________2_Func002002003001(), Trig_blizzard_intelligence________2_Func002002003002() ) endfunction function Trig_blizzard_intelligence________2_Func003A takes nothing returns nothing call AddSpecialEffectTargetUnitBJ( "overhead", GetEnumUnit(), "Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl" ) call CreateNUnitsAtLoc( 1, 'e000', GetOwningPlayer(udg_blizzard_hero), udg_blizzard_p, bj_UNIT_FACING ) call UnitDamageTargetBJ( bj_lastCreatedUnit, GetEnumUnit(), ( I2R(GetHeroInt(udg_blizzard_hero, true)) * 0.65 ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_COLD ) endfunction function Trig_blizzard_intelligence________2_Actions takes nothing returns nothing call YDWELocalVariableInitiliation( ) call YDWESetLocalVariableGroup( "g", GetUnitsInRangeOfLocMatching(BlzGetAbilityRealLevelField(BlzGetUnitAbility(udg_blizzard_hero, 'AHMB'), ABILITY_RLF_AREA_OF_EFFECT, GetUnitAbilityLevelSwapped('AHMB', udg_blizzard_hero)), udg_blizzard_p, Condition(function Trig_blizzard_intelligence________2_Func002002003)) ) call ForGroup( YDWEGetLocalVariableGroup("g"), function Trig_blizzard_intelligence________2_Func003A ) call GroupClear( YDWEGetLocalVariableGroup("g") ) call DestroyGroup( YDWEGetLocalVariableGroup("g") ) call YDWELocalVariableEnd( ) endfunction //=========================================================================== function InitTrig_blizzard_intelligence________2 takes nothing returns nothing set gg_trg_blizzard_intelligence________2 = CreateTrigger( ) call TriggerRegisterTimerExpireEventBJ( gg_trg_blizzard_intelligence________2, udg_blizzard_inte ) call TriggerAddAction( gg_trg_blizzard_intelligence________2, function Trig_blizzard_intelligence________2_Actions ) endfunction这段代码
时间: 2023-02-11 18:17:43 浏览: 271
这段代码是用来实现一个"暴风雪智能"的触发器,具体实现了以下功能:
1. 当触发器计时器到期时,会获取在指定地点范围内的所有敌方单位,并对其施加"overhead"特效,并在其位置创建一个新单位。
2. 会对获取的敌方单位造成伤害,伤害值是英雄的智力值的0.65倍。
3. 使用了几个函数来过滤单位,确保只对符合条件的单位进行操作。
相关问题
import numpy as np import matplotlib.pyplot as plt def plot_trig_function(trig_func, start, end, step): x = np.arange(start, end, step) if trig_func == 'sin': y = np.sin(x) elif trig_func == 'cos': y = np.cos(x) elif trig_func == 'tan': y = np.tan(x) else: print('Invalid trig function') return plt.plot(x, y) plt.xlabel('x') plt.ylabel(trig_func + '(x)') plt.title(trig_func + ' function') plt.show()
这是我为您编写的程序,可以根据输入的三角函数类型和参数,绘制相应的曲线。您可以根据需要调整起始点、终止点和点数,以及选择其他三角函数来绘制相应的曲线。
示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
def plot_trig_function(trig_func, start, end, step):
x = np.arange(start, end, step)
if trig_func == 'sin':
y = np.sin(x)
elif trig_func == 'cos':
y = np.cos(x)
elif trig_func == 'tan':
y = np.tan(x)
else:
print('Invalid trig function')
return
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel(trig_func + '(x)')
plt.title(trig_func + ' function')
plt.show()
# 绘制sin函数从0到2π的曲线
plot_trig_function('sin', 0, 2*np.pi, 0.1)
```
输出结果为:
![sin函数曲线](https://img-blog.csdn.net/20180517204726173?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZpbGVoYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
reg trig_signal ; always @ (posedge clk) begin case(trig_condition[0]) 2'b0: trig_signal <= idle_en ? (sclk_rising & idle_time_over) : (~cs & cs_reg) ; // 2'b1: trig_signal <= idle_en ? (spi_mosi_byte_trig & idle_time_over_r) : spi_mosi_byte_trig; // // 2'b10: // trig_signal <= spi_miso_byte_trig; // // 2'b11: // trig_signal <= spi_mosi_byte_trig | spi_miso_byte_trig; // endcase end
这段代码定义了一个`trig_signal`寄存器,并在时钟上升沿触发的`always`块中进行赋值操作。
在这个`always`块中,根据`trig_condition[0]`的值进行选择:
- 如果`trig_condition[0]`等于2'b0,则执行以下操作:
- 如果`idle_en`为真(空闲使能信号为真),并且`sclk_rising`和`idle_time_over`都为真,则将`trig_signal`寄存器的值设置为真;否则,将其设置为假。
- 如果`trig_condition[0]`等于2'b1,则执行以下操作:
- 如果`idle_en`为真,并且`spi_mosi_byte_trig`和`idle_time_over_r`都为真,则将`trig_signal`寄存器的值设置为真;否则,将其设置为假。
这段代码的作用是根据不同的条件,将`trig_signal`寄存器的值设置为特定的逻辑操作结果。这可能用于生成触发信号,以便在特定条件下执行某些操作。注释部分提供了其他可能的条件选择,但在当前代码中被注释掉了,可能是因为不需要或者被暂时禁用了。
阅读全文