DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Bot_TestSpamUserActions.c
См. документацию.
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"));
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);
93 ctx2.Send();
94 break;
95
96 case 10:
97 botDebugPrint("[bot] + " + m_Owner + " STS = " + m_Owner.GetSimulationTimeStamp() + " Stage=" + m_RunStage + " item=" + m_Entity);
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{
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
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
Определения Inventory.c:3
EntityAI m_Entity
Определения ActionDebug.c:11
void botDebugPrint(string s)
Определения Bot.c:122
bool m_Run
Определения Bot_TestSpamUserActions.c:29
override void OnTimeout()
Определения Bot_TestSpamUserActions.c:132
int m_RunStage
Определения Bot_TestSpamUserActions.c:30
FSMTransition< BotStateBase, BotEventBase, BotActionBase, BotGuardBase > BotTransition
Определения BotFSM.c:7
ref InventoryLocation m_Src
Определения Hand_Events.c:43
override void OnExit(HandEventBase e)
Определения Hand_States.c:28
HandStateEquipped OnEntry
Определения WeaponChambering.c:291
enum ProcessDirectDamageFlags m_Owner
represents event that triggers transition from state to state
Определения BotEvents.c:5
Bot Finite State Machine (Hierarchical)
Определения Bot.c:19
PlayerBase m_Owner
Определения BotStates.c:12
void BotStateBase(Bot bot=NULL, BotStateBase parent=NULL)
nested state machine (or null)
Определения BotStates.c:17
ref BotFSM m_FSM
hierarchical parent state of this state (or null)
Определения BotStates.c:15
Bot m_Bot
man that this state belongs to
Определения BotStates.c:13
override void OnExit(BotEventBase e)
Определения Bot_TestSpamUserActions.c:10
override void OnEntry(BotEventBase e)
Определения Bot_TestSpamUserActions.c:4
ref BotTestSpamUserActions_Start m_Start
Определения Bot_TestSpamUserActions.c:150
void BotTestSpamUserActions(Bot bot=NULL, BotStateBase parent=NULL)
Определения Bot_TestSpamUserActions.c:154
ref BotTestSpamUserActions_GetEntityFromSlot m_GetRef
Определения Bot_TestSpamUserActions.c:151
override void OnEntry(BotEventBase e)
Определения Bot_TestSpamUserActions.c:171
override void OnUpdate(float dt)
Определения Bot_TestSpamUserActions.c:191
override void OnExit(BotEventBase e)
Определения Bot_TestSpamUserActions.c:184
Определения Building.c:6
static bool SetGroundPosByOwner(EntityAI owner, notnull EntityAI item, out InventoryLocation ground)
Определения Inventory.c:1255
script counterpart to engine's class Inventory
Определения Inventory.c:79
static void SerializeHandEvent(ParamsWriteContext ctx, HandEventBase e)
hand
Определения InventoryInputUserData.c:72
static void SerializeMove(ParamsWriteContext ctx, int type, notnull InventoryLocation src, notnull InventoryLocation dst)
move
Определения InventoryInputUserData.c:5
proto native void SetAttachment(notnull EntityAI parent, EntityAI e, int slotId)
sets current inventory location type to Attachment with slot id set to <slotId>
InventoryLocation.
Определения InventoryLocation.c:29
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
provides access to slot configuration
Определения InventorySlots.c:6
proto native void Send()
Определения gameplay.c:121
proto native CGame GetGame()
proto native void OnUpdate()
Определения tools.c:349