|
发表于 2012-8-17 17:48:47
|
显示全部楼层
[jass]
globals
string udg_stdin
endglobals
function HaveString takes nothing returns boolean
set udg_stdin = GetEventPlayerChatString()
//将玩家输入的聊天信息储存到变量udg_stdin当中
//注意GetEventPlayerChatString函数只能在TriggerRegisterPlayerChatEvent事件触发时执行的动作或条件中使用
return false
endfunction
function GetString takes player whichPlayer,real timeout returns string
local trigger t = CreateTrigger()
local timer tm = CreateTimer()
call TimerStart(tm,timeout,false,null)
//开启计时器,用于限时输入数据
call TriggerRegisterPlayerChatEvent(t,Player(0),"",false)
call TriggerAddCondition(t,Condition(function HaveString))
//为触发添加事件和条件(当成动作使用),使得玩家在输入数据的时候会执行HaveString函数
set udg_stdin = ""
loop
exitwhen udg_stdin != ""
exitwhen TimerGetRemaining(tm) <= 0
call TriggerSleepAction(0.00)
//循环等待玩家输入数据(检查变量)或时间结束
endloop
call DestroyTrigger(t)
call DestroyTimer(tm)
set tm = null
set t = null
//删除计时器和触发器
return udg_stdin
//返回数据
endfunction
[/jass]
用Jass的话,可以这样写
set s = GetString(Player(0),10)
作用是让玩家一在十秒内输入一段字符串并储存在变量s里面 |
|