Dayz Explorer 1.28.160049
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
26class BotTestSpamUserActions_GetEntityFromSlot : BotTimedWait
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"));
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;
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
InventoryCommandType
Definition inventory.c:3
EntityAI m_Entity
Definition actiondebug.c:11
void botDebugPrint(string s)
Definition bot.c:122
override void OnTimeout()
FSMTransition< BotStateBase, BotEventBase, BotActionBase, BotGuardBase > BotTransition
Definition botfsm.c:7
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
override bool PredictiveDropEntity(notnull EntityAI item)
Definition man.c:118
void OnUpdate(float dt)
Definition transport.c:212
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:1255
InventoryLocation.
provides access to slot configuration
proto native CGame GetGame()
ref InventoryLocation m_Src
Definition hand_events.c:43
HandStateEquipped OnEntry
enum ProcessDirectDamageFlags m_Owner
class WeaponChambering_Chamber_OnEntry extends WeaponChambering_Base OnExit