protected override DHJassValue Run() { trigger trigger = args["whichTrigger"].HandleValue as trigger; if (trigger == null) return new DHJassHandle(null, 0); timer timer = new timer(); triggerevent tevent = new triggerevent(trigger, timer); timer.SetCallback(tevent.OnEvent); timer.start(args["timeout"].RealValue, args["periodic"].BoolValue); return new DHJassHandle(null, tevent.handle); }