Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
bot_testspamuseractions.c
Go to the documentation of this file.
1 
2 class BotTestSpamUserActions_Start : BotTimedWait
3 {
4  override void OnEntry (BotEventBase e)
5  {
6  super.OnEntry(e);
7 
8  }
9 
10  override void OnExit (BotEventBase e)
11  {
12  botDebugPrint("[bot] + " + m_Owner + "BotTestSpamUserActions_Start::OnExit");
13 
14  /*if (GetGame().IsServer() && GetGame().IsMultiplayer())
15  {
16  botDebugPrint("[bot] + " + m_Owner + "BotTestSpamUserActions_Start spamming!");
17  for (int i = 0; i < 10000; ++i)
18  Print("Lovely SPAAAAAM!");
19  }*/
20 
21  super.OnExit(e);
22  }
23 
24 }
25 
26 class BotTestSpamUserActions_GetEntityFromSlot : BotTimedWait
27 {
28  EntityAI m_Entity = null;
29  bool m_Run = false;
30  int m_RunStage = 0;
32 
33  override void OnEntry (BotEventBase e)
34  {
35  m_Entity = m_Owner.GetInventory().FindAttachment(InventorySlots.GetSlotIdFromString("Legs"));
36  botDebugPrint("[bot] + " + m_Owner + "BotTestSpamUserActions_GetEntityFromSlot item=" + m_Entity);
37 
38  GameInventory.SetGroundPosByOwner(m_Owner, m_Entity, m_Src);
39  /*if (!m_Entity.GetInventory().GetCurrentInventoryLocation(m_Src))
40  {
41  Error("NI!");
42  }*/
43 
44  if (!GetGame().IsDedicatedServer())
45  {
46  m_Entity = m_Owner.GetInventory().FindAttachment(InventorySlots.GetSlotIdFromString("Legs"));
47  m_Owner.PredictiveDropEntity(m_Entity);
48  }
49 
50  super.OnEntry(e);
51  }
52 
53  override void OnExit (BotEventBase e)
54  {
55  m_Entity = null;
56 
57  super.OnExit(e);
58  }
59 
60  override void OnUpdate (float dt)
61  {
62  super.OnUpdate(dt);
63 
64  if (!GetGame().IsDedicatedServer())
65  {
66  if (m_Run && m_Entity)
67  {
68 
69  switch (m_RunStage)
70  {
71  case 0:
72  botDebugPrint("[bot] + " + m_Owner + " STS = " + m_Owner.GetSimulationTimeStamp() + " Stage=" + m_RunStage + " item=" + m_Entity);
74  HandEventTake e = new HandEventTake(m_Owner, m_Src);
75  InventoryInputUserData.SerializeHandEvent(ctx, e);
76  ctx.Send();
77  break;
78 
79  case 1:
80  botDebugPrint("[bot] + " + m_Owner + " STS = " + m_Owner.GetSimulationTimeStamp() + " Stage=" + m_RunStage + " item=" + m_Entity);
82  HandEventTake e1 = new HandEventTake(m_Owner, m_Src);
83  InventoryInputUserData.SerializeHandEvent(ctx1, e1);
84  ctx1.Send();
85  break;
86 
87  case 5:
88  botDebugPrint("[bot] + " + m_Owner + " STS = " + m_Owner.GetSimulationTimeStamp() + " Stage=" + m_RunStage + " item=" + m_Entity);
91  dst.SetAttachment(m_Owner, m_Entity, InventorySlots.GetSlotIdFromString("Legs"));
92  InventoryInputUserData.SerializeMove(ctx2, InventoryCommandType.SYNC_MOVE, m_Src, dst);
93  ctx2.Send();
94  break;
95 
96  case 10:
97  botDebugPrint("[bot] + " + m_Owner + " STS = " + m_Owner.GetSimulationTimeStamp() + " Stage=" + m_RunStage + " item=" + m_Entity);
100  dst2.SetAttachment(m_Owner, m_Entity, InventorySlots.GetSlotIdFromString("Legs"));
101  InventoryInputUserData.SerializeMove(ctx3, InventoryCommandType.SYNC_MOVE, m_Src, dst2);
102  ctx3.Send();
103  break;
104 
105  /*
106  case 0:
107  botDebugPrint("[bot] + " + m_Owner + "Stage0 item=" + m_Entity);
108  m_Owner.PredictiveTakeEntityToHands(m_Entity);
109  break;
110 
111  case 1:
112  botDebugPrint("[bot] + " + m_Owner + "Stage1 item=" + m_Entity);
113  m_Owner.PredictiveTakeEntityToHands(m_Entity);
114  break;
115 
116  case 2:
117  botDebugPrint("[bot] + " + m_Owner + "Stage2 item=" + m_Entity);
118  m_Owner.PredictiveTakeEntityAsAttachmentEx(m_Entity, InventorySlots.GetSlotIdFromString("Legs"));
119  break;
120 
121  case 3:
122  botDebugPrint("[bot] + " + m_Owner + "Stage3 item=" + m_Entity);
123  m_Owner.PredictiveTakeEntityAsAttachmentEx(m_Entity, InventorySlots.GetSlotIdFromString("Legs"));
124  break;*/
125  }
126 
127  ++m_RunStage;
128  }
129  }
130  }
131 
132  override void OnTimeout ()
133  {
134  super.OnTimeout();
135 
136  botDebugPrint("[bot] + " + m_Owner + "BotTestSpamUserActions_GetEntityFromSlot item=" + m_Entity);
137 
138  if (m_Entity && m_Run == false)
139  {
140  m_Run = true;
141  m_RunStage = 0;
142  }
143  }
144 }
145 
146 
148 {
149  EntityAI m_Entity;
150  ref BotTestSpamUserActions_Start m_Start;
151  ref BotTestSpamUserActions_GetEntityFromSlot m_GetRef;
152  //ref BotTimedWait m_Wait;
153 
154  void BotTestSpamUserActions (Bot bot = NULL, BotStateBase parent = NULL)
155  {
156  // setup nested state machine
157  m_FSM = new BotFSM(this); // @NOTE: set owner of the submachine fsm
158 
159  m_Start = new BotTestSpamUserActions_Start(m_Bot, this, 1.0);
160  m_GetRef = new BotTestSpamUserActions_GetEntityFromSlot(m_Bot, this, 2.0);
161 
162  // events
163  BotEventBase __EntWait__ = new BotEventWaitTimeout;
164 
165  // transitions
166  m_FSM.AddTransition(new BotTransition( m_Start, __EntWait__, m_GetRef));
167 
168  m_FSM.SetInitialState(m_Start);
169  }
170 
171  override void OnEntry (BotEventBase e)
172  {
173  m_Entity = null;
174 
175  if (GetGame().IsServer())
176  {
177  m_Owner.GetInventory().CreateAttachment("PolicePantsOrel"); // no assign to m_Entity
178  botDebugPrint("[bot] + " + m_Owner + " created attachment item=" + m_Entity);
179  }
180 
181  super.OnEntry(e);
182  }
183 
184  override void OnExit (BotEventBase e)
185  {
186  m_Entity = null;
187 
188  super.OnExit(e);
189  }
190 
191  override void OnUpdate (float dt)
192  {
193  super.OnUpdate(dt);
194  }
195 }
196 
GetGame
proto native CGame GetGame()
InventorySlots
provides access to slot configuration
Definition: inventoryslots.c:5
BotTestSpamUserActions
Definition: bot_testspamuseractions.c:147
OnUpdate
override void OnUpdate(float dt)
Definition: bot_testspamuseractions.c:60
BotTestSpamUserActions_Start
Definition: bot_testspamuseractions.c:2
ScriptInputUserData
Definition: gameplay.c:120
Bot
Definition: bot.c:18
InventoryLocation
InventoryLocation.
Definition: inventorylocation.c:27
BotStateBase
represent weapon state base
Definition: bot_hunt.c:15
m_Src
ref InventoryLocation m_Src
Definition: bot_testspamuseractions.c:31
m_Run
bool m_Run
Definition: bot_testspamuseractions.c:29
InventoryCommandType
InventoryCommandType
Definition: inventory.c:2
botDebugPrint
void botDebugPrint(string s)
Definition: bot.c:182
BotEventBase
represents event that triggers transition from state to state
Definition: botevents.c:4
OnExit
override void OnExit(BotEventBase e)
Definition: bot_testspamuseractions.c:53
BotEventWaitTimeout
Definition: bot_timedwait.c:2
BotTransition
FSMTransition< BotStateBase, BotEventBase, BotActionBase, BotGuardBase > BotTransition
Definition: botfsm.c:7
OnEntry
override void OnEntry(BotEventBase e)
Definition: bot_testspamuseractions.c:33
m_Entity
BotTestSpamUserActions_Start m_Entity
InventoryInputUserData
Definition: inventoryinputuserdata.c:2
m_Owner
enum ProcessDirectDamageFlags m_Owner
m_RunStage
int m_RunStage
Definition: bot_testspamuseractions.c:30
OnTimeout
override void OnTimeout()
Definition: bot_testspamuseractions.c:132
BotFSM
Bot Finite State Machine (Hierarchical)
EntityAI
Definition: building.c:5
m_Entity
EntityAI m_Entity
Definition: actiondebug.c:11
GameInventory
script counterpart to engine's class Inventory
Definition: inventory.c:78