|
对不同玩家显示不同任务的实现,其实很简单的东西,利用LocalPlayer,加一个判断就可以了。
我这里的WE是英文的,看不懂就自己用WE打开看:
[trigger]QuestTest
事件
单位 - A unit 死亡
环境
(Unit-type of (Triggering unit)) 等于 苦工
QuestKP[(Player number of (Owner of (Killing unit)))] 小于 3
动作
Set TempInteger = (Player number of (Owner of (Killing unit)))
Set QuestKP[TempInteger] = (QuestKP[TempInteger] + 1)
Custom script: if GetLocalPlayer() == GetOwningPlayer(GetKillingUnit()) then
Custom script: call DisplayTextToPlayer(GetLocalPlayer(),0,0,"屠杀苦工完成?" + I2S(udg_QuestKP[udg_TempInteger]) + "/3)")
任务 - Change the description of TestQuest_Req to (屠杀苦工完成? + ((String(QuestKP[TempInteger])) + /3)))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - 环境
QuestKP[TempInteger] 等于 3
Then - 动作
任务 - Mark TestQuest as 完成
任务 - Mark TestQuest_Req as 完成
任务 - Flash the quest dialog button
Else - 动作
Custom script: endif[/trigger]
两句Custom Script之间的代码是只对单人运行的。
GetLocalPlayer() :本地玩家,可以理解为屏幕前的人,所以对每个玩家的值都是不同的。在基于LocalPlayer的if判断就能实现仅对某玩家运行代码。
注意:GetLocalPlayer() 涉及到同步问题,如果对该函数不能很好的理解,千万不要乱用。
[ 本帖最后由 Red_Wolf 于 2006-8-21 11:54 编辑 ] |
|