魔兽修改地图(用JASS简单修改魔兽争霸地图)
作者:哪吒游戏网 来源:哪吒游戏网 2020-05-20 22:30:17
魔兽修改地图(用JASS简单修改魔兽争霸地图),哪吒游戏网给大家带来详细的魔兽修改地图(用JASS简单修改魔兽争霸地图)介绍,大家可以阅读一下,希望这篇魔兽修改地图(用JASS简单修改魔兽争霸地图)可以给你带来参考价值。
大学时候,经常用w3mmaster修改一些未加密地图的技能,自娱自乐。有一张地图,神之墓地,有一些改版:“春哥”、“风姐”版魔兽修改地图,特点是玩家输入“风姐万岁”等特定指令时,英雄会得到若干个随机物品。
想用w3mmaster修改之,但是图经过SLK优化,解压后没有w3u文件(w3mmaster+mpqmaster的改图教程可以参见这里),只有war3map.j,这不就是传说中的JASS脚本文件么?随直接用ue打开,定位“我信春哥!”,找到这段代码:
function Trig_thisisrhick_Actions takes nothing returns nothing
local trigger array iiitttggg
local integer i=1
loop
exitwhen i>12
if GetPlayerController(ConvertedPlayer(i)) == MAP_CONTROL_USER and GetPlayerSlotState(ConvertedPlayer(i)) == PLAYER_SLOT_STATE_PLAYING then
set iiitttggg[i]=CreateTrigger()
set iiitttggg[i+12]=CreateTrigger()
set iiitttggg[i+24]=CreateTrigger()
call TriggerRegisterPlayerChatEvent(iiitttggg[i], ConvertedPlayer(i), "我信春哥!", true )
call TriggerRegisterPlayerChatEvent(iiitttggg[i+12], ConvertedPlayer(i), "信春哥 得永生", true )
call TriggerRegisterPlayerChatEvent(iiitttggg[i+24], ConvertedPlayer(i), "支持飞飞世界", true )
call TriggerAddAction(iiitttggg[i], function iiitttggg_Actions )
call TriggerAddAction(iiitttggg[i+12], function iiitttggg_Actions )
call TriggerAddAction(iiitttggg[i+24], function iiitttggg_Actions )
endif
set i=i+1
endloop
endfunction
显然,这是一个函数定义,其中又调用了一些API。单从函数名上判断,应该是为每个玩家都注册一个由chat命令触发的事件,再看iiitttggg_Actions到底做了什么:
function iiitttggg_Actions takes nothing returns nothing
set bj_wantDestroyGroup=true
call ForGroupBJ( GetUnitsOfPlayerMatching(GetTriggerPlayer(), Condition(function iiitttggg_Func001001002)), function iiitttggg_Func001A )
call DestroyTrigger(GetTriggeringTrigger())
endfunction
继续跟下去,iiitttggg_Func001001002是用来判断当前单位是否是英雄,而iiitttggg_Func001A代码如下:
function iiitttggg_Func001A takes nothing returns nothing
set udg_iiitem = CreateItem(ChooseRandomItemBJ(+3), GetUnitX(GetEnumUnit()), GetUnitY(GetEnumUnit()))
call UnitAddItem( GetEnumUnit(), udg_iiitem )
call DisplayTimedTextToForce( GetPlayersAll(), 10.00, ( GetPlayerName(GetTriggerPlayer()) + ( "获得了由春哥奖励的 " + GetItemName(udg_iiitem) ) ) )
set udg_iiitem = CreateItem(ChooseRandomItemBJ(+3), GetUnitX(GetEnumUnit()), GetUnitY(GetEnumUnit()))
call UnitAddItem( GetEnumUnit(), udg_iiitem )
call DisplayTimedTextToForce( GetPlayersAll(), 10.00, ( GetPlayerName(GetTriggerPlayer()) + ( "获得了由春哥奖励的 " + GetItemName(udg_iiitem) ) ) )
set udg_iiitem = CreateItem(ChooseRandomItemBJ(+8), GetUnitX(GetEnumUnit()), GetUnitY(GetEnumUnit()))
call UnitAddItem( GetEnumUnit(), udg_iiitem )
call DisplayTimedTextToForce( GetPlayersAll(), 10.00, ( GetPlayerName(GetTriggerPlayer()) + ( "获得了由春哥奖励的 " + GetItemName(udg_iiitem) ) ) )
set udg_iiitem = CreateItem(ChooseRandomItemBJ(+9), GetUnitX(GetEnumUnit()), GetUnitY(GetEnumUnit()))
call UnitAddItem( GetEnumUnit(), udg_iiitem )
call DisplayTimedTextToForce( GetPlayersAll(), 10.00, ( GetPlayerName(GetTriggerPlayer()) + ( "获得了由春哥奖励的 " + GetItemName(udg_iiitem) ) ) )
set udg_iiitem = CreateItem(ChooseRandomItemBJ(+9), GetUnitX(GetEnumUnit()), GetUnitY(GetEnumUnit()))
call UnitAddItem( GetEnumUnit(), udg_iiitem )
call DisplayTimedTextToForce( GetPlayersAll(), 10.00, ( GetPlayerName(GetTriggerPlayer()) + ( "获得了由春哥奖励的 " + GetItemName(udg_iiitem) ) ) )
endfunction
顾名思义魔兽修改地图,ChooseRandomItemBJ就是获取一个随机物品(参数是物品等级),而UnitAddItem将它丢到英雄身上……值得注意的是,iiitttggg_Actions中调用了DestroyTrigger来避免该事件被重复调用,而不是我之前猜想的通过全局变量来记录。
至此,如果要改得更尽兴一点,那就在iiitttggg_Func001A里多call几次相关函数。然后还是照常将war3map.j导回到原地图文件即可。
题外话:JASS居然是Just Another Scripting Syntax的缩写,不由得想到Yaf(Yet another Framework)。
总结:以上内容就是针对魔兽修改地图(用JASS简单修改魔兽争霸地图)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,魔兽修改地图(用JASS简单修改魔兽争霸地图)部分内容转载自互联网,有帮助可以收藏一下。
上一篇: 我的世界联机教程(我的世界手机版怎么联机教程(含视频))
- 1 魔兽世界 考古(魔兽世界考古毁一生?这些装备幻化和坐骑值得你去玩考古)
- 2 普罗霍洛夫(卢布危机下俄土豪大甩卖 卖完豪宅卖球队)
- 3 龙之谷手柄(《龙之谷手游》手柄怎么连接 柄连接教学攻略)
- 4 普罗霍洛夫(俄罗斯土豪准备20亿抛售篮网! 最烂老板是怎样炼成的?)
- 5 天联网(天联网信息科技有限公司怎么样?)
- 6 附魔大师(魔兽世界怀旧服附魔大师在哪 附魔大师位置分享介绍)
- 7 wow烹饪食谱(魔兽世界怀旧服烹饪极品食谱)
- 8 陶谦让徐州(陶谦三让徐州,世界上真有这样的好人吗?)
- 9 lol神圣之剑(LOL如果神圣之剑回归,谁最受益?第1:只要不瞎都能上钻石!)
- 10 陶谦让徐州(陶谦三让徐州的原因是什么?)

机械战警
坦克射击
梦道满V版
火箭精英3d免费版
太古灵诀
小小帝国无敌破解版
厉害了我的娃
乐高无限
侠影双剑九游版