DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousRepeatFishing.c
См. документацию.
2{
3 protected const int NO_SIGNAL = -1;
4
5 bool m_SignalTriggered = false;
9
10 void CAContinuousRepeatFishing( float time_to_complete_action )
11 {
12 m_DefaultTimeToComplete = time_to_complete_action;
13 }
14
15 override int Execute( ActionData action_data )
16 {
17 if (!action_data.m_Player)
18 {
19 return UA_ERROR;
20 }
21
23 {
24 m_TimeElpased += action_data.m_Player.GetDeltaT();
25 m_TotalTimeElpased += action_data.m_Player.GetDeltaT();
26
27 //handle signal triggers
29 {
31 {
33 {
34 m_SignalTriggered = true;
35 OnSignalStart(action_data);
36 }
38 {
39 m_SignalTriggered = false;
40 OnSignalEnd(action_data);
41 }
42 }
43 }
44 }
45 else
46 {
48 OnCompletePogress(action_data);
49
50 m_SignalTriggered = false;
51 }
52
53 FishingActionData fad = FishingActionData.Cast(action_data);
54 if (fad.m_FishingResult != -1)
55 {
56 return UA_FINISHED;
57 }
58 else
59 {
60 return UA_PROCESSING;
61 }
62 }
63
64 void SetNewSignalData(float startTime, float durationTime)
65 {
66 if (startTime == NO_SIGNAL && durationTime == NO_SIGNAL)
67 {
68 m_SignalStartTime = startTime;
69 m_SignalDuration = durationTime;
70 }
71 else
72 {
73 //float maximalUsableDuration = Math.Clamp(m_TimeToComplete - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION - UAFishingConstants.SIGNAL_DEADZONE_START_DURATION,UAFishingConstants.SIGNAL_DURATION_MIN_BASE,UAFishingConstants.SIGNAL_DURATION_MAX_BASE);
75 if (maximalUsableDuration < UAFishingConstants.SIGNAL_DURATION_MIN_BASE)
76 {
77 if (maximalUsableDuration <= 0)
78 {
80 #ifdef DEVELOPER
81 if (IsCLIParam("catchingErrors"))
82 ErrorEx("Cycle m_TimeToComplete: " + m_TimeToComplete + " shorter than combined deadzone times: " + deadzonesTime + "! No time left for any signal, skipping!");
83 else
84 #endif
85 Debug.Log("Cycle m_TimeToComplete: " + m_TimeToComplete + " shorter than combined deadzone times: " + deadzonesTime + "! No time left for any signal, skipping!","FishingCA");
86 }
87 else
88 {
89 #ifdef DEVELOPER
90 if (IsCLIParam("catchingErrors"))
91 ErrorEx("maximalUsableDuration " + maximalUsableDuration + " is shorter than UAFishingConstants.SIGNAL_DURATION_MIN_BASE, skipping signal!");
92 else
93 #endif
94 Debug.Log("maximalUsableDuration " + maximalUsableDuration + " is shorter than UAFishingConstants.SIGNAL_DURATION_MIN_BASE, skipping signal!","FishingCA");
95 }
96
99 return;
100 }
101
102 m_SignalDuration = Math.Clamp(durationTime,UAFishingConstants.SIGNAL_DURATION_MIN_BASE,Math.Min(maximalUsableDuration,UAFishingConstants.SIGNAL_DURATION_MAX_BASE)); //scaled down if needed, guaranteed at least SIGNAL_DURATION_MIN_BASE
105
106 if (durationTime != m_SignalDuration)
107 {
108 #ifdef DEVELOPER
109 Debug.Log("Signal durationTime adjusted from " + durationTime + " to " + m_SignalDuration + ". maximalUsableDuration: " + maximalUsableDuration + ", m_TimeToComplete: " + m_TimeToComplete,"FishingCA");
110 #endif
111 }
112 if (startTime != m_SignalStartTime)
113 {
114 #ifdef DEVELOPER
115 Debug.Log("Signal startTime adjusted from " + startTime + " to " + m_SignalStartTime + ". m_SignalDuration: " + m_SignalDuration + ", m_TimeToComplete: " + m_TimeToComplete,"FishingCA");
116 #endif
117 }
118 }
119 }
120
121 protected void OnSignalStart(ActionData action_data)
122 {
123 FishingActionData data;
124 if (Class.CastTo(data,action_data))
125 {
126 ActionFishingNew action;
127 if (Class.CastTo(action,data.m_Action))
128 action.OnSignalStart(data);
129 }
130 }
131
132 protected void OnSignalEnd(ActionData action_data)
133 {
134 FishingActionData data;
135 if (Class.CastTo(data,action_data))
136 {
137 ActionFishingNew action;
138 if (Class.CastTo(action,data.m_Action))
139 action.OnSignalEnd(data);
140 }
141 }
142};
ActionBase ActionData
Определения ActionBase.c:30
void OnSignalEnd(FishingActionData action_data)
Определения ActionFishingNew.c:437
void OnSignalStart(FishingActionData action_data)
Определения ActionFishingNew.c:429
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
float m_TimeElpased
Определения CAContinuousRepeat.c:3
float m_DefaultTimeToComplete
Определения CAContinuousRepeat.c:6
float m_TotalTimeElpased
Определения CAContinuousRepeat.c:4
float m_TimeToComplete
Определения CAContinuousRepeat.c:5
void CAContinuousRepeat(float time_to_complete_action)
Определения CAContinuousRepeat.c:9
void SetNewSignalData(float startTime, float durationTime)
Определения CAContinuousRepeatFishing.c:64
override int Execute(ActionData action_data)
Определения CAContinuousRepeatFishing.c:15
void OnSignalStart(ActionData action_data)
Определения CAContinuousRepeatFishing.c:121
void CAContinuousRepeatFishing(float time_to_complete_action)
Определения CAContinuousRepeatFishing.c:10
void OnSignalEnd(ActionData action_data)
Определения CAContinuousRepeatFishing.c:132
Super root of all classes in Enforce script.
Определения EnScript.c:11
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Определения Debug.c:122
Определения Debug.c:2
Определения EnMath.c:7
const float SIGNAL_DURATION_MIN_BASE
Определения ActionConstants.c:183
const float SIGNAL_DEADZONE_START_DURATION
Определения ActionConstants.c:187
const float SIGNAL_DURATION_MAX_BASE
Определения ActionConstants.c:184
const float SIGNAL_DEADZONE_END_DURATION
Определения ActionConstants.c:188
enum ShapeType ErrorEx
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
proto native bool IsCLIParam(string param)
Returns if command line argument is present.
const int UA_FINISHED
Определения constants.c:464
const int UA_ERROR
Определения constants.c:483
const int UA_PROCESSING
Определения constants.c:462