|
发表于 2007-8-12 02:10:20
|
显示全部楼层
我来弄个localplayer的使用吧。
1.不同玩家机器上,对变量赋不同的值是不会掉线的。
2.显示信息函数,也就是DisplayTextToPlayer,DisplayTimedTextToPlayer,可以
对不同玩家机器显示不同的信息。
[codes=jass]
funciton welcom takes nothing returns nothing
local string playername=GetPlayerName(GetLocalPlayer())
call DisplayTextToPlayer(Player(GetLocalPlayer()),0,0,"welcom"+playername)
endfunction
[/codes]
3.可以只对一个玩家创建漂浮文字
只对某一个玩家机器上显示一串话是可以的。
但是,你想创建一个,你看上去是10级的巫妖,但在别人眼里是一个死骑,那是不可以的。
不过,漂浮文字不管这些,你完全可以创建一个 你看上去是:我是白痴,而别人看上去都是:
你是白痴
[codes=jass]
function fool takes unit u returns nothing
local texttag fool
if GetPlayerName((GetLocalPlayer()) !="zhuzhu"
set fool=CreateTextTag()
call SetTextTagText(fool,"I'm fool",, 0.025)
call SetTextTagPosUnit(fool,u,100)
endif
endfunction
[/codes]
4.可以只对某一个玩家创建闪电效果,同上,不举例了。
5.除了这些都是不可以的。
比如,不可以针对某一玩家,设置单位的HP,MP,技能冷却,更不能创建单位,物品等。
而且,不可以针对某一玩家用等待,就是TriggerSleepAction.
6.据我所知,仅有的两种方法可以实现不同玩家机器上数据交互的办法。
一种是SelectUnit,可以只在某一玩家机器上运行SelectUnit函数,之后一般经过0.1秒多,就可以在其他玩家机器上通过IsUnitSelect判断。
第二种GameCache,不同玩家机器上的GameCache值可以不一样,有同步函数可以让所有玩家机器上的GameCache值同步到第一个取得“主机状态”的机器上。
主机状态 不一定是建主的那个主机。 不过,如果那个主机没有退出游戏,大多数情况就应该是这个了。 |
|