![]() |
Shadowrun: Awakened 29 September 2011 - Build 871
|
00001 global runtree, game, rootOp, Character, Controller 00002 00003 #Create root op, root of the whole op tree 00004 rootOp = object('ScriptVM.DynamicOp') 00005 rootOp.Desc = 'Event Mission Assigned' 00006 00007 #Get the first area in level's list 00008 area = None 00009 if game.areas: 00010 area = game.areas[0] 00011 00012 #Create event op 00013 testEvt = object('ScriptVM.DynamicEvent') 00014 testEvt.Desc = 'AttachEvent Area5,Entered' 00015 testEvt.EventSource = Character 00016 testEvt.EventName = 'Entered' 00017 cond = {} 00018 if area: 00019 cond['Area'] = area 00020 testEvt.Conditions = cond 00021 testEvt.MaxTriggers = 2 00022 00023 #Create timer op 00024 timerOp = object('ScriptVM.DynamicOp') 00025 timerOp.Desc = 'AddTimer 10s' 00026 timerOp.SetDelay(0, 10.0) 00027 00028 #Define a callback function 00029 def healthCheck(): 00030 global Character 00031 print 'In custom health check callback!' 00032 return Character.GetHealth() > 7 00033 00034 callbackVar = object('ScriptVM.DynamicVar') 00035 callbackVar.Value = healthCheck 00036 00037 #Create script condition op 00038 scriptOp = object('ScriptVM.DynOp_Script') 00039 scriptOp.Desc = 'IfScript healthCheck' 00040 scriptOp.ConnectVar(callbackVar) 00041 00042 #Create placeholder for "mission completed" action 00043 completeOp = object('ScriptVM.DynamicOp') 00044 completeOp.Desc = 'Completed' 00045 #Create placeholder for "mission failed" action 00046 failOp = object('ScriptVM.DynamicOp') 00047 failOp.Desc = 'Failed' 00048 00049 #Create disable op to stop testEvt 00050 disableOp1 = object('ScriptVM.DynOp_Disable') 00051 disableOp1.Desc = 'Disable Area5,Entered' 00052 disableOp2 = object('ScriptVM.DynOp_Disable') 00053 disableOp2.Desc = 'Disable Failure Timer' 00054 00055 #Connect up node tree 00056 rootOp.ConnectTo(testEvt) 00057 rootOp.ConnectTo(timerOp) 00058 00059 testEvt.ConnectTo(scriptOp) 00060 testEvt.ConnectTo(disableOp2) 00061 00062 timerOp.ConnectTo(disableOp1) 00063 00064 #ScriptOp triggers completeOp on TRUE result, failOp on FALSE result 00065 scriptOp.ConnectTo(completeOp, None, 0) #True link 00066 scriptOp.ConnectTo(failOp, None, 1) #False link 00067 00068 #DisableOp1 disables testEvt and triggers failOp 00069 disableOp1.ConnectTo(testEvt, None, 0) #Disable link 00070 disableOp1.ConnectTo(failOp, None, 1) #Trigger link 00071 00072 disableOp2.ConnectTo(disableOp1, None, 0) 00073 00074 runtree(rootOp, globals())
Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.