DayZ 1.24
Loading...
Searching...
No Matches
Bot_TestSpamUserActions.c
Go to the documentation of this file.
1
2class 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
27{
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
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);
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);
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"));
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"));
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{
152 //ref BotTimedWait m_Wait;
153
155 {
156 // setup nested state machine
157 m_FSM = new BotFSM(this); // @NOTE: set owner of the submachine fsm
158
161
162 // events
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
InventoryCommandType
Definition Inventory.c:3
EntityAI m_Entity
Definition ActionDebug.c:11
void botDebugPrint(string s)
Definition Bot.c:182
override void OnTimeout()
FSMTransition< BotStateBase, BotEventBase, BotActionBase, BotGuardBase > BotTransition
Definition BotFSM.c:7
ref InventoryLocation m_Src
Definition Hand_Events.c:43
override void OnExit(HandEventBase e)
Definition Hand_States.c:28
HandStateEquipped OnEntry
enum ProcessDirectDamageFlags m_Owner
represents event that triggers transition from state to state
Definition BotEvents.c:5
Bot Finite State Machine (Hierarchical)
Definition Bot.c:19
represent weapon state base
Definition Bot_Hunt.c:16
PlayerBase m_Owner
Definition BotStates.c:12
ref BotFSM m_FSM
hierarchical parent state of this state (or null)
Definition BotStates.c:15
Bot m_Bot
man that this state belongs to
Definition BotStates.c:13
override void OnExit(BotEventBase e)
override void OnEntry(BotEventBase e)
ref BotTestSpamUserActions_Start m_Start
void BotTestSpamUserActions(Bot bot=NULL, BotStateBase parent=NULL)
ref BotTestSpamUserActions_GetEntityFromSlot m_GetRef
override void OnEntry(BotEventBase e)
override void OnUpdate(float dt)
override void OnExit(BotEventBase e)
script counterpart to engine's class Inventory
Definition Inventory.c:79
static bool SetGroundPosByOwner(EntityAI owner, notnull EntityAI item, out InventoryLocation ground)
Definition Inventory.c:1212
static void SerializeHandEvent(ParamsWriteContext ctx, HandEventBase e)
hand
static void SerializeMove(ParamsWriteContext ctx, int type, notnull InventoryLocation src, notnull InventoryLocation dst)
move
InventoryLocation.
provides access to slot configuration
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
proto native CGame GetGame()
proto native void OnUpdate()
Definition tools.c:333