Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
CreatureMethods.cpp
Go to the documentation of this file.
1/*
2* Copyright (C) 2010 - 2013 Eluna Lua Engine <http://emudevs.com/>
3* This program is free software licensed under GPL version 3
4* Please see the included DOCS/LICENSE.TXT for more information
5*/
6
7#include "CreatureMethods.h"
8#include "Includes.h"
9
10namespace LuaCreature
11{
12 int IsDamageEnoughForLootingAndReward(lua_State* L, Creature* creature)
13 {
14 sEluna->Push(L, creature->IsDamageEnoughForLootingAndReward());
15 return 1;
16 }
17
18 int IsReputationGainDisabled(lua_State* L, Creature* creature)
19 {
20 sEluna->Push(L, creature->IsReputationGainDisabled());
21 return 1;
22 }
23
24 int SetDisableReputationGain(lua_State* L, Creature* creature)
25 {
26 bool disable = luaL_optbool(L, 1, true);
27
28 creature->SetDisableReputationGain(disable);
29 return 0;
30 }
31
32 int GetCurrentWaypointId(lua_State* L, Creature* creature)
33 {
34 sEluna->Push(L, creature->GetCurrentWaypointID());
35 return 1;
36 }
37
38 int GetWaypointPath(lua_State* L, Creature* creature)
39 {
40 sEluna->Push(L, creature->GetWaypointPath());
41 return 1;
42 }
43
44 int GetTransportHomePosition(lua_State* L, Creature* creature)
45 {
46 float x,y,z,o;
47 creature->GetTransportHomePosition(x,y,z,o);
48
49 sEluna->Push(L, x);
50 sEluna->Push(L, y);
51 sEluna->Push(L, z);
52 sEluna->Push(L, o);
53 return 4;
54 }
55
56 int IsRegeneratingHealth(lua_State* L, Creature* creature)
57 {
58 sEluna->Push(L, creature->isRegeneratingHealth());
59 return 1;
60 }
61
62 int HasInvolvedQuest(lua_State* L, Creature* creature)
63 {
64 uint32 quest_id = luaL_checkunsigned(L, 1);
65
66 sEluna->Push(L, creature->hasInvolvedQuest(quest_id));
67 return 1;
68 }
69
70 int SetInCombatWithZone(lua_State* L, Creature* creature)
71 {
72 creature->SetInCombatWithZone();
73 return 0;
74 }
75
76 int SetRespawnRadius(lua_State* L, Creature* creature)
77 {
78 float dist = luaL_checknumber(L, 1);
79
80 creature->SetRespawnRadius(dist);
81 return 0;
82 }
83
84 int GetRespawnRadius(lua_State* L, Creature* creature)
85 {
86 sEluna->Push(L, creature->GetRespawnRadius());
87 return 1;
88 }
89
90 int Respawn(lua_State* L, Creature* creature)
91 {
92 creature->Respawn();
93 return 0;
94 }
95
96 int SetRespawnDelay(lua_State* L, Creature* creature)
97 {
98 uint32 delay = luaL_checkunsigned(L, 1);
99
100 creature->SetRespawnDelay(delay);
101 return 0;
102 }
103
104 int GetRespawnDelay(lua_State* L, Creature* creature)
105 {
106 sEluna->Push(L, creature->GetRespawnDelay());
107 return 1;
108 }
109
110 int DespawnOrUnsummon(lua_State* L, Creature* creature)
111 {
112 uint32 msTimeToDespawn = luaL_optunsigned(L, 1, 0);
113
114 creature->DespawnOrUnsummon(msTimeToDespawn);
115 return 0;
116 }
117
118 int RemoveCorpse(lua_State* L, Creature* creature)
119 {
120 creature->RemoveCorpse();
121 return 0;
122 }
123
124 int SetDefaultMovementType(lua_State* L, Creature* creature)
125 {
126 int32 type = luaL_checkinteger(L, 1);
127
129 return 0;
130 }
131
132 int GetDefaultMovementType(lua_State* L, Creature* creature)
133 {
134 sEluna->Push(L, creature->GetDefaultMovementType());
135 return 1;
136 }
137
138 int IsTargetAcceptable(lua_State* L, Creature* creature)
139 {
140 Unit* target = sEluna->CHECK_UNIT(L, 1);
141
142 if (!target)
143 sEluna->Push(L, false);
144 else
145 sEluna->Push(L, creature->isTargetableForAttack(target));
146 return 1;
147 }
148
149 int CanAssistTo(lua_State* L, Creature* creature)
150 {
151 Unit* u = sEluna->CHECK_UNIT(L, 1);
152 Unit* enemy = sEluna->CHECK_UNIT(L, 2);
153 bool checkfaction = luaL_optbool(L, 3, true);
154
155 if (!u)
156 sEluna->Push(L, false);
157 if (!enemy)
158 sEluna->Push(L, false);
159 else
160 sEluna->Push(L, creature->CanAssistTo(u, enemy, checkfaction));
161 return 1;
162 }
163
164 int HasSearchedAssistance(lua_State* L, Creature* creature)
165 {
166 sEluna->Push(L, creature->HasSearchedAssistance());
167 return 1;
168 }
169
170 int SetNoSearchAssistance(lua_State* L, Creature* creature)
171 {
172 bool val = luaL_optbool(L, 1, true);
173
174 creature->SetNoSearchAssistance(val);
175 return 0;
176 }
177
178 int SetNoCallAssistance(lua_State* L, Creature* creature)
179 {
180 bool val = luaL_optbool(L, 1, true);
181
182 creature->SetNoCallAssistance(val);
183 return 0;
184 }
185
186 int CallAssistance(lua_State* L, Creature* creature)
187 {
188 creature->CallAssistance();
189 return 0;
190 }
191
192 int CallForHelp(lua_State* L, Creature* creature)
193 {
194 float radius = luaL_checknumber(L, 1);
195
196 creature->CallForHelp(radius);
197 return 0;
198 }
199
200 int FleeToGetAssistance(lua_State* L, Creature* creature)
201 {
202 creature->DoFleeToGetAssistance();
203 return 0;
204 }
205
206 int GetAggroRange(lua_State* L, Creature* creature)
207 {
208 Unit* target = sEluna->CHECK_UNIT(L, 1);
209
210 if (!target)
211 return 0;
212 sEluna->Push(L, creature->GetAttackDistance(target));
213 return 1;
214 }
215
216 int GetAttackDistance(lua_State* L, Creature* creature)
217 {
218 Unit* target = sEluna->CHECK_UNIT(L, 1);
219
220 if (!target)
221 return 0;
222
223 sEluna->Push(L, creature->GetAttackDistance(target));
224 return 1;
225 }
226
227 int CanStartAttack(lua_State* L, Creature* creature) // TODO: Implement core side
228 {
229 Unit* target = sEluna->CHECK_UNIT(L, 1);
230 bool force = luaL_optbool(L, 2, true);
231
232 if (!target)
233 return 0;
234
235 sEluna->Push(L, creature->CanStartAttack(target, force));
236
237 return 1;
238 }
239
240 int ResetLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
241 {
242 creature->ResetLootMode();
243 return 0;
244 }
245
246 int RemoveLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
247 {
248 uint16 lootMode = luaL_checkunsigned(L, 1);
249
250 creature->RemoveLootMode(lootMode);
251 return 0;
252 }
253
254 int AddLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
255 {
256 uint16 lootMode = luaL_checkunsigned(L, 1);
257
258 creature->AddLootMode(lootMode);
259 return 0;
260 }
261
262 int SetLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
263 {
264 uint16 lootMode = luaL_checkunsigned(L, 1);
265
266 creature->SetLootMode(lootMode);
267 return 0;
268 }
269
270 int HasLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
271 {
272 uint16 lootMode = luaL_checkunsigned(L, 1);
273
274 sEluna->Push(L, creature->HasLootMode(lootMode));
275 return 1;
276 }
277
278 int GetLootMode(lua_State* L, Creature* creature) // TODO: Implement LootMode features
279 {
280 sEluna->Push(L, creature->GetLootMode());
281 return 1;
282 }
283
284 int IsTappedBy(lua_State* L, Creature* creature)
285 {
286 Player* player = sEluna->CHECK_PLAYER(L, 1);
287
288 if (player)
289 sEluna->Push(L, creature->isTappedBy(player));
290 else
291 sEluna->Push(L, false);
292 return 1;
293 }
294
295 int HasLootRecipient(lua_State* L, Creature* creature)
296 {
297 sEluna->Push(L, creature->hasLootRecipient());
298 return 1;
299 }
300
301 int GetLootRecipientGroup(lua_State* L, Creature* creature)
302 {
303 sEluna->Push(L, creature->GetLootRecipientGroup());
304 return 1;
305 }
306
307 int GetLootRecipient(lua_State* L, Creature* creature)
308 {
309 sEluna->Push(L, creature->GetLootRecipient());
310 return 1;
311 }
312
313 int SetDeathState(lua_State* L, Creature* creature)
314 {
315 int32 state = luaL_checkinteger(L, 1);
316
317 creature->setDeathState((DeathState)state);
318 return 0;
319 }
320
321 int SetWalk(lua_State* L, Creature* creature) // TODO: Move same to Player ?
322 {
323 bool enable = luaL_optbool(L, 1, true);
324
325 creature->SetWalk(enable);
326 return 0;
327 }
328
329 int SetReactState(lua_State* L, Creature* creature)
330 {
331 int32 state = luaL_checkinteger(L, 1);
332
333 creature->SetReactState((ReactStates)state);
334 return 0;
335 }
336
337 int GetReactState(lua_State* L, Creature* creature)
338 {
339 sEluna->Push(L, creature->GetReactState());
340 return 1;
341 }
342
343 int HasReactState(lua_State* L, Creature* creature)
344 {
345 int32 state = luaL_checkinteger(L, 1);
346
347 sEluna->Push(L, creature->HasReactState((ReactStates)state));
348 return 1;
349 }
350
351 int CanSwim(lua_State* L, Creature* creature)
352 {
353 sEluna->Push(L, creature->CanSwim());
354 return 1;
355 }
356
357 int CanWalk(lua_State* L, Creature* creature)
358 {
359 sEluna->Push(L, creature->CanWalk());
360 return 1;
361 }
362
363 int SetDisableGravity(lua_State* L, Creature* creature)
364 {
365 bool disable = luaL_optbool(L, 1, true);
366 bool packetOnly = luaL_optbool(L, 2, false);
367
368 sEluna->Push(L, creature->SetDisableGravity(disable, packetOnly));
369 return 1;
370 }
371
372 int SetHover(lua_State* L, Creature* creature)
373 {
374 bool enable = luaL_optbool(L, 1, true);
375
376 sEluna->Push(L, creature->SetHover(enable));
377 return 1;
378 }
379
380 int IsInEvadeMode(lua_State* L, Creature* creature)
381 {
382 sEluna->Push(L, creature->IsInEvadeMode());
383 return 1;
384 }
385
386 int IsElite(lua_State* L, Creature* creature)
387 {
388 sEluna->Push(L, creature->isElite());
389 return 1;
390 }
391
392 int IsGuard(lua_State* L, Creature* creature)
393 {
394 sEluna->Push(L, creature->IsGuard());
395 return 1;
396 }
397
398 int IsTrigger(lua_State* L, Creature* creature)
399 {
400 sEluna->Push(L, creature->IsTrigger());
401 return 1;
402 }
403
404 int IsCivilian(lua_State* L, Creature* creature)
405 {
406 sEluna->Push(L, creature->IsCivilian());
407 return 1;
408 }
409
410 int IsRacialLeader(lua_State* L, Creature* creature)
411 {
412 sEluna->Push(L, creature->IsRacialLeader());
413 return 1;
414 }
415
416 int HasCategoryCooldown(lua_State* L, Creature* creature)
417 {
418 uint32 spell = luaL_checkunsigned(L, 1);
419
420 sEluna->Push(L, creature->HasCategoryCooldown(spell));
421 return 1;
422 }
423
424 int GetScriptName(lua_State* L, Creature* creature)
425 {
426 sEluna->Push(L, creature->GetScriptName());
427 return 1;
428 }
429
430 int GetAIName(lua_State* L, Creature* creature)
431 {
432 sEluna->Push(L, creature->GetAIName());
433 return 1;
434 }
435
436 int GetScriptId(lua_State* L, Creature* creature)
437 {
438 sEluna->Push(L, creature->GetScriptId());
439 return 1;
440 }
441
442 int GetCreatureSpellCooldownDelay(lua_State* L, Creature* creature)
443 {
444 uint32 spell = luaL_checkunsigned(L, 1);
445
446 sEluna->Push(L, creature->GetCreatureSpellCooldownDelay(spell));
447 return 1;
448 }
449
450 int GetCorpseDelay(lua_State* L, Creature* creature)
451 {
452 sEluna->Push(L, creature->GetCorpseDelay());
453 return 1;
454 }
455
456 int GetHomePosition(lua_State* L, Creature* creature)
457 {
458 float x, y, z, o;
459 creature->GetHomePosition(x, y, z, o);
460
461 sEluna->Push(L, x);
462 sEluna->Push(L, y);
463 sEluna->Push(L, z);
464 sEluna->Push(L, o);
465 return 4;
466 }
467
468 int AttackStart(lua_State* L, Creature* creature)
469 {
470 Unit* target = sEluna->CHECK_UNIT(L, 1);
471 if (!target)
472 return 0;
473
474 creature->AI()->AttackStart(target);
475 return 0;
476 }
477
478 int GetNearestTargetInAttackDistance(lua_State* L, Creature* creature)
479 {
480 float dist = luaL_optnumber(L, 1, 0.0f);
481 sEluna->Push(L, creature->SelectNearestTargetInAttackDistance(dist));
482 return 1;
483 }
484
485 int GetNearestTarget(lua_State* L, Creature* creature)
486 {
487 float dist = luaL_optnumber(L, 1, 0.0f);
488 sEluna->Push(L, creature->SelectNearestTarget(dist));
489 return 1;
490 }
491
493 {
494 bool checkLOS = luaL_optbool(L, 1, false);
495 sEluna->Push(L, creature->SelectNearestHostileUnitInAggroRange(checkLOS));
496 return 1;
497 }
498
499 int Despawn(lua_State* L, Creature* creature)
500 {
501 uint32 time = luaL_optunsigned(L, 1, 0);
502 creature->DespawnOrUnsummon(time);
503 return 0;
504 }
505
506 int SendCreatureTalk(lua_State* L, Creature* creature)
507 {
508 uint8 id = luaL_checknumber(L, 1);
509 WorldObject* obj = sEluna->CHECK_WORLDOBJECT(L, 2);
510 if (!obj)
511 return 0;
512
513 creature->AI()->Talk(id, obj);
514 return 0;
515 }
516
517 int GetAITarget(lua_State* L, Creature* creature)
518 {
519 //SelectAggroTarget targetType = (SelectAggroTarget)luaL_checkunsigned(L, 1);
520 //bool playerOnly = luaL_optbool(L, 2, false);
521 //uint32 position = luaL_optunsigned(L, 3, 0);
522 //float dist = luaL_optnumber(L, 4, 0.0f);
523 //int32 aura = luaL_optint(L, 5, 0);
524
525 //;
526 //std::list<HostileReference*>& threatlist = creature->getThreatManager().getThreatList();
528 //if (position >= threatlist.size())
529 //{
530 // sEluna->Push(L);
531 // return 1;
532 //}
533
534 //std::list<Unit*> targetList;
535 //for (auto itr : threatlist)
536 //{
537 // Unit* target = (*itr).getTarget();
538 // if (!target)
539 // continue;
540 // if (playerOnly && !target->ToPlayer())
541 // continue;
542 // if (aura > 0 && !target->HasAura(aura))
543 // continue;
544 // else if (aura < 0 && target->HasAura(-aura))
545 // continue;
546 // if (dist > 0.0f && !creature->IsWithinDist(target, dist))
547 // continue;
548 // targetList.push_back(target);
549 //}
550
551 //if (position >= targetList.size())
552 //{
553 // sEluna->Push(L);
554 // return 1;
555 //}
556
557 //if (targetType == SELECT_TARGET_NEAREST || targetType == SELECT_TARGET_FARTHEST)
558 // targetList.sort(WoWSource::ObjectDistanceOrderPred(creature));
559
560 //switch (targetType)
561 //{
562 //case SELECT_TARGET_NEAREST:
563 //case SELECT_TARGET_TOPAGGRO:
564 // {
565 // std::list<Unit*>::const_iterator itr = targetList.begin();
566 // std::advance(itr, position);
567 // sEluna->Push(L, *itr);
568 // return 1;
569 // }
570 //case SELECT_TARGET_FARTHEST:
571 //case SELECT_TARGET_BOTTOMAGGRO:
572 // {
573 // std::list<Unit*>::reverse_iterator ritr = targetList.rbegin();
574 // std::advance(ritr, position);
575 // sEluna->Push(L, *ritr);
576 // return 1;
577 // }
578 //case SELECT_TARGET_RANDOM:
579 // {
580 // std::list<Unit*>::const_iterator itr = targetList.begin();
581 // std::advance(itr, urand(position, targetList.size() - 1));
582 // sEluna->Push(L, *itr);
583 // return 1;
584 // }
585 //default:
586 // break;
587 //}
588
589 //sEluna->Push(L);
590 return 1;
591 }
592
593 int GetAITargets(lua_State* L, Creature* creature)
594 {
595 //lua_newtable(L);
596 //int tbl = lua_gettop(L);
597 //uint32 i = 0;
598
599 //std::list<HostileReference*>& threatList = creature->getThreatManager().getThreatList();
602 //for (auto itr : threatList)
603 //{
604 // Unit* target = (*itr).getTarget();
605 // if (!target)
606 // continue;
607 // ++i;
608 // sEluna->Push(L, i);
609 // sEluna->Push(L, target);
610 // lua_settable(L, tbl);
611 //}
612
613 //lua_settop(L, tbl);
614 return 1;
615 }
616
617 int GetAITargetsCount(lua_State* L, Creature* creature)
618 {
619 sEluna->Push(L, creature->getThreatManager().getThreatList().size());
620 return 1;
621 }
622
623 int IsDungeonBoss(lua_State* L, Creature* creature)
624 {
625 sEluna->Push(L, creature->IsDungeonBoss());
626 return 1;
627 }
628
629 int IsWorldBoss(lua_State* L, Creature* creature)
630 {
631 sEluna->Push(L, creature->isWorldBoss());
632 return 1;
633 }
634
635 int GetNPCFlags(lua_State* L, Creature* creature)
636 {
637 sEluna->Push(L, creature->GetUInt32Value(UNIT_FIELD_NPC_FLAGS));
638 return 1;
639 }
640
641 int SetNPCFlags(lua_State* L, Creature* creature)
642 {
643 uint32 flags = luaL_checkunsigned(L, 1);
644
645 creature->SetUInt32Value(UNIT_FIELD_NPC_FLAGS, flags);
646 return 0;
647 }
648
649 int HasSpell(lua_State* L, Creature* creature)
650 {
651 uint32 id = luaL_checkunsigned(L, 1);
652
653 sEluna->Push(L, creature->HasSpell(id));
654 return 1;
655 }
656
657 int HasQuest(lua_State* L, Creature* creature)
658 {
659 uint32 questId = luaL_checkunsigned(L, 1);
660
661 sEluna->Push(L, creature->hasQuest(questId));
662 return 1;
663 }
664
665 int SaveToDB(lua_State* L, Creature* creature)
666 {
667 creature->SaveToDB();
668 return 0;
669 }
670
671 int HasSpellCooldown(lua_State* L, Creature* creature)
672 {
673 uint32 spellId = luaL_checkunsigned(L, 1);
674
675 sEluna->Push(L, creature->HasSpellCooldown(spellId));
676 return 1;
677 }
678
679 int GetShieldBlockValue(lua_State* L, Creature* creature)
680 {
681 //@TODO
682 //sEluna->Push(L, creature->GetShieldBlockValue());
683 return 1;
684 }
685
686 int CanFly(lua_State* L, Creature* creature)
687 {
688 sEluna->Push(L, creature->CanFly());
689 return 1;
690 }
691
692 int SelectVictim(lua_State* L, Creature* creature)
693 {
694 sEluna->Push(L, creature->SelectVictim());
695 return 1;
696 }
697};
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::uint16_t uint16
Definition Define.h:78
#define sEluna
Definition LuaEngine.h:710
MovementGeneratorType
DeathState
Definition Unit.h:502
ReactStates
Definition Unit.h:1155
@ UNIT_FIELD_NPC_FLAGS
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
void SetInCombatWithZone()
void SetNoSearchAssistance(bool val)
Definition Creature.h:584
void RemoveLootMode(uint16 lootMode)
Definition Creature.h:559
bool HasLootMode(uint16 lootMode) const
Definition Creature.h:556
bool IsTrigger() const
Definition Creature.h:454
void Respawn(bool force=false)
void ResetLootMode()
Definition Creature.h:560
bool IsDungeonBoss() const
bool isWorldBoss() const
void SetRespawnRadius(float dist)
Definition Creature.h:606
void CallForHelp(float fRadius)
void SetDisableReputationGain(bool disable)
Definition Creature.h:648
float GetAttackDistance(Unit const *player) const
uint16 GetLootMode() const
Definition Creature.h:555
bool IsCivilian() const
Definition Creature.h:453
bool IsReputationGainDisabled() const
Definition Creature.h:649
uint32 GetCurrentWaypointID() const
Definition Creature.h:639
bool CanWalk() const
Definition Creature.h:456
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:628
uint32 GetWaypointPath() const
Definition Creature.h:636
bool HasReactState(ReactStates state) const
Definition Creature.h:462
float GetRespawnRadius() const
Definition Creature.h:605
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
void SetReactState(ReactStates st)
Definition Creature.h:460
bool CanFly() const OVERRIDE
Definition Creature.h:458
bool hasLootRecipient() const
Definition Creature.h:549
bool isRegeneratingHealth() const
Definition Creature.h:618
void SetRespawnDelay(uint32 delay)
Definition Creature.h:603
bool CanAssistTo(const Unit *u, const Unit *enemy, bool checkfaction=true) const
void DoFleeToGetAssistance()
Definition Creature.cpp:667
void RemoveCorpse(bool setSpawnTime=true)
Definition Creature.cpp:230
uint32 GetScriptId() const
bool hasInvolvedQuest(uint32 quest_id) const OVERRIDE
bool CanSwim() const
Definition Creature.h:457
Player * GetLootRecipient() const
Definition Creature.cpp:879
uint32 GetRespawnDelay() const
Definition Creature.h:602
MovementGeneratorType GetDefaultMovementType() const
Definition Creature.h:589
bool HasSearchedAssistance() const
Definition Creature.h:585
std::string GetAIName() const
bool IsDamageEnoughForLootingAndReward() const
Definition Creature.h:650
bool isTappedBy(Player const *player) const
Definition Creature.cpp:922
uint32 GetCorpseDelay() const
Definition Creature.h:451
bool HasSpell(uint32 spellID) const OVERRIDE
Unit * SelectVictim()
Definition Unit.cpp:4547
Unit * SelectNearestHostileUnitInAggroRange(bool useLOS=false) const
void AddLootMode(uint16 lootMode)
Definition Creature.h:558
bool hasQuest(uint32 quest_id) const OVERRIDE
Group * GetLootRecipientGroup() const
Definition Creature.cpp:886
void GetTransportHomePosition(float &x, float &y, float &z, float &ori)
Definition Creature.h:633
bool HasCategoryCooldown(uint32 spell_id) const
ReactStates GetReactState() const
Definition Creature.h:461
std::string GetScriptName() const
Unit * SelectNearestTarget(float dist=0, bool playerOnly=false) const
void SaveToDB()
Definition Creature.cpp:934
Unit * SelectNearestTargetInAttackDistance(float dist=0) const
bool HasSpellCooldown(uint32 spell_id) const
void SetNoCallAssistance(bool val)
Definition Creature.h:583
bool IsRacialLeader() const
Definition Creature.h:452
void setDeathState(DeathState s) OVERRIDE
void CallAssistance()
bool IsInEvadeMode() const
Definition Creature.h:478
bool IsGuard() const
Definition Creature.h:455
CreatureAI * AI() const
Definition Creature.h:483
void SetLootMode(uint16 lootMode)
Definition Creature.h:557
bool isElite() const
void SetDefaultMovementType(MovementGeneratorType mgt)
Definition Creature.h:590
bool CanStartAttack(Unit const *u, bool force) const
uint32 GetCreatureSpellCooldownDelay(uint32 spellId) const
uint32 GetUInt32Value(uint16 index) const
Definition Object.cpp:325
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:1038
ThreatContainer::StorageType const & getThreatList() const
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:16
Definition Unit.h:1367
bool isTargetableForAttack(bool checkFakeDeath=true) const
Definition Unit.cpp:3795
bool SetHover(bool enable, bool packetOnly=false)
Definition Unit.cpp:9287
bool SetWalk(bool enable)
Definition Unit.cpp:9137
ThreatManager & getThreatManager()
Definition Unit.h:2455
bool SetDisableGravity(bool disable, bool packetOnly=false)
Definition Unit.cpp:9156
int IsInEvadeMode(lua_State *L, Creature *creature)
int CanFly(lua_State *L, Creature *creature)
int CanStartAttack(lua_State *L, Creature *creature)
int SetDisableGravity(lua_State *L, Creature *creature)
int HasSpell(lua_State *L, Creature *creature)
int IsTrigger(lua_State *L, Creature *creature)
int CallForHelp(lua_State *L, Creature *creature)
int SetDisableReputationGain(lua_State *L, Creature *creature)
int GetWaypointPath(lua_State *L, Creature *creature)
int SetNoCallAssistance(lua_State *L, Creature *creature)
int GetReactState(lua_State *L, Creature *creature)
int GetAITargets(lua_State *L, Creature *creature)
int GetCreatureSpellCooldownDelay(lua_State *L, Creature *creature)
int CallAssistance(lua_State *L, Creature *creature)
int SetRespawnDelay(lua_State *L, Creature *creature)
int SetWalk(lua_State *L, Creature *creature)
int SetNPCFlags(lua_State *L, Creature *creature)
int SetLootMode(lua_State *L, Creature *creature)
int SetRespawnRadius(lua_State *L, Creature *creature)
int GetHomePosition(lua_State *L, Creature *creature)
int HasReactState(lua_State *L, Creature *creature)
int GetScriptId(lua_State *L, Creature *creature)
int IsWorldBoss(lua_State *L, Creature *creature)
int GetLootMode(lua_State *L, Creature *creature)
int GetAITarget(lua_State *L, Creature *creature)
int IsCivilian(lua_State *L, Creature *creature)
int IsRegeneratingHealth(lua_State *L, Creature *creature)
int IsRacialLeader(lua_State *L, Creature *creature)
int SetReactState(lua_State *L, Creature *creature)
int IsReputationGainDisabled(lua_State *L, Creature *creature)
int IsGuard(lua_State *L, Creature *creature)
int GetNearestHostileTargetInAggroRange(lua_State *L, Creature *creature)
int SetDefaultMovementType(lua_State *L, Creature *creature)
int AttackStart(lua_State *L, Creature *creature)
int FleeToGetAssistance(lua_State *L, Creature *creature)
int SetNoSearchAssistance(lua_State *L, Creature *creature)
int CanWalk(lua_State *L, Creature *creature)
int SelectVictim(lua_State *L, Creature *creature)
int HasLootRecipient(lua_State *L, Creature *creature)
int Despawn(lua_State *L, Creature *creature)
int GetTransportHomePosition(lua_State *L, Creature *creature)
int SetHover(lua_State *L, Creature *creature)
int RemoveLootMode(lua_State *L, Creature *creature)
int SetDeathState(lua_State *L, Creature *creature)
int IsDamageEnoughForLootingAndReward(lua_State *L, Creature *creature)
int SetInCombatWithZone(lua_State *L, Creature *creature)
int DespawnOrUnsummon(lua_State *L, Creature *creature)
int GetAIName(lua_State *L, Creature *creature)
int IsTappedBy(lua_State *L, Creature *creature)
int GetAggroRange(lua_State *L, Creature *creature)
int IsTargetAcceptable(lua_State *L, Creature *creature)
int GetLootRecipient(lua_State *L, Creature *creature)
int HasSearchedAssistance(lua_State *L, Creature *creature)
int IsDungeonBoss(lua_State *L, Creature *creature)
int SaveToDB(lua_State *L, Creature *creature)
int HasQuest(lua_State *L, Creature *creature)
int AddLootMode(lua_State *L, Creature *creature)
int GetRespawnDelay(lua_State *L, Creature *creature)
int GetCorpseDelay(lua_State *L, Creature *creature)
int GetShieldBlockValue(lua_State *L, Creature *creature)
int GetAITargetsCount(lua_State *L, Creature *creature)
int CanSwim(lua_State *L, Creature *creature)
int HasSpellCooldown(lua_State *L, Creature *creature)
int GetAttackDistance(lua_State *L, Creature *creature)
int HasInvolvedQuest(lua_State *L, Creature *creature)
int Respawn(lua_State *L, Creature *creature)
int ResetLootMode(lua_State *L, Creature *creature)
int GetLootRecipientGroup(lua_State *L, Creature *creature)
int GetNearestTargetInAttackDistance(lua_State *L, Creature *creature)
int CanAssistTo(lua_State *L, Creature *creature)
int SendCreatureTalk(lua_State *L, Creature *creature)
int GetDefaultMovementType(lua_State *L, Creature *creature)
int GetNPCFlags(lua_State *L, Creature *creature)
int IsElite(lua_State *L, Creature *creature)
int HasCategoryCooldown(lua_State *L, Creature *creature)
int HasLootMode(lua_State *L, Creature *creature)
int GetRespawnRadius(lua_State *L, Creature *creature)
int GetScriptName(lua_State *L, Creature *creature)
int GetCurrentWaypointId(lua_State *L, Creature *creature)
int GetNearestTarget(lua_State *L, Creature *creature)
int RemoveCorpse(lua_State *L, Creature *creature)