1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
|
#ifndef SKILL_T_HPP
#define SKILL_T_HPP
#include <cstdint>
#include "../common/utils.hpp"
// TODO remove most of these as their corresponding SkillIDs get deleted.
enum class StatusChange : uint16_t
{
// indices into (map_session_data).status_change
SC_SENDMAX = 256,
#define SC_SENDMAX StatusChange::SC_SENDMAX
// sometimes means "none", sometimes not
NEGATIVE1 = 0xffff,
ANY_BAD = NEGATIVE1,
// these ones are used by clif_status_change,
// e.g. by the magic system
ZERO = 0,
ATTACK_ICON_GENERIC = 2000,
ATTACK_ICON_SHEARING = 2001,
CART = 0x0c,
CLIF_OPTION_SC_INVISIBILITY = 0x1000,
#define CLIF_OPTION_SC_INVISIBILITY StatusChange::CLIF_OPTION_SC_INVISIBILITY
CLIF_OPTION_SC_SCRIBE = 0x1001,
#define CLIF_OPTION_SC_SCRIBE StatusChange::CLIF_OPTION_SC_SCRIBE
// the rest are the normal effects
SC_PROVOKE = 0,
#define SC_PROVOKE StatusChange::SC_PROVOKE
SC_ENDURE = 1,
#define SC_ENDURE StatusChange::SC_ENDURE
SC_TWOHANDQUICKEN = 2,
#define SC_TWOHANDQUICKEN StatusChange::SC_TWOHANDQUICKEN
SC_CONCENTRATE = 3,
#define SC_CONCENTRATE StatusChange::SC_CONCENTRATE
SC_HIDING = 4,
#define SC_HIDING StatusChange::SC_HIDING
SC_CLOAKING = 5,
#define SC_CLOAKING StatusChange::SC_CLOAKING
SC_ENCPOISON = 6,
#define SC_ENCPOISON StatusChange::SC_ENCPOISON
SC_POISONREACT = 7,
#define SC_POISONREACT StatusChange::SC_POISONREACT
SC_QUAGMIRE = 8,
#define SC_QUAGMIRE StatusChange::SC_QUAGMIRE
SC_ANGELUS = 9,
#define SC_ANGELUS StatusChange::SC_ANGELUS
SC_BLESSING = 10,
#define SC_BLESSING StatusChange::SC_BLESSING
SC_SIGNUMCRUCIS = 11,
#define SC_SIGNUMCRUCIS StatusChange::SC_SIGNUMCRUCIS
SC_INCREASEAGI = 12,
#define SC_INCREASEAGI StatusChange::SC_INCREASEAGI
SC_DECREASEAGI = 13,
#define SC_DECREASEAGI StatusChange::SC_DECREASEAGI
SC_SLOWPOISON = 14, //
#define SC_SLOWPOISON StatusChange::SC_SLOWPOISON
SC_IMPOSITIO = 15,
#define SC_IMPOSITIO StatusChange::SC_IMPOSITIO
SC_SUFFRAGIUM = 16,
#define SC_SUFFRAGIUM StatusChange::SC_SUFFRAGIUM
SC_ASPERSIO = 17,
#define SC_ASPERSIO StatusChange::SC_ASPERSIO
SC_BENEDICTIO = 18,
#define SC_BENEDICTIO StatusChange::SC_BENEDICTIO
SC_KYRIE = 19,
#define SC_KYRIE StatusChange::SC_KYRIE
SC_MAGNIFICAT = 20,
#define SC_MAGNIFICAT StatusChange::SC_MAGNIFICAT
SC_GLORIA = 21,
#define SC_GLORIA StatusChange::SC_GLORIA
SC_AETERNA = 22,
#define SC_AETERNA StatusChange::SC_AETERNA
SC_ADRENALINE = 23,
#define SC_ADRENALINE StatusChange::SC_ADRENALINE
SC_WEAPONPERFECTION = 24,
#define SC_WEAPONPERFECTION StatusChange::SC_WEAPONPERFECTION
SC_OVERTHRUST = 25,
#define SC_OVERTHRUST StatusChange::SC_OVERTHRUST
SC_MAXIMIZEPOWER = 26,
#define SC_MAXIMIZEPOWER StatusChange::SC_MAXIMIZEPOWER
SC_RIDING = 27,
#define SC_RIDING StatusChange::SC_RIDING
SC_FALCON = 28,
#define SC_FALCON StatusChange::SC_FALCON
SC_TRICKDEAD = 29,
#define SC_TRICKDEAD StatusChange::SC_TRICKDEAD
SC_LOUD = 30,
#define SC_LOUD StatusChange::SC_LOUD
SC_ENERGYCOAT = 31,
#define SC_ENERGYCOAT StatusChange::SC_ENERGYCOAT
SC_BROKNARMOR = 32,
#define SC_BROKNARMOR StatusChange::SC_BROKNARMOR
SC_BROKNWEAPON = 33,
#define SC_BROKNWEAPON StatusChange::SC_BROKNWEAPON
SC_HALLUCINATION = 34,
#define SC_HALLUCINATION StatusChange::SC_HALLUCINATION
SC_WEIGHT50 = 35,
#define SC_WEIGHT50 StatusChange::SC_WEIGHT50
SC_WEIGHT90 = 36,
#define SC_WEIGHT90 StatusChange::SC_WEIGHT90
SC_SPEEDPOTION0 = 37, //
#define SC_SPEEDPOTION0 StatusChange::SC_SPEEDPOTION0
SC_SPEEDPOTION1 = 38,
#define SC_SPEEDPOTION1 StatusChange::SC_SPEEDPOTION1
SC_SPEEDPOTION2 = 39,
#define SC_SPEEDPOTION2 StatusChange::SC_SPEEDPOTION2
SC_STRIPWEAPON = 50,
#define SC_STRIPWEAPON StatusChange::SC_STRIPWEAPON
SC_STRIPSHIELD = 51,
#define SC_STRIPSHIELD StatusChange::SC_STRIPSHIELD
SC_STRIPARMOR = 52,
#define SC_STRIPARMOR StatusChange::SC_STRIPARMOR
SC_STRIPHELM = 53,
#define SC_STRIPHELM StatusChange::SC_STRIPHELM
SC_CP_WEAPON = 54,
#define SC_CP_WEAPON StatusChange::SC_CP_WEAPON
SC_CP_SHIELD = 55,
#define SC_CP_SHIELD StatusChange::SC_CP_SHIELD
SC_CP_ARMOR = 56,
#define SC_CP_ARMOR StatusChange::SC_CP_ARMOR
SC_CP_HELM = 57,
#define SC_CP_HELM StatusChange::SC_CP_HELM
SC_AUTOGUARD = 58,
#define SC_AUTOGUARD StatusChange::SC_AUTOGUARD
SC_REFLECTSHIELD = 59,
#define SC_REFLECTSHIELD StatusChange::SC_REFLECTSHIELD
SC_DEVOTION = 60,
#define SC_DEVOTION StatusChange::SC_DEVOTION
SC_DEFENDER = 62,
#define SC_DEFENDER StatusChange::SC_DEFENDER
SC_SPEARSQUICKEN = 68,
#define SC_SPEARSQUICKEN StatusChange::SC_SPEARSQUICKEN
SC_HEALING = 70, //
#define SC_HEALING StatusChange::SC_HEALING
SC_SIGHTTRASHER = 73,
#define SC_SIGHTTRASHER StatusChange::SC_SIGHTTRASHER
SC_EXPLOSIONSPIRITS = 86,
#define SC_EXPLOSIONSPIRITS StatusChange::SC_EXPLOSIONSPIRITS
SC_STEELBODY = 87,
#define SC_STEELBODY StatusChange::SC_STEELBODY
SC_FLAMELAUNCHER = 90,
#define SC_FLAMELAUNCHER StatusChange::SC_FLAMELAUNCHER
SC_FROSTWEAPON = 91,
#define SC_FROSTWEAPON StatusChange::SC_FROSTWEAPON
SC_LIGHTNINGLOADER = 92,
#define SC_LIGHTNINGLOADER StatusChange::SC_LIGHTNINGLOADER
SC_SEISMICWEAPON = 93,
#define SC_SEISMICWEAPON StatusChange::SC_SEISMICWEAPON
SC_AURABLADE = 103,
#define SC_AURABLADE StatusChange::SC_AURABLADE
SC_PARRYING = 104,
#define SC_PARRYING StatusChange::SC_PARRYING
SC_CONCENTRATION = 105,
#define SC_CONCENTRATION StatusChange::SC_CONCENTRATION
SC_TENSIONRELAX = 106,
#define SC_TENSIONRELAX StatusChange::SC_TENSIONRELAX
SC_BERSERK = 107,
#define SC_BERSERK StatusChange::SC_BERSERK
SC_ASSUMPTIO = 110,
#define SC_ASSUMPTIO StatusChange::SC_ASSUMPTIO
SC_MAGICPOWER = 113,
#define SC_MAGICPOWER StatusChange::SC_MAGICPOWER
SC_TRUESIGHT = 115,
#define SC_TRUESIGHT StatusChange::SC_TRUESIGHT
SC_WINDWALK = 116,
#define SC_WINDWALK StatusChange::SC_WINDWALK
SC_MELTDOWN = 117,
#define SC_MELTDOWN StatusChange::SC_MELTDOWN
SC_CARTBOOST = 118,
#define SC_CARTBOOST StatusChange::SC_CARTBOOST
SC_REJECTSWORD = 120,
#define SC_REJECTSWORD StatusChange::SC_REJECTSWORD
SC_MARIONETTE = 121,
#define SC_MARIONETTE StatusChange::SC_MARIONETTE
SC_HEADCRUSH = 124,
#define SC_HEADCRUSH StatusChange::SC_HEADCRUSH
SC_JOINTBEAT = 125,
#define SC_JOINTBEAT StatusChange::SC_JOINTBEAT
SC_BASILICA = SC_JOINTBEAT,
#define SC_BASILICA StatusChange::SC_BASILICA
SC_STONE = 128,
#define SC_STONE StatusChange::SC_STONE
SC_FREEZE = 129,
#define SC_FREEZE StatusChange::SC_FREEZE
SC_STAN = 130,
#define SC_STAN StatusChange::SC_STAN
SC_SLEEP = 131,
#define SC_SLEEP StatusChange::SC_SLEEP
SC_POISON = 132, //
#define SC_POISON StatusChange::SC_POISON
SC_CURSE = 133,
#define SC_CURSE StatusChange::SC_CURSE
SC_SILENCE = 134,
#define SC_SILENCE StatusChange::SC_SILENCE
SC_DIVINA = SC_SILENCE,
#define SC_DIVINA StatusChange::SC_DIVINA
SC_CONFUSION = 135,
#define SC_CONFUSION StatusChange::SC_CONFUSION
SC_BLIND = 136,
#define SC_BLIND StatusChange::SC_BLIND
SC_SAFETYWALL = 140,
#define SC_SAFETYWALL StatusChange::SC_SAFETYWALL
SC_PNEUMA = 141,
#define SC_PNEUMA StatusChange::SC_PNEUMA
SC_ANKLE = 143,
#define SC_ANKLE StatusChange::SC_ANKLE
SC_DANCING = 144,
#define SC_DANCING StatusChange::SC_DANCING
SC_KEEPING = 145,
#define SC_KEEPING StatusChange::SC_KEEPING
SC_BARRIER = 146,
#define SC_BARRIER StatusChange::SC_BARRIER
SC_MAGICROD = 149,
#define SC_MAGICROD StatusChange::SC_MAGICROD
SC_SIGHT = 150,
#define SC_SIGHT StatusChange::SC_SIGHT
SC_VOLCANO = 153,
#define SC_VOLCANO StatusChange::SC_VOLCANO
SC_DELUGE = 154,
#define SC_DELUGE StatusChange::SC_DELUGE
SC_VIOLENTGALE = 155,
#define SC_VIOLENTGALE StatusChange::SC_VIOLENTGALE
SC_EXTREMITYFIST = 158,
#define SC_EXTREMITYFIST StatusChange::SC_EXTREMITYFIST
SC_ENSEMBLE = 159,
#define SC_ENSEMBLE StatusChange::SC_ENSEMBLE
SC_LULLABY = 160,
#define SC_LULLABY StatusChange::SC_LULLABY
SC_RICHMANKIM = 161,
#define SC_RICHMANKIM StatusChange::SC_RICHMANKIM
SC_ETERNALCHAOS = 162,
#define SC_ETERNALCHAOS StatusChange::SC_ETERNALCHAOS
SC_DRUMBATTLE = 163,
#define SC_DRUMBATTLE StatusChange::SC_DRUMBATTLE
SC_NIBELUNGEN = 164,
#define SC_NIBELUNGEN StatusChange::SC_NIBELUNGEN
SC_ROKISWEIL = 165,
#define SC_ROKISWEIL StatusChange::SC_ROKISWEIL
SC_INTOABYSS = 166,
#define SC_INTOABYSS StatusChange::SC_INTOABYSS
SC_DISSONANCE = 168,
#define SC_DISSONANCE StatusChange::SC_DISSONANCE
SC_WHISTLE = 169,
#define SC_WHISTLE StatusChange::SC_WHISTLE
SC_ASSNCROS = 170,
#define SC_ASSNCROS StatusChange::SC_ASSNCROS
SC_POEMBRAGI = 171,
#define SC_POEMBRAGI StatusChange::SC_POEMBRAGI
SC_APPLEIDUN = 172,
#define SC_APPLEIDUN StatusChange::SC_APPLEIDUN
SC_UGLYDANCE = 173,
#define SC_UGLYDANCE StatusChange::SC_UGLYDANCE
SC_HUMMING = 174,
#define SC_HUMMING StatusChange::SC_HUMMING
SC_DONTFORGETME = 175,
#define SC_DONTFORGETME StatusChange::SC_DONTFORGETME
SC_FORTUNE = 176,
#define SC_FORTUNE StatusChange::SC_FORTUNE
SC_SERVICE4U = 177,
#define SC_SERVICE4U StatusChange::SC_SERVICE4U
SC_FOGWALL = 178,
#define SC_FOGWALL StatusChange::SC_FOGWALL
SC_GOSPEL = 179,
#define SC_GOSPEL StatusChange::SC_GOSPEL
SC_SPIDERWEB = 180,
#define SC_SPIDERWEB StatusChange::SC_SPIDERWEB
SC_MEMORIZE = 181,
#define SC_MEMORIZE StatusChange::SC_MEMORIZE
SC_LANDPROTECTOR = 182,
#define SC_LANDPROTECTOR StatusChange::SC_LANDPROTECTOR
SC_ADAPTATION = 183,
#define SC_ADAPTATION StatusChange::SC_ADAPTATION
SC_CHASEWALK = 184,
#define SC_CHASEWALK StatusChange::SC_CHASEWALK
SC_ATKPOT = 185, //
#define SC_ATKPOT StatusChange::SC_ATKPOT
SC_MATKPOT = 186,
#define SC_MATKPOT StatusChange::SC_MATKPOT
SC_WEDDING = 187,
#define SC_WEDDING StatusChange::SC_WEDDING
SC_NOCHAT = 188,
#define SC_NOCHAT StatusChange::SC_NOCHAT
SC_SPLASHER = 189, // ?
#define SC_SPLASHER StatusChange::SC_SPLASHER
SC_SELFDESTRUCTION = 190,
#define SC_SELFDESTRUCTION StatusChange::SC_SELFDESTRUCTION
SC_MINDBREAKER = 191,
#define SC_MINDBREAKER StatusChange::SC_MINDBREAKER
SC_SPELLBREAKER = 192,
#define SC_SPELLBREAKER StatusChange::SC_SPELLBREAKER
// Added for Fate's spells
SC_HIDE = 194, // Hide from `detect' magic (PCs only)
#define SC_HIDE StatusChange::SC_HIDE
SC_SHEARED = 194, // Has been sheared (mobs only)
#define SC_SHEARED StatusChange::SC_SHEARED
SC_HALT_REGENERATE = 195, // Suspend regeneration
#define SC_HALT_REGENERATE StatusChange::SC_HALT_REGENERATE
SC_FLYING_BACKPACK = 196, // Flying backpack
#define SC_FLYING_BACKPACK StatusChange::SC_FLYING_BACKPACK
SC_MBARRIER = 197, // Magical barrier, magic resistance (val1 : power (%))
#define SC_MBARRIER StatusChange::SC_MBARRIER
SC_HASTE = 198, // `Haste' spell (val1 : power)
#define SC_HASTE StatusChange::SC_HASTE
SC_PHYS_SHIELD = 199, // `Protect' spell, reduce damage (val1: power)
#define SC_PHYS_SHIELD StatusChange::SC_PHYS_SHIELD
MAX_STATUSCHANGE = 200,
#define MAX_STATUSCHANGE StatusChange::MAX_STATUSCHANGE
};
constexpr
StatusChange MAJOR_STATUS_EFFECTS[] =
{
SC_STONE,
SC_FREEZE,
SC_STAN,
SC_SLEEP,
SC_POISON,
SC_CURSE,
SC_SILENCE,
SC_CONFUSION,
SC_BLIND,
};
constexpr
StatusChange MAJOR_STATUS_EFFECTS_1[] =
{
SC_STONE,
SC_FREEZE,
SC_STAN,
SC_SLEEP,
};
// needed to work around some subtractative indexing
// I think it *might* be able to be totally removed.
enum class BadSC
{
STONE = 0,
FREEZE = 1,
STAN = 2,
SLEEP = 3,
POISON = 4,
CURSE = 5,
SILENCE = 6,
CONFUSION = 7,
BLIND = 8,
COUNT = 9, // formerly 10,
};
constexpr
StatusChange BadSC_to_SC(BadSC bsc)
{
return StatusChange(uint16_t(SC_STONE) + int(bsc));
}
constexpr
BadSC BadSC_from_SC(StatusChange sc)
{
return BadSC(uint16_t(sc) - uint16_t(SC_STONE));
}
// TODO remove most of these
enum class SkillID : uint16_t
{
// TODO: Remove these!
NEGATIVE = 0xffff,
ZERO = 0x0000,
ONE = 0x0001,
// Basic skills.
// These should probably be made unconditional.
NV_EMOTE = 1, //
#define NV_EMOTE SkillID::NV_EMOTE
NV_TRADE = 2, //
#define NV_TRADE SkillID::NV_TRADE
NV_PARTY = 3, //
#define NV_PARTY SkillID::NV_PARTY
AL_TELEPORT = 28, //
#define AL_TELEPORT SkillID::AL_TELEPORT
AL_HEAL = 30, //
#define AL_HEAL SkillID::AL_HEAL
AC_OWL = 45, // Mallard's Eye
#define AC_OWL SkillID::AC_OWL
NV_FIRSTAID = 144, //
#define NV_FIRSTAID SkillID::NV_FIRSTAID
NV_TRICKDEAD = 145,
#define NV_TRICKDEAD SkillID::NV_TRICKDEAD
NPC_PIERCINGATT = 160,
#define NPC_PIERCINGATT SkillID::NPC_PIERCINGATT
NPC_MENTALBREAKER = 161,
#define NPC_MENTALBREAKER SkillID::NPC_MENTALBREAKER
NPC_RANGEATTACK = 162,
#define NPC_RANGEATTACK SkillID::NPC_RANGEATTACK
NPC_ATTRICHANGE = 163,
#define NPC_ATTRICHANGE SkillID::NPC_ATTRICHANGE
NPC_CHANGEWATER = 164,
#define NPC_CHANGEWATER SkillID::NPC_CHANGEWATER
NPC_CHANGEGROUND = 165,
#define NPC_CHANGEGROUND SkillID::NPC_CHANGEGROUND
NPC_CHANGEFIRE = 166,
#define NPC_CHANGEFIRE SkillID::NPC_CHANGEFIRE
NPC_CHANGEWIND = 167,
#define NPC_CHANGEWIND SkillID::NPC_CHANGEWIND
NPC_CHANGEPOISON = 168,
#define NPC_CHANGEPOISON SkillID::NPC_CHANGEPOISON
NPC_CHANGEHOLY = 169,
#define NPC_CHANGEHOLY SkillID::NPC_CHANGEHOLY
NPC_CHANGEDARKNESS = 170,
#define NPC_CHANGEDARKNESS SkillID::NPC_CHANGEDARKNESS
NPC_CHANGETELEKINESIS = 171,
#define NPC_CHANGETELEKINESIS SkillID::NPC_CHANGETELEKINESIS
NPC_CRITICALSLASH = 172,
#define NPC_CRITICALSLASH SkillID::NPC_CRITICALSLASH
NPC_COMBOATTACK = 173,
#define NPC_COMBOATTACK SkillID::NPC_COMBOATTACK
NPC_GUIDEDATTACK = 174,
#define NPC_GUIDEDATTACK SkillID::NPC_GUIDEDATTACK
NPC_SELFDESTRUCTION = 175, //
#define NPC_SELFDESTRUCTION SkillID::NPC_SELFDESTRUCTION
NPC_SPLASHATTACK = 176,
#define NPC_SPLASHATTACK SkillID::NPC_SPLASHATTACK
NPC_SUICIDE = 177,
#define NPC_SUICIDE SkillID::NPC_SUICIDE
NPC_POISON = 178, //
#define NPC_POISON SkillID::NPC_POISON
NPC_BLINDATTACK = 179,
#define NPC_BLINDATTACK SkillID::NPC_BLINDATTACK
NPC_SILENCEATTACK = 180,
#define NPC_SILENCEATTACK SkillID::NPC_SILENCEATTACK
NPC_STUNATTACK = 181,
#define NPC_STUNATTACK SkillID::NPC_STUNATTACK
NPC_PETRIFYATTACK = 182,
#define NPC_PETRIFYATTACK SkillID::NPC_PETRIFYATTACK
NPC_CURSEATTACK = 183,
#define NPC_CURSEATTACK SkillID::NPC_CURSEATTACK
NPC_SLEEPATTACK = 184,
#define NPC_SLEEPATTACK SkillID::NPC_SLEEPATTACK
NPC_RANDOMATTACK = 185,
#define NPC_RANDOMATTACK SkillID::NPC_RANDOMATTACK
NPC_WATERATTACK = 186,
#define NPC_WATERATTACK SkillID::NPC_WATERATTACK
NPC_GROUNDATTACK = 187,
#define NPC_GROUNDATTACK SkillID::NPC_GROUNDATTACK
NPC_FIREATTACK = 188,
#define NPC_FIREATTACK SkillID::NPC_FIREATTACK
NPC_WINDATTACK = 189, // ?
#define NPC_WINDATTACK SkillID::NPC_WINDATTACK
NPC_POISONATTACK = 190, //
#define NPC_POISONATTACK SkillID::NPC_POISONATTACK
NPC_HOLYATTACK = 191,
#define NPC_HOLYATTACK SkillID::NPC_HOLYATTACK
NPC_DARKNESSATTACK = 192,
#define NPC_DARKNESSATTACK SkillID::NPC_DARKNESSATTACK
NPC_TELEKINESISATTACK = 193,
#define NPC_TELEKINESISATTACK SkillID::NPC_TELEKINESISATTACK
NPC_MAGICALATTACK = 194,
#define NPC_MAGICALATTACK SkillID::NPC_MAGICALATTACK
NPC_METAMORPHOSIS = 195,
#define NPC_METAMORPHOSIS SkillID::NPC_METAMORPHOSIS
NPC_PROVOCATION = 196,
#define NPC_PROVOCATION SkillID::NPC_PROVOCATION
NPC_SMOKING = 197,
#define NPC_SMOKING SkillID::NPC_SMOKING
NPC_SUMMONSLAVE = 198, //
#define NPC_SUMMONSLAVE SkillID::NPC_SUMMONSLAVE
NPC_EMOTION = 199, //
#define NPC_EMOTION SkillID::NPC_EMOTION
NPC_TRANSFORMATION = 200,
#define NPC_TRANSFORMATION SkillID::NPC_TRANSFORMATION
NPC_BLOODDRAIN = 201,
#define NPC_BLOODDRAIN SkillID::NPC_BLOODDRAIN
NPC_ENERGYDRAIN = 202,
#define NPC_ENERGYDRAIN SkillID::NPC_ENERGYDRAIN
NPC_KEEPING = 203,
#define NPC_KEEPING SkillID::NPC_KEEPING
NPC_DARKBREATH = 204,
#define NPC_DARKBREATH SkillID::NPC_DARKBREATH
NPC_DARKBLESSING = 205,
#define NPC_DARKBLESSING SkillID::NPC_DARKBLESSING
NPC_BARRIER = 206,
#define NPC_BARRIER SkillID::NPC_BARRIER
NPC_DEFENDER = 207,
#define NPC_DEFENDER SkillID::NPC_DEFENDER
NPC_LICK = 208,
#define NPC_LICK SkillID::NPC_LICK
NPC_HALLUCINATION = 209,
#define NPC_HALLUCINATION SkillID::NPC_HALLUCINATION
NPC_REBIRTH = 210,
#define NPC_REBIRTH SkillID::NPC_REBIRTH
NPC_SUMMONMONSTER = 211,
#define NPC_SUMMONMONSTER SkillID::NPC_SUMMONMONSTER
NPC_SELFDESTRUCTION2 = 333,
#define NPC_SELFDESTRUCTION2 SkillID::NPC_SELFDESTRUCTION2
NPC_DARKCROSS = 338,
#define NPC_DARKCROSS SkillID::NPC_DARKCROSS
TMW_SKILLPOOL = 339, // skill pool size
#define TMW_SKILLPOOL SkillID::TMW_SKILLPOOL
// magic skills
TMW_MAGIC = 340, //
#define TMW_MAGIC SkillID::TMW_MAGIC
TMW_MAGIC_LIFE = 341, //
#define TMW_MAGIC_LIFE SkillID::TMW_MAGIC_LIFE
TMW_MAGIC_WAR = 342, //
#define TMW_MAGIC_WAR SkillID::TMW_MAGIC_WAR
TMW_MAGIC_TRANSMUTE = 343, //
#define TMW_MAGIC_TRANSMUTE SkillID::TMW_MAGIC_TRANSMUTE
TMW_MAGIC_NATURE = 344, //
#define TMW_MAGIC_NATURE SkillID::TMW_MAGIC_NATURE
TMW_MAGIC_ETHER = 345, //
#define TMW_MAGIC_ETHER SkillID::TMW_MAGIC_ETHER
TMW_MAGIC_DARK = 346, //
#define TMW_MAGIC_DARK SkillID::TMW_MAGIC_DARK
TMW_MAGIC_LIGHT = 347, //
#define TMW_MAGIC_LIGHT SkillID::TMW_MAGIC_LIGHT
// focusable skills
TMW_BRAWLING = 350, //
#define TMW_BRAWLING SkillID::TMW_BRAWLING
TMW_LUCKY_COUNTER = 351, //
#define TMW_LUCKY_COUNTER SkillID::TMW_LUCKY_COUNTER
TMW_SPEED = 352, //
#define TMW_SPEED SkillID::TMW_SPEED
TMW_RESIST_POISON = 353, //
#define TMW_RESIST_POISON SkillID::TMW_RESIST_POISON
TMW_ASTRAL_SOUL = 354, //
#define TMW_ASTRAL_SOUL SkillID::TMW_ASTRAL_SOUL
TMW_RAGING = 355, //
#define TMW_RAGING SkillID::TMW_RAGING
// Note: this value is also hard-coded in common/mmo.hpp
MAX_SKILL_DB = 474, // not 450
#define MAX_SKILL_DB SkillID::MAX_SKILL_DB
};
namespace e
{
enum class SkillFlags : uint16_t
{
ZERO = 0x00,
// is a pool skill
FLAG = 0x01,
#define SKILL_POOL_FLAG SkillFlags::FLAG
// is an active pool skill
ACTIVE = 0x02,
#define SKILL_POOL_ACTIVE SkillFlags::ACTIVE
// pool skill has been activated (used for clif)
ACTIVATED = 0x04,
#define SKILL_POOL_ACTIVATED SkillFlags::ACTIVATED
};
ENUM_BITWISE_OPERATORS(SkillFlags)
}
using e::SkillFlags;
#endif // SKILL_T_HPP
|