|
楼主 |
发表于 2007-8-26 23:15:24
|
显示全部楼层
[codes=jass]
function H2I takes handle h returns integer
return h
return 0
endfunction
//x,y是一个对玩家而言不可见的一个点的坐标,我们要利用这个坐标来创建一个闪电。
function MhTest takes real x,real y returns nothing
local lightning lit=AddLightning("CLPB",true,x,y,x,y)//创建闪电
local unit test_unit=CreateUnit(Player(15),'',GetLocationX(loc),GetLocationY(loc),0)//创建一个单位
local index=0
loop
exitwhen index==12//对12个玩家开始判断
//下面的一行是指玩家在游戏中,没掉线,而且不是电脑玩家
if GetPlayerController(Player(index)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(index)) == PLAYER_SLOT_STATE_PLAYING then
//发现本地玩家闪电H2I值非0,就是说明上面的不可见点变得可见,说明开外挂。
if GetLocalPlayer()==Player(index) and H2I(lit)!=0 then
//让这个玩家选择上面创建的单位,来标记他。
SelectUnit(test_unit,true);
endif
//等待函数,这个函数运行的目的是,在此时进行网络通信,把上面发生的情况告诉给网络上的其他玩家。
call TriggerSleepAction(0.1)
endif
//发现有人还选择着这个单位
if IsUnitSelected(test_unit,Player(index))) then
//发送信息,这个玩家用外挂。
call BJDebugMsg(GetPlayerName(Player(index))+" Using MapHack.")
endif
//开启下一层循环
set index=index+1
endloop
//删除上面创建的闪电和单位
call RemoveUnit(test_unit);
call DestroyLightning(lit);
endfunction
[/codes] |
|