*Added 'status_icon' param for *bonus_script script, thank QQfoolsorellina for the suggestion (https://github.com/rathena/rathena/commit/99098c1#commitcomment-4558795)
--> bonus_script "<script code>",<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}}; * Please update your sql database (main database) with upgrade_20131227.sql Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
This commit is contained in:
parent
90ced830a4
commit
be05bc399b
@ -1528,7 +1528,7 @@
|
|||||||
|
|
||||||
// @dropall
|
// @dropall
|
||||||
1492: Usage: @dropall {<type>}
|
1492: Usage: @dropall {<type>}
|
||||||
1493: Type List: (default) all = -1, healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10
|
1493: Type List: (default) all = -1, healing = 0, usable = 2, etc = 3, armor = 4, weapon = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10
|
||||||
1494: %d items are dropped (%d skipped)!
|
1494: %d items are dropped (%d skipped)!
|
||||||
|
|
||||||
//Banking
|
//Banking
|
||||||
|
771
db/const.txt
771
db/const.txt
@ -1677,6 +1677,777 @@ SC_MTF_MLEATKED 584
|
|||||||
SC_MTF_CRIDAMAGE 585
|
SC_MTF_CRIDAMAGE 585
|
||||||
SC_EXTREMITYFIST2 586
|
SC_EXTREMITYFIST2 586
|
||||||
|
|
||||||
|
//Status Icon
|
||||||
|
SI_BLANK -1
|
||||||
|
SI_PROVOKE 0
|
||||||
|
SI_ENDURE 1
|
||||||
|
SI_TWOHANDQUICKEN 2
|
||||||
|
SI_CONCENTRATE 3
|
||||||
|
SI_HIDING 4
|
||||||
|
SI_CLOAKING 5
|
||||||
|
SI_ENCPOISON 6
|
||||||
|
SI_POISONREACT 7
|
||||||
|
SI_QUAGMIRE 8
|
||||||
|
SI_ANGELUS 9
|
||||||
|
SI_BLESSING 10
|
||||||
|
SI_SIGNUMCRUCIS 11
|
||||||
|
SI_INCREASEAGI 12
|
||||||
|
SI_DECREASEAGI 13
|
||||||
|
SI_SLOWPOISON 14
|
||||||
|
SI_IMPOSITIO 15
|
||||||
|
SI_SUFFRAGIUM 16
|
||||||
|
SI_ASPERSIO 17
|
||||||
|
SI_BENEDICTIO 18
|
||||||
|
SI_KYRIE 19
|
||||||
|
SI_MAGNIFICAT 20
|
||||||
|
SI_GLORIA 21
|
||||||
|
SI_AETERNA 22
|
||||||
|
SI_ADRENALINE 23
|
||||||
|
SI_WEAPONPERFECTION 24
|
||||||
|
SI_OVERTHRUST 25
|
||||||
|
SI_MAXIMIZEPOWER 26
|
||||||
|
SI_RIDING 27
|
||||||
|
SI_FALCON 28
|
||||||
|
SI_TRICKDEAD 29
|
||||||
|
SI_LOUD 30
|
||||||
|
SI_ENERGYCOAT 31
|
||||||
|
SI_BROKENARMOR 32
|
||||||
|
SI_BROKENWEAPON 33
|
||||||
|
SI_HALLUCINATION 34
|
||||||
|
SI_WEIGHT50 35
|
||||||
|
SI_WEIGHT90 36
|
||||||
|
SI_ASPDPOTION0 37
|
||||||
|
SI_ASPDPOTION1 38
|
||||||
|
SI_ASPDPOTION2 39
|
||||||
|
SI_ASPDPOTIONINFINITY 40
|
||||||
|
SI_SPEEDPOTION1 41
|
||||||
|
SI_MOVHASTE_INFINITY 42
|
||||||
|
SI_AUTOCOUNTER 43
|
||||||
|
SI_SPLASHER 44
|
||||||
|
SI_ANKLESNARE 45
|
||||||
|
SI_ACTIONDELAY 46
|
||||||
|
SI_NOACTION 47
|
||||||
|
SI_IMPOSSIBLEPICKUP 48
|
||||||
|
SI_BARRIER 49
|
||||||
|
SI_STRIPWEAPON 50
|
||||||
|
SI_STRIPSHIELD 51
|
||||||
|
SI_STRIPARMOR 52
|
||||||
|
SI_STRIPHELM 53
|
||||||
|
SI_CP_WEAPON 54
|
||||||
|
SI_CP_SHIELD 55
|
||||||
|
SI_CP_ARMOR 56
|
||||||
|
SI_CP_HELM 57
|
||||||
|
SI_AUTOGUARD 58
|
||||||
|
SI_REFLECTSHIELD 59
|
||||||
|
SI_DEVOTION 60
|
||||||
|
SI_PROVIDENCE 61
|
||||||
|
SI_DEFENDER 62
|
||||||
|
SI_MAGICROD 63
|
||||||
|
SI_WEAPONPROPERTY 64
|
||||||
|
SI_AUTOSPELL 65
|
||||||
|
SI_SPECIALZONE 66
|
||||||
|
SI_MASK 67
|
||||||
|
SI_SPEARQUICKEN 68
|
||||||
|
SI_BDPLAYING 69
|
||||||
|
SI_WHISTLE 70
|
||||||
|
SI_ASSASSINCROSS 71
|
||||||
|
SI_POEMBRAGI 72
|
||||||
|
SI_APPLEIDUN 73
|
||||||
|
SI_HUMMING 74
|
||||||
|
SI_DONTFORGETME 75
|
||||||
|
SI_FORTUNEKISS 76
|
||||||
|
SI_SERVICEFORYOU 77
|
||||||
|
SI_RICHMANKIM 78
|
||||||
|
SI_ETERNALCHAOS 79
|
||||||
|
SI_DRUMBATTLEFIELD 80
|
||||||
|
SI_RINGNIBELUNGEN 81
|
||||||
|
SI_ROKISWEIL 82
|
||||||
|
SI_INTOABYSS 83
|
||||||
|
SI_SIEGFRIED 84
|
||||||
|
SI_BLADESTOP 85
|
||||||
|
SI_EXPLOSIONSPIRITS 86
|
||||||
|
SI_STEELBODY 87
|
||||||
|
SI_EXTREMITYFIST 88
|
||||||
|
SI_COMBOATTACK 89
|
||||||
|
SI_FIREWEAPON 90
|
||||||
|
SI_WATERWEAPON 91
|
||||||
|
SI_WINDWEAPON 92
|
||||||
|
SI_EARTHWEAPON 93
|
||||||
|
SI_MAGICATTACK 94
|
||||||
|
SI_STOP 95
|
||||||
|
SI_WEAPONBRAKER 96
|
||||||
|
SI_UNDEAD 97
|
||||||
|
SI_POWERUP 98
|
||||||
|
SI_AGIUP 99
|
||||||
|
SI_SIEGEMODE 100
|
||||||
|
SI_INVISIBLE 101
|
||||||
|
SI_STATUSONE 102
|
||||||
|
SI_AURABLADE 103
|
||||||
|
SI_PARRYING 104
|
||||||
|
SI_CONCENTRATION 105
|
||||||
|
SI_TENSIONRELAX 106
|
||||||
|
SI_BERSERK 107
|
||||||
|
SI_SACRIFICE 108
|
||||||
|
SI_GOSPEL 109
|
||||||
|
SI_ASSUMPTIO 110
|
||||||
|
SI_BASILICA 111
|
||||||
|
SI_LANDENDOW 112
|
||||||
|
SI_MAGICPOWER 113
|
||||||
|
SI_EDP 114
|
||||||
|
SI_TRUESIGHT 115
|
||||||
|
SI_WINDWALK 116
|
||||||
|
SI_MELTDOWN 117
|
||||||
|
SI_CARTBOOST 118
|
||||||
|
SI_CHASEWALK 119
|
||||||
|
SI_REJECTSWORD 120
|
||||||
|
SI_MARIONETTE 121
|
||||||
|
SI_MARIONETTE2 122
|
||||||
|
SI_MOONLIT 123
|
||||||
|
SI_BLEEDING 124
|
||||||
|
SI_JOINTBEAT 125
|
||||||
|
SI_MINDBREAKER 126
|
||||||
|
SI_MEMORIZE 127
|
||||||
|
SI_FOGWALL 128
|
||||||
|
SI_SPIDERWEB 129
|
||||||
|
SI_BABY 130
|
||||||
|
SI_SUB_WEAPONPROPERTY 131
|
||||||
|
SI_AUTOBERSERK 132
|
||||||
|
SI_RUN 133
|
||||||
|
SI_BUMP 134
|
||||||
|
SI_READYSTORM 135
|
||||||
|
SI_STORMKICK_READY 136
|
||||||
|
SI_READYDOWN 137
|
||||||
|
SI_DOWNKICK_READY 138
|
||||||
|
SI_READYTURN 139
|
||||||
|
SI_TURNKICK_READY 140
|
||||||
|
SI_READYCOUNTER 141
|
||||||
|
SI_COUNTER_READY 142
|
||||||
|
SI_DODGE 143
|
||||||
|
SI_DODGE_READY 144
|
||||||
|
SI_SPURT 145
|
||||||
|
SI_SHADOWWEAPON 146
|
||||||
|
SI_ADRENALINE2 147
|
||||||
|
SI_GHOSTWEAPON 148
|
||||||
|
SI_SPIRIT 149
|
||||||
|
SI_PLUSATTACKPOWER 150
|
||||||
|
SI_PLUSMAGICPOWER 151
|
||||||
|
SI_DEVIL 152
|
||||||
|
SI_KAITE 153
|
||||||
|
SI_SWOO 154
|
||||||
|
SI_STAR2 155
|
||||||
|
SI_KAIZEL 156
|
||||||
|
SI_KAAHI 157
|
||||||
|
SI_KAUPE 158
|
||||||
|
SI_SMA 159
|
||||||
|
SI_NIGHT 160
|
||||||
|
SI_ONEHAND 161
|
||||||
|
SI_FRIEND 162
|
||||||
|
SI_FRIENDUP 163
|
||||||
|
SI_SG_WARM 164
|
||||||
|
SI_WARM 165
|
||||||
|
SI_EMOTION 168
|
||||||
|
SI_SUN_COMFORT 169
|
||||||
|
SI_MOON_COMFORT 170
|
||||||
|
SI_STAR_COMFORT 171
|
||||||
|
SI_EXPUP 172
|
||||||
|
SI_GDSKILL_BATTLEORDER 173
|
||||||
|
SI_GDSKILL_REGENERATION 174
|
||||||
|
SI_GDSKILL_POSTDELAY 175
|
||||||
|
SI_RESISTHANDICAP 176
|
||||||
|
SI_MAXHPPERCENT 177
|
||||||
|
SI_MAXSPPERCENT 178
|
||||||
|
SI_DEFENCE 179
|
||||||
|
SI_SLOWDOWN 180
|
||||||
|
SI_PRESERVE 181
|
||||||
|
SI_INCSTR 182
|
||||||
|
SI_NOT_EXTREMITYFIST 183
|
||||||
|
SI_INTRAVISION 184
|
||||||
|
SI_MOVESLOW_POTION 185
|
||||||
|
SI_DOUBLECAST 186
|
||||||
|
SI_GRAVITATION 187
|
||||||
|
SI_MAXOVERTHRUST 188
|
||||||
|
SI_LONGING 189
|
||||||
|
SI_HERMODE 190
|
||||||
|
SI_TAROT 191
|
||||||
|
SI_HLIF_AVOID 192
|
||||||
|
SI_HFLI_FLEET 193
|
||||||
|
SI_HFLI_SPEED 194
|
||||||
|
SI_HLIF_CHANGE 195
|
||||||
|
SI_HAMI_BLOODLUST 196
|
||||||
|
SI_SHRINK 197
|
||||||
|
SI_SIGHTBLASTER 198
|
||||||
|
SI_WINKCHARM 199
|
||||||
|
SI_CLOSECONFINE 200
|
||||||
|
SI_CLOSECONFINE2 201
|
||||||
|
SI_DISABLEMOVE 202
|
||||||
|
SI_MADNESSCANCEL 203
|
||||||
|
SI_GATLINGFEVER 204
|
||||||
|
SI_EARTHSCROLL 205
|
||||||
|
SI_UTSUSEMI 206
|
||||||
|
SI_BUNSINJYUTSU 207
|
||||||
|
SI_NEN 208
|
||||||
|
SI_ADJUSTMENT 209
|
||||||
|
SI_ACCURACY 210
|
||||||
|
SI_NJ_SUITON 211
|
||||||
|
SI_PET 212
|
||||||
|
SI_MENTAL 213
|
||||||
|
SI_EXPMEMORY 214
|
||||||
|
SI_PERFORMANCE 215
|
||||||
|
SI_GAIN 216
|
||||||
|
SI_GRIFFON 217
|
||||||
|
SI_DRIFT 218
|
||||||
|
SI_WALLSHIFT 219
|
||||||
|
SI_REINCARNATION 220
|
||||||
|
SI_PATTACK 221
|
||||||
|
SI_PSPEED 222
|
||||||
|
SI_PDEFENSE 223
|
||||||
|
SI_PCRITICAL 224
|
||||||
|
SI_RANKING 225
|
||||||
|
SI_PTRIPLE 226
|
||||||
|
SI_DENERGY 227
|
||||||
|
SI_WAVE1 228
|
||||||
|
SI_WAVE2 229
|
||||||
|
SI_WAVE3 230
|
||||||
|
SI_WAVE4 231
|
||||||
|
SI_DAURA 232
|
||||||
|
SI_DFREEZER 233
|
||||||
|
SI_DPUNISH 234
|
||||||
|
SI_DBARRIER 235
|
||||||
|
SI_DWARNING 236
|
||||||
|
SI_MOUSEWHEEL 237
|
||||||
|
SI_DGAUGE 238
|
||||||
|
SI_DACCEL 239
|
||||||
|
SI_DBLOCK 240
|
||||||
|
SI_FOODSTR 241
|
||||||
|
SI_FOODAGI 242
|
||||||
|
SI_FOODVIT 243
|
||||||
|
SI_FOODDEX 244
|
||||||
|
SI_FOODINT 245
|
||||||
|
SI_FOODLUK 246
|
||||||
|
SI_FOODFLEE 247
|
||||||
|
SI_FOODHIT 248
|
||||||
|
SI_FOODCRI 249
|
||||||
|
SI_EXPBOOST 250
|
||||||
|
SI_LIFEINSURANCE 251
|
||||||
|
SI_ITEMBOOST 252
|
||||||
|
SI_BOSSMAPINFO 253
|
||||||
|
SI_DA_ENERGY 254
|
||||||
|
SI_DA_FIRSTSLOT 255
|
||||||
|
SI_DA_HEADDEF 256
|
||||||
|
SI_DA_SPACE 257
|
||||||
|
SI_DA_TRANSFORM 258
|
||||||
|
SI_DA_ITEMREBUILD 259
|
||||||
|
SI_DA_ILLUSION 260
|
||||||
|
SI_DA_DARKPOWER 261
|
||||||
|
SI_DA_EARPLUG 262
|
||||||
|
SI_DA_CONTRACT 263
|
||||||
|
SI_DA_BLACK 264
|
||||||
|
SI_DA_MAGICCART 265
|
||||||
|
SI_CRYSTAL 266
|
||||||
|
SI_DA_REBUILD 267
|
||||||
|
SI_DA_EDARKNESS 268
|
||||||
|
SI_DA_EGUARDIAN 269
|
||||||
|
SI_DA_TIMEOUT 270
|
||||||
|
SI_FOOD_STR_CASH 271
|
||||||
|
SI_FOOD_AGI_CASH 272
|
||||||
|
SI_FOOD_VIT_CASH 273
|
||||||
|
SI_FOOD_DEX_CASH 274
|
||||||
|
SI_FOOD_INT_CASH 275
|
||||||
|
SI_FOOD_LUK_CASH 276
|
||||||
|
SI_MERC_FLEEUP 277
|
||||||
|
SI_MERC_ATKUP 278
|
||||||
|
SI_MERC_HPUP 279
|
||||||
|
SI_MERC_SPUP 280
|
||||||
|
SI_MERC_HITUP 281
|
||||||
|
SI_SLOWCAST 282
|
||||||
|
SI_MAGICMIRROR 283
|
||||||
|
SI_STONESKIN 284
|
||||||
|
SI_ANTIMAGIC 285
|
||||||
|
SI_CRITICALWOUND 286
|
||||||
|
SI_NPC_DEFENDER 287
|
||||||
|
SI_NOACTION_WAIT 288
|
||||||
|
SI_MOVHASTE_HORSE 289
|
||||||
|
SI_DEF_RATE 290
|
||||||
|
SI_MDEF_RATE 291
|
||||||
|
SI_INCHEALRATE 292
|
||||||
|
SI_S_LIFEPOTION 293
|
||||||
|
SI_L_LIFEPOTION 294
|
||||||
|
SI_INCCRI 295
|
||||||
|
SI_PLUSAVOIDVALUE 296
|
||||||
|
SI_ATKER_ASPD 297
|
||||||
|
SI_TARGET_ASPD 298
|
||||||
|
SI_ATKER_MOVESPEED 299
|
||||||
|
SI_ATKER_BLOOD 300
|
||||||
|
SI_TARGET_BLOOD 301
|
||||||
|
SI_ARMOR_PROPERTY 302
|
||||||
|
SI_REUSE_LIMIT_A 303
|
||||||
|
SI_HELLPOWER 304
|
||||||
|
SI_STEAMPACK 305
|
||||||
|
SI_REUSE_LIMIT_B 306
|
||||||
|
SI_REUSE_LIMIT_C 307
|
||||||
|
SI_REUSE_LIMIT_D 308
|
||||||
|
SI_REUSE_LIMIT_E 309
|
||||||
|
SI_REUSE_LIMIT_F 310
|
||||||
|
SI_INVINCIBLE 311
|
||||||
|
SI_CASH_PLUSONLYJOBEXP 312
|
||||||
|
SI_PARTYFLEE 313
|
||||||
|
SI_ANGEL_PROTECT 314
|
||||||
|
SI_ENDURE_MDEF 315
|
||||||
|
SI_ENCHANTBLADE 316
|
||||||
|
SI_DEATHBOUND 317
|
||||||
|
SI_REFRESH 318
|
||||||
|
SI_GIANTGROWTH 319
|
||||||
|
SI_STONEHARDSKIN 320
|
||||||
|
SI_VITALITYACTIVATION 321
|
||||||
|
SI_FIGHTINGSPIRIT 322
|
||||||
|
SI_ABUNDANCE 323
|
||||||
|
SI_REUSE_MILLENNIUMSHIELD 324
|
||||||
|
SI_REUSE_CRUSHSTRIKE 325
|
||||||
|
SI_REUSE_REFRESH 326
|
||||||
|
SI_REUSE_STORMBLAST 327
|
||||||
|
SI_VENOMIMPRESS 328
|
||||||
|
SI_EPICLESIS 329
|
||||||
|
SI_ORATIO 330
|
||||||
|
SI_LAUDAAGNUS 331
|
||||||
|
SI_LAUDARAMUS 332
|
||||||
|
SI_CLOAKINGEXCEED 333
|
||||||
|
SI_HALLUCINATIONWALK 334
|
||||||
|
SI_HALLUCINATIONWALK_POSTDELAY 335
|
||||||
|
SI_RENOVATIO 336
|
||||||
|
SI_WEAPONBLOCKING 337
|
||||||
|
SI_WEAPONBLOCKING_POSTDELAY 338
|
||||||
|
SI_ROLLINGCUTTER 339
|
||||||
|
SI_EXPIATIO 340
|
||||||
|
SI_POISONINGWEAPON 341
|
||||||
|
SI_TOXIN 342
|
||||||
|
SI_PARALYSE 343
|
||||||
|
SI_VENOMBLEED 344
|
||||||
|
SI_MAGICMUSHROOM 345
|
||||||
|
SI_DEATHHURT 346
|
||||||
|
SI_PYREXIA 347
|
||||||
|
SI_OBLIVIONCURSE 348
|
||||||
|
SI_LEECHESEND 349
|
||||||
|
SI_DUPLELIGHT 350
|
||||||
|
SI_FROSTMISTY 351
|
||||||
|
SI_FEARBREEZE 352
|
||||||
|
SI_ELECTRICSHOCKER 353
|
||||||
|
SI_MARSHOFABYSS 354
|
||||||
|
SI_RECOGNIZEDSPELL 355
|
||||||
|
SI_STASIS 356
|
||||||
|
SI_WUGRIDER 357
|
||||||
|
SI_WUGDASH 358
|
||||||
|
SI_WUGBITE 359
|
||||||
|
SI_CAMOUFLAGE 360
|
||||||
|
SI_ACCELERATION 361
|
||||||
|
SI_HOVERING 362
|
||||||
|
SI_SPHERE_1 363
|
||||||
|
SI_SPHERE_2 364
|
||||||
|
SI_SPHERE_3 365
|
||||||
|
SI_SPHERE_4 366
|
||||||
|
SI_SPHERE_5 367
|
||||||
|
SI_MVPCARD_TAOGUNKA 368
|
||||||
|
SI_MVPCARD_MISTRESS 369
|
||||||
|
SI_MVPCARD_ORCHERO 370
|
||||||
|
SI_MVPCARD_ORCLORD 371
|
||||||
|
SI_OVERHEAT_LIMITPOINT 372
|
||||||
|
SI_OVERHEAT 373
|
||||||
|
SI_SHAPESHIFT 374
|
||||||
|
SI_INFRAREDSCAN 375
|
||||||
|
SI_MAGNETICFIELD 376
|
||||||
|
SI_NEUTRALBARRIER 377
|
||||||
|
SI_NEUTRALBARRIER_MASTER 378
|
||||||
|
SI_STEALTHFIELD 379
|
||||||
|
SI_STEALTHFIELD_MASTER 380
|
||||||
|
SI_MANU_ATK 381
|
||||||
|
SI_MANU_DEF 382
|
||||||
|
SI_SPL_ATK 383
|
||||||
|
SI_SPL_DEF 384
|
||||||
|
SI_REPRODUCE 385
|
||||||
|
SI_MANU_MATK 386
|
||||||
|
SI_SPL_MATK 387
|
||||||
|
SI_STR_SCROLL 388
|
||||||
|
SI_INT_SCROLL 389
|
||||||
|
SI_LG_REFLECTDAMAGE 390
|
||||||
|
SI_FORCEOFVANGUARD 391
|
||||||
|
SI_BUCHEDENOEL 392
|
||||||
|
SI_AUTOSHADOWSPELL 393
|
||||||
|
SI_SHADOWFORM 394
|
||||||
|
SI_RAID 395
|
||||||
|
SI_SHIELDSPELL_DEF 396
|
||||||
|
SI_SHIELDSPELL_MDEF 397
|
||||||
|
SI_SHIELDSPELL_REF 398
|
||||||
|
SI_BODYPAINT 399
|
||||||
|
SI_EXEEDBREAK 400
|
||||||
|
SI_ADORAMUS 401
|
||||||
|
SI_PRESTIGE 402
|
||||||
|
SI_INVISIBILITY 403
|
||||||
|
SI_DEADLYINFECT 404
|
||||||
|
SI_BANDING 405
|
||||||
|
SI_EARTHDRIVE 406
|
||||||
|
SI_INSPIRATION 407
|
||||||
|
SI_ENERVATION 408
|
||||||
|
SI_GROOMY 409
|
||||||
|
SI_RAISINGDRAGON 410
|
||||||
|
SI_IGNORANCE 411
|
||||||
|
SI_LAZINESS 412
|
||||||
|
SI_LIGHTNINGWALK 413
|
||||||
|
SI_ACARAJE 414
|
||||||
|
SI_UNLUCKY 415
|
||||||
|
SI_CURSEDCIRCLE_ATKER 416
|
||||||
|
SI_CURSEDCIRCLE_TARGET 417
|
||||||
|
SI_WEAKNESS 418
|
||||||
|
SI_CRESCENTELBOW 419
|
||||||
|
SI_NOEQUIPACCESSARY 420
|
||||||
|
SI_STRIPACCESSARY 421
|
||||||
|
SI_MANHOLE 422
|
||||||
|
SI_POPECOOKIE 423
|
||||||
|
SI_FALLENEMPIRE 424
|
||||||
|
SI_GENTLETOUCH_ENERGYGAIN 425
|
||||||
|
SI_GENTLETOUCH_CHANGE 426
|
||||||
|
SI_GENTLETOUCH_REVITALIZE 427
|
||||||
|
SI_BLOODYLUST 428
|
||||||
|
SI_SWINGDANCE 429
|
||||||
|
SI_SYMPHONYOFLOVERS 430
|
||||||
|
SI_PROPERTYWALK 431
|
||||||
|
SI_SPELLFIST 432
|
||||||
|
SI_NETHERWORLD 433
|
||||||
|
SI_VOICEOFSIREN 434
|
||||||
|
SI_DEEPSLEEP 435
|
||||||
|
SI_SIRCLEOFNATURE 436
|
||||||
|
SI_COLD 437
|
||||||
|
SI_GLOOMYDAY 438
|
||||||
|
SI_SONGOFMANA 439
|
||||||
|
SI_CLOUDKILL 440
|
||||||
|
SI_DANCEWITHWUG 441
|
||||||
|
SI_RUSHWINDMILL 442
|
||||||
|
SI_ECHOSONG 443
|
||||||
|
SI_HARMONIZE 444
|
||||||
|
SI_STRIKING 445
|
||||||
|
SI_WARMER 446
|
||||||
|
SI_MOONLITSERENADE 447
|
||||||
|
SI_SATURDAYNIGHTFEVER 448
|
||||||
|
SI_SITDOWN_FORCE 449
|
||||||
|
SI_ANALYZE 450
|
||||||
|
SI_LERADSDEW 451
|
||||||
|
SI_MELODYOFSINK 452
|
||||||
|
SI_WARCRYOFBEYOND 453
|
||||||
|
SI_UNLIMITEDHUMMINGVOICE 454
|
||||||
|
SI_SPELLBOOK1 455
|
||||||
|
SI_SPELLBOOK2 456
|
||||||
|
SI_SPELLBOOK3 457
|
||||||
|
SI_FREEZE_SP 458
|
||||||
|
SI_GN_TRAINING_SWORD 459
|
||||||
|
SI_GN_REMODELING_CART 460
|
||||||
|
SI_CARTSBOOST 461
|
||||||
|
SI_FIXEDCASTINGTM_REDUCE 462
|
||||||
|
SI_THORNTRAP 463
|
||||||
|
SI_BLOODSUCKER 464
|
||||||
|
SI_SPORE_EXPLOSION 465
|
||||||
|
SI_DEMONIC_FIRE 466
|
||||||
|
SI_FIRE_EXPANSION_SMOKE_POWDER 467
|
||||||
|
SI_FIRE_EXPANSION_TEAR_GAS 468
|
||||||
|
SI_BLOCKING_PLAY 469
|
||||||
|
SI_MANDRAGORA 470
|
||||||
|
SI_ACTIVATE 471
|
||||||
|
SI_SECRAMENT 472
|
||||||
|
SI_ASSUMPTIO2 473
|
||||||
|
SI_TK_SEVENWIND 474
|
||||||
|
SI_LIMIT_ODINS_RECALL 475
|
||||||
|
SI_STOMACHACHE 476
|
||||||
|
SI_MYSTERIOUS_POWDER 477
|
||||||
|
SI_MELON_BOMB 478
|
||||||
|
SI_BANANA_BOMB_SITDOWN_POSTDELAY 479
|
||||||
|
SI_PROMOTE_HEALTH_RESERCH 480
|
||||||
|
SI_ENERGY_DRINK_RESERCH 481
|
||||||
|
SI_EXTRACT_WHITE_POTION_Z 482
|
||||||
|
SI_VITATA_500 483
|
||||||
|
SI_EXTRACT_SALAMINE_JUICE 484
|
||||||
|
SI_BOOST500 485
|
||||||
|
SI_FULL_SWING_K 486
|
||||||
|
SI_MANA_PLUS 487
|
||||||
|
SI_MUSTLE_M 488
|
||||||
|
SI_LIFE_FORCE_F 489
|
||||||
|
SI_VACUUM_EXTREME 490
|
||||||
|
SI_SAVAGE_STEAK 491
|
||||||
|
SI_COCKTAIL_WARG_BLOOD 492
|
||||||
|
SI_MINOR_BBQ 493
|
||||||
|
SI_SIROMA_ICE_TEA 494
|
||||||
|
SI_DROCERA_HERB_STEAMED 495
|
||||||
|
SI_PUTTI_TAILS_NOODLES 496
|
||||||
|
SI_BANANA_BOMB 497
|
||||||
|
SI_SUMMON_AGNI 498
|
||||||
|
SI_SPELLBOOK4 499
|
||||||
|
SI_SPELLBOOK5 500
|
||||||
|
SI_SPELLBOOK6 501
|
||||||
|
SI_SPELLBOOK7 502
|
||||||
|
SI_ELEMENTAL_AGGRESSIVE 503
|
||||||
|
SI_RETURN_TO_ELDICASTES 504
|
||||||
|
SI_BANDING_DEFENCE 505
|
||||||
|
SI_SKELSCROLL 506
|
||||||
|
SI_DISTRUCTIONSCROLL 507
|
||||||
|
SI_ROYALSCROLL 508
|
||||||
|
SI_IMMUNITYSCROLL 509
|
||||||
|
SI_MYSTICSCROLL 510
|
||||||
|
SI_BATTLESCROLL 511
|
||||||
|
SI_ARMORSCROLL 512
|
||||||
|
SI_FREYJASCROLL 513
|
||||||
|
SI_SOULSCROLL 514
|
||||||
|
SI_CIRCLE_OF_FIRE 515
|
||||||
|
SI_CIRCLE_OF_FIRE_OPTION 516
|
||||||
|
SI_FIRE_CLOAK 517
|
||||||
|
SI_FIRE_CLOAK_OPTION 518
|
||||||
|
SI_WATER_SCREEN 519
|
||||||
|
SI_WATER_SCREEN_OPTION 520
|
||||||
|
SI_WATER_DROP 521
|
||||||
|
SI_WATER_DROP_OPTION 522
|
||||||
|
SI_WIND_STEP 523
|
||||||
|
SI_WIND_STEP_OPTION 524
|
||||||
|
SI_WIND_CURTAIN 525
|
||||||
|
SI_WIND_CURTAIN_OPTION 526
|
||||||
|
SI_WATER_BARRIER 527
|
||||||
|
SI_ZEPHYR 528
|
||||||
|
SI_SOLID_SKIN 529
|
||||||
|
SI_SOLID_SKIN_OPTION 530
|
||||||
|
SI_STONE_SHIELD 531
|
||||||
|
SI_STONE_SHIELD_OPTION 532
|
||||||
|
SI_POWER_OF_GAIA 533
|
||||||
|
SI_EL_WAIT 534
|
||||||
|
SI_EL_PASSIVE 535
|
||||||
|
SI_EL_DEFENSIVE 536
|
||||||
|
SI_EL_OFFENSIVE 537
|
||||||
|
SI_EL_COST 538
|
||||||
|
SI_PYROTECHNIC 539
|
||||||
|
SI_PYROTECHNIC_OPTION 540
|
||||||
|
SI_HEATER 541
|
||||||
|
SI_HEATER_OPTION 542
|
||||||
|
SI_TROPIC 543
|
||||||
|
SI_TROPIC_OPTION 544
|
||||||
|
SI_AQUAPLAY 545
|
||||||
|
SI_AQUAPLAY_OPTION 546
|
||||||
|
SI_COOLER 547
|
||||||
|
SI_COOLER_OPTION 548
|
||||||
|
SI_CHILLY_AIR 549
|
||||||
|
SI_CHILLY_AIR_OPTION 550
|
||||||
|
SI_GUST 551
|
||||||
|
SI_GUST_OPTION 552
|
||||||
|
SI_BLAST 553
|
||||||
|
SI_BLAST_OPTION 554
|
||||||
|
SI_WILD_STORM 555
|
||||||
|
SI_WILD_STORM_OPTION 556
|
||||||
|
SI_PETROLOGY 557
|
||||||
|
SI_PETROLOGY_OPTION 558
|
||||||
|
SI_CURSED_SOIL 559
|
||||||
|
SI_CURSED_SOIL_OPTION 560
|
||||||
|
SI_UPHEAVAL 561
|
||||||
|
SI_UPHEAVAL_OPTION 562
|
||||||
|
SI_TIDAL_WEAPON 563
|
||||||
|
SI_TIDAL_WEAPON_OPTION 564
|
||||||
|
SI_ROCK_CRUSHER 565
|
||||||
|
SI_ROCK_CRUSHER_ATK 566
|
||||||
|
SI_FIRE_INSIGNIA 567
|
||||||
|
SI_WATER_INSIGNIA 568
|
||||||
|
SI_WIND_INSIGNIA 569
|
||||||
|
SI_EARTH_INSIGNIA 570
|
||||||
|
SI_EQUIPED_FLOOR 571
|
||||||
|
SI_GUARDIAN_RECALL 572
|
||||||
|
SI_MORA_BUFF 573
|
||||||
|
SI_REUSE_LIMIT_G 574
|
||||||
|
SI_REUSE_LIMIT_H 575
|
||||||
|
SI_NEEDLE_OF_PARALYZE 576
|
||||||
|
SI_PAIN_KILLER 577
|
||||||
|
SI_G_LIFEPOTION 578
|
||||||
|
SI_VITALIZE_POTION 579
|
||||||
|
SI_LIGHT_OF_REGENE 580
|
||||||
|
SI_OVERED_BOOST 581
|
||||||
|
SI_SILENT_BREEZE 582
|
||||||
|
SI_ODINS_POWER 583
|
||||||
|
SI_STYLE_CHANGE 584
|
||||||
|
SI_SONIC_CLAW_POSTDELAY 585
|
||||||
|
SI_SILVERVEIN_RUSH_POSTDELAY 596
|
||||||
|
SI_MIDNIGHT_FRENZY_POSTDELAY 597
|
||||||
|
SI_GOLDENE_FERSE 598
|
||||||
|
SI_ANGRIFFS_MODUS 599
|
||||||
|
SI_TINDER_BREAKER 600
|
||||||
|
SI_TINDER_BREAKER_POSTDELAY 601
|
||||||
|
SI_CBC 602
|
||||||
|
SI_CBC_POSTDELAY 603
|
||||||
|
SI_EQC 604
|
||||||
|
SI_MAGMA_FLOW 605
|
||||||
|
SI_GRANITIC_ARMOR 606
|
||||||
|
SI_PYROCLASTIC 607
|
||||||
|
SI_VOLCANIC_ASH 608
|
||||||
|
SI_SPIRITS_SAVEINFO1 609
|
||||||
|
SI_SPIRITS_SAVEINFO2 610
|
||||||
|
SI_MAGIC_CANDY 611
|
||||||
|
SI_SEARCH_STORE_INFO 612
|
||||||
|
SI_ALL_RIDING 613
|
||||||
|
SI_ALL_RIDING_REUSE_LIMIT 614
|
||||||
|
SI_MACRO 615
|
||||||
|
SI_MACRO_POSTDELAY 616
|
||||||
|
SI_BEER_BOTTLE_CAP 617
|
||||||
|
SI_OVERLAPEXPUP 618
|
||||||
|
SI_PC_IZ_DUN05 619
|
||||||
|
SI_CRUSHSTRIKE 620
|
||||||
|
SI_MONSTER_TRANSFORM 621
|
||||||
|
SI_SIT 622
|
||||||
|
SI_ONAIR 623
|
||||||
|
SI_MTF_ASPD 624
|
||||||
|
SI_MTF_RANGEATK 625
|
||||||
|
SI_MTF_MATK 626
|
||||||
|
SI_MTF_MLEATKED 627
|
||||||
|
SI_MTF_CRIDAMAGE 628
|
||||||
|
SI_REUSE_LIMIT_MTF 629
|
||||||
|
SI_MACRO_PERMIT 630
|
||||||
|
SI_MACRO_PLAY 631
|
||||||
|
SI_SKF_CAST 632
|
||||||
|
SI_SKF_ASPD 633
|
||||||
|
SI_SKF_ATK 634
|
||||||
|
SI_SKF_MATK 635
|
||||||
|
SI_REWARD_PLUSONLYJOBEXP 636
|
||||||
|
SI_HANDICAPSTATE_NORECOVER 637
|
||||||
|
SI_SET_NUM_DEF 638
|
||||||
|
SI_SET_NUM_MDEF 639
|
||||||
|
SI_SET_PER_DEF 640
|
||||||
|
SI_SET_PER_MDEF 641
|
||||||
|
SI_PARTYBOOKING_SEARCH_DEALY 642
|
||||||
|
SI_PARTYBOOKING_REGISTER_DEALY 643
|
||||||
|
SI_PERIOD_TIME_CHECK_DETECT_SKILL 644
|
||||||
|
SI_KO_JYUMONJIKIRI 645
|
||||||
|
SI_MEIKYOUSISUI 646
|
||||||
|
SI_ATTHASTE_CASH 647
|
||||||
|
SI_EQUIPPED_DIVINE_ARMOR 648
|
||||||
|
SI_EQUIPPED_HOLY_ARMOR 649
|
||||||
|
SI_2011RWC 650
|
||||||
|
SI_KYOUGAKU 651
|
||||||
|
SI_IZAYOI 652
|
||||||
|
SI_ZENKAI 653
|
||||||
|
SI_KG_KAGEHUMI 654
|
||||||
|
SI_KYOMU 655
|
||||||
|
SI_KAGEMUSYA 656
|
||||||
|
SI_ZANGETSU 657
|
||||||
|
SI_PHI_DEMON 658
|
||||||
|
SI_GENSOU 659
|
||||||
|
SI_AKAITSUKI 660
|
||||||
|
SI_TETANY 661
|
||||||
|
SI_GM_BATTLE 662
|
||||||
|
SI_GM_BATTLE2 663
|
||||||
|
SI_2011RWC_SCROLL 664
|
||||||
|
SI_ACTIVE_MONSTER_TRANSFORM 665
|
||||||
|
SI_MYSTICPOWDER 666
|
||||||
|
SI_ECLAGE_RECALL 667
|
||||||
|
SI_ENTRY_QUEUE_APPLY_DELAY 668
|
||||||
|
SI_REUSE_LIMIT_ECL 669
|
||||||
|
SI_M_LIFEPOTION 670
|
||||||
|
SI_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT 671
|
||||||
|
SI_UNKNOWN_NAME 672
|
||||||
|
SI_ON_PUSH_CART 673
|
||||||
|
SI_HAT_EFFECT 674
|
||||||
|
SI_FLOWER_LEAF 675
|
||||||
|
SI_RAY_OF_PROTECTION 676
|
||||||
|
SI_GLASTHEIM_ATK 677
|
||||||
|
SI_GLASTHEIM_DEF 678
|
||||||
|
SI_GLASTHEIM_HEAL 679
|
||||||
|
SI_GLASTHEIM_HIDDEN 680
|
||||||
|
SI_GLASTHEIM_STATE 681
|
||||||
|
SI_GLASTHEIM_ITEMDEF 682
|
||||||
|
SI_GLASTHEIM_HPSP 683
|
||||||
|
SI_HOMUN_SKILL_POSTDELAY 684
|
||||||
|
SI_ALMIGHTY 685
|
||||||
|
SI_GVG_GIANT 686
|
||||||
|
SI_GVG_GOLEM 687
|
||||||
|
SI_GVG_STUN 688
|
||||||
|
SI_GVG_STONE 689
|
||||||
|
SI_GVG_FREEZ 690
|
||||||
|
SI_GVG_SLEEP 691
|
||||||
|
SI_GVG_CURSE 692
|
||||||
|
SI_GVG_SILENCE 693
|
||||||
|
SI_GVG_BLIND 694
|
||||||
|
SI_CLIENT_ONLY_EQUIP_ARROW 695
|
||||||
|
SI_CLAN_INFO 696
|
||||||
|
SI_JP_EVENT01 697
|
||||||
|
SI_JP_EVENT02 698
|
||||||
|
SI_JP_EVENT03 699
|
||||||
|
SI_JP_EVENT04 700
|
||||||
|
SI_TELEPORT_FIXEDCASTINGDELAY 701
|
||||||
|
SI_GEFFEN_MAGIC1 702
|
||||||
|
SI_GEFFEN_MAGIC2 703
|
||||||
|
SI_GEFFEN_MAGIC3 704
|
||||||
|
SI_QUEST_BUFF1 705
|
||||||
|
SI_QUEST_BUFF2 706
|
||||||
|
SI_QUEST_BUFF3 707
|
||||||
|
SI_REUSE_LIMIT_RECALL 708
|
||||||
|
SI_SAVEPOSITION 709
|
||||||
|
SI_HANDICAPSTATE_ICEEXPLO 710
|
||||||
|
SI_FENRIR_CARD 711
|
||||||
|
SI_REUSE_LIMIT_ASPD_POTION 712
|
||||||
|
SI_MAXPAIN 713
|
||||||
|
SI_PC_STOP 714
|
||||||
|
SI_FRIGG_SONG 715
|
||||||
|
SI_OFFERTORIUM 716
|
||||||
|
SI_TELEKINESIS_INTENSE 717
|
||||||
|
SI_MOONSTAR 718
|
||||||
|
SI_STRANGELIGHTS 719
|
||||||
|
SI_FULL_THROTTLE 720
|
||||||
|
SI_REBOUND 721
|
||||||
|
SI_UNLIMIT 722
|
||||||
|
SI_KINGS_GRACE 723
|
||||||
|
SI_ITEM_ATKMAX 724
|
||||||
|
SI_ITEM_ATKMIN 725
|
||||||
|
SI_ITEM_MATKMAX 726
|
||||||
|
SI_ITEM_MATKMIN 727
|
||||||
|
SI_SUPER_STAR 728
|
||||||
|
SI_HIGH_RANKER 729
|
||||||
|
SI_DARKCROW 730
|
||||||
|
SI_2013_VALENTINE1 731
|
||||||
|
SI_2013_VALENTINE2 732
|
||||||
|
SI_2013_VALENTINE3 733
|
||||||
|
SI_ILLUSIONDOPING 734
|
||||||
|
SI_WIDEWEB 735
|
||||||
|
SI_CHILL 736
|
||||||
|
SI_BURNT 737
|
||||||
|
SI_PCCAFE_PLAY_TIME 738
|
||||||
|
SI_TWISTED_TIME 739
|
||||||
|
SI_FLASHCOMBO 740
|
||||||
|
SI_JITTER_BUFF1 741
|
||||||
|
SI_JITTER_BUFF2 742
|
||||||
|
SI_JITTER_BUFF3 743
|
||||||
|
SI_JITTER_BUFF4 744
|
||||||
|
SI_JITTER_BUFF5 745
|
||||||
|
SI_JITTER_BUFF6 746
|
||||||
|
SI_JITTER_BUFF7 747
|
||||||
|
SI_JITTER_BUFF8 748
|
||||||
|
SI_JITTER_BUFF9 749
|
||||||
|
SI_JITTER_BUFF10 750
|
||||||
|
SI_CUP_OF_BOZA 751
|
||||||
|
SI_B_TRAP 752
|
||||||
|
SI_E_CHAIN 753
|
||||||
|
SI_E_QD_SHOT_READY 754
|
||||||
|
SI_C_MARKER 755
|
||||||
|
SI_H_MINE 756
|
||||||
|
SI_H_MINE_SPLASH 757
|
||||||
|
SI_P_ALTER 758
|
||||||
|
SI_HEAT_BARREL 759
|
||||||
|
SI_ANTI_M_BLAST 760
|
||||||
|
SI_SLUGSHOT 761
|
||||||
|
SI_SWORDCLAN 762
|
||||||
|
SI_ARCWANDCLAN 763
|
||||||
|
SI_GOLDENMACECLAN 764
|
||||||
|
SI_CROSSBOWCLAN 765
|
||||||
|
SI_PACKING_ENVELOPE1 766
|
||||||
|
SI_PACKING_ENVELOPE2 767
|
||||||
|
SI_PACKING_ENVELOPE3 768
|
||||||
|
SI_PACKING_ENVELOPE4 769
|
||||||
|
SI_PACKING_ENVELOPE5 770
|
||||||
|
SI_PACKING_ENVELOPE6 771
|
||||||
|
SI_PACKING_ENVELOPE7 772
|
||||||
|
SI_PACKING_ENVELOPE8 773
|
||||||
|
SI_PACKING_ENVELOPE9 774
|
||||||
|
SI_PACKING_ENVELOPE10 775
|
||||||
|
SI_GLASTHEIM_TRANS 776
|
||||||
|
SI_ZONGZI_POUCH_TRANS 777
|
||||||
|
SI_HEAT_BARREL_AFTER 778
|
||||||
|
SI_DECORATION_OF_MUSIC 779
|
||||||
|
|
||||||
e_gasp 0
|
e_gasp 0
|
||||||
e_what 1
|
e_what 1
|
||||||
e_ho 2
|
e_ho 2
|
||||||
|
@ -5146,7 +5146,7 @@ autobonus and autobonus3).
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
*bonus_script "<script code>",<duration>{,<flag>{,<type>{,<char_id>}}};
|
*bonus_script "<script code>",<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}};
|
||||||
|
|
||||||
This command will attach a script to a player for a given duration, in seconds.
|
This command will attach a script to a player for a given duration, in seconds.
|
||||||
After that time, the script will automatically expire. The same bonus cannot be
|
After that time, the script will automatically expire. The same bonus cannot be
|
||||||
@ -5156,15 +5156,19 @@ logs out.
|
|||||||
Note that the maximum number of 'bonus_script' commands that can run simultaneously
|
Note that the maximum number of 'bonus_script' commands that can run simultaneously
|
||||||
for a player is 10 (MAX_PC_BONUS_SCRIPT in 'src/map/pc.h').
|
for a player is 10 (MAX_PC_BONUS_SCRIPT in 'src/map/pc.h').
|
||||||
|
|
||||||
Flags:
|
Flags: (Default is 0)
|
||||||
&1: Remove when dead.
|
&1: Remove when dead.
|
||||||
&2: Removable by Dispell.
|
&2: Removable by Dispell.
|
||||||
&4: Removable by Clearance.
|
&4: Removable by Clearance.
|
||||||
&8: Remove when player logs out.
|
&8: Remove when player logs out.
|
||||||
|
|
||||||
Types:
|
Types:
|
||||||
0: Buff
|
This will be used to decide negative or positive buff for 'debuff_on_logout'
|
||||||
1: Debuff
|
0: Ignore the buff type and won't be removed if the flag is not &8 (Default)
|
||||||
|
1: Buff
|
||||||
|
2: Debuff
|
||||||
|
|
||||||
|
Status_icon: See db/const.txt at 'Status Icon'. Default is SI_BLANK or -1
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
// Apple gives you +5 Str bonus for 1 minute when it's consumed.
|
// Apple gives you +5 Str bonus for 1 minute when it's consumed.
|
||||||
|
@ -705,9 +705,10 @@ INSERT INTO `interreg` (`varname`, `value`) VALUES
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `bonus_script` (
|
CREATE TABLE IF NOT EXISTS `bonus_script` (
|
||||||
`char_id` int(11) NOT NULL,
|
`char_id` varchar(11) NOT NULL,
|
||||||
`script` varchar(1024) NOT NULL,
|
`script` varchar(1024) NOT NULL,
|
||||||
`tick` int(11) NOT NULL,
|
`tick` varchar(11) NOT NULL DEFAULT '0',
|
||||||
`flag` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
`flag` varchar(3) NOT NULL DEFAULT '0',
|
||||||
`type` tinyint(1) unsigned NOT NULL DEFAULT '0'
|
`type` char(1) NOT NULL DEFAULT '0',
|
||||||
|
`icon` varchar(3) NOT NULL DEFAULT '-1'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
5
sql-files/upgrades/upgrade_20131227.sql
Normal file
5
sql-files/upgrades/upgrade_20131227.sql
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE `bonus_script` CHANGE `char_id` `char_id` VARCHAR( 11 ) NOT NULL;
|
||||||
|
ALTER TABLE `bonus_script` CHANGE `tick` `tick` VARCHAR( 11 ) NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `bonus_script` CHANGE `flag` `flag` VARCHAR( 3 ) NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `bonus_script` CHANGE `type` `type` CHAR( 1 ) NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `bonus_script` ADD `icon` VARCHAR( 3 ) NOT NULL DEFAULT '-1';
|
@ -5202,7 +5202,7 @@ void bonus_script_get(int fd) {
|
|||||||
cid = RFIFOL(fd,2);
|
cid = RFIFOL(fd,2);
|
||||||
RFIFOSKIP(fd,6);
|
RFIFOSKIP(fd,6);
|
||||||
|
|
||||||
if (SQL_ERROR == Sql_Query(sql_handle,"SELECT `script`, `tick`, `flag`, `type` FROM `%s` WHERE `char_id`='%d'",
|
if (SQL_ERROR == Sql_Query(sql_handle,"SELECT `script`, `tick`, `flag`, `type`, `icon` FROM `%s` WHERE `char_id`='%d'",
|
||||||
bonus_script_db,cid))
|
bonus_script_db,cid))
|
||||||
{
|
{
|
||||||
Sql_ShowDebug(sql_handle);
|
Sql_ShowDebug(sql_handle);
|
||||||
@ -5221,9 +5221,10 @@ void bonus_script_get(int fd) {
|
|||||||
Sql_GetData(sql_handle,1,&data,NULL); bsdata.tick = atoi(data);
|
Sql_GetData(sql_handle,1,&data,NULL); bsdata.tick = atoi(data);
|
||||||
Sql_GetData(sql_handle,2,&data,NULL); bsdata.flag = atoi(data);
|
Sql_GetData(sql_handle,2,&data,NULL); bsdata.flag = atoi(data);
|
||||||
Sql_GetData(sql_handle,3,&data,NULL); bsdata.type = atoi(data);
|
Sql_GetData(sql_handle,3,&data,NULL); bsdata.type = atoi(data);
|
||||||
|
Sql_GetData(sql_handle,4,&data,NULL); bsdata.icon = atoi(data);
|
||||||
memcpy(WFIFOP(fd,10+count*sizeof(struct bonus_script_data)),&bsdata,sizeof(struct bonus_script_data));
|
memcpy(WFIFOP(fd,10+count*sizeof(struct bonus_script_data)),&bsdata,sizeof(struct bonus_script_data));
|
||||||
}
|
}
|
||||||
if (count >= 50)
|
if (count >= 20)
|
||||||
ShowWarning("Too many bonus_script for %d, some of them were not loaded.\n",cid);
|
ShowWarning("Too many bonus_script for %d, some of them were not loaded.\n",cid);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
WFIFOW(fd,2) = 10 + count*sizeof(struct bonus_script_data);
|
WFIFOW(fd,2) = 10 + count*sizeof(struct bonus_script_data);
|
||||||
@ -5233,6 +5234,7 @@ void bonus_script_get(int fd) {
|
|||||||
//Clear the data once loaded.
|
//Clear the data once loaded.
|
||||||
if (SQL_ERROR == Sql_Query(sql_handle,"DELETE FROM `%s` WHERE `char_id`='%d'",bonus_script_db,cid))
|
if (SQL_ERROR == Sql_Query(sql_handle,"DELETE FROM `%s` WHERE `char_id`='%d'",bonus_script_db,cid))
|
||||||
Sql_ShowDebug(sql_handle);
|
Sql_ShowDebug(sql_handle);
|
||||||
|
ShowInfo("Loaded %d bonus_script for char_id: %d\n",count,cid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Sql_FreeResult(sql_handle);
|
Sql_FreeResult(sql_handle);
|
||||||
@ -5259,17 +5261,18 @@ void bonus_script_save(int fd) {
|
|||||||
char esc_script[MAX_BONUS_SCRIPT_LENGTH] = "";
|
char esc_script[MAX_BONUS_SCRIPT_LENGTH] = "";
|
||||||
|
|
||||||
StringBuf_Init(&buf);
|
StringBuf_Init(&buf);
|
||||||
StringBuf_Printf(&buf,"INSERT INTO `%s` (`char_id`, `script`, `tick`, `flag`, `type`) VALUES ",bonus_script_db);
|
StringBuf_Printf(&buf,"INSERT INTO `%s` (`char_id`, `script`, `tick`, `flag`, `type`, `icon`) VALUES ",bonus_script_db);
|
||||||
for (i = 0; i < count; ++i) {
|
for (i = 0; i < count; ++i) {
|
||||||
memcpy(&bs,RFIFOP(fd,10+i*sizeof(struct bonus_script_data)),sizeof(struct bonus_script_data));
|
memcpy(&bs,RFIFOP(fd,10+i*sizeof(struct bonus_script_data)),sizeof(struct bonus_script_data));
|
||||||
Sql_EscapeString(sql_handle,esc_script,bs.script);
|
Sql_EscapeString(sql_handle,esc_script,bs.script);
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
StringBuf_AppendStr(&buf,", ");
|
StringBuf_AppendStr(&buf,", ");
|
||||||
StringBuf_Printf(&buf,"(%d,'%s',%d,%d,%d)",cid,esc_script,bs.tick,bs.flag,bs.type);
|
StringBuf_Printf(&buf,"('%d','%s','%d','%d','%d','%d')",cid,esc_script,bs.tick,bs.flag,bs.type,bs.icon);
|
||||||
}
|
}
|
||||||
if (SQL_ERROR == Sql_QueryStr(sql_handle,StringBuf_Value(&buf)))
|
if (SQL_ERROR == Sql_QueryStr(sql_handle,StringBuf_Value(&buf)))
|
||||||
Sql_ShowDebug(sql_handle);
|
Sql_ShowDebug(sql_handle);
|
||||||
StringBuf_Destroy(&buf);
|
StringBuf_Destroy(&buf);
|
||||||
|
ShowInfo("Saved %d bonus_script for char_id: %d\n",count,cid);
|
||||||
}
|
}
|
||||||
RFIFOSKIP(fd,RFIFOW(fd,2));
|
RFIFOSKIP(fd,RFIFOW(fd,2));
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,8 @@ struct status_change_data {
|
|||||||
struct bonus_script_data {
|
struct bonus_script_data {
|
||||||
char script[MAX_BONUS_SCRIPT_LENGTH];
|
char script[MAX_BONUS_SCRIPT_LENGTH];
|
||||||
long tick;
|
long tick;
|
||||||
short type, flag;
|
char type;
|
||||||
|
short flag, icon;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct skill_cooldown_data {
|
struct skill_cooldown_data {
|
||||||
|
@ -1791,8 +1791,14 @@ int chrif_save_bsdata(struct map_session_data *sd) {
|
|||||||
WFIFOW(char_fd,0) = 0x2b2e;
|
WFIFOW(char_fd,0) = 0x2b2e;
|
||||||
WFIFOL(char_fd,4) = sd->status.char_id;
|
WFIFOL(char_fd,4) = sd->status.char_id;
|
||||||
|
|
||||||
//Clear un-saved data
|
i = BONUS_FLAG_REM_ON_LOGOUT; //Remove bonus with this flag
|
||||||
pc_bonus_script_check(sd,BONUS_FLAG_REM_ON_LOGOUT);
|
if (battle_config.debuff_on_logout&1) //Remove negative buffs
|
||||||
|
i |= BONUS_FLAG_REM_DEBUFF;
|
||||||
|
if (battle_config.debuff_on_logout&2) //Remove positive buffs
|
||||||
|
i |= BONUS_FLAG_REM_BUFF;
|
||||||
|
|
||||||
|
//Clear data that won't be stored
|
||||||
|
pc_bonus_script_clear(sd,i);
|
||||||
|
|
||||||
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) {
|
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) {
|
||||||
if (!(&sd->bonus_script[i]) || !sd->bonus_script[i].script || strlen(sd->bonus_script[i].script_str) == 0)
|
if (!(&sd->bonus_script[i]) || !sd->bonus_script[i].script || strlen(sd->bonus_script[i].script_str) == 0)
|
||||||
@ -1805,7 +1811,8 @@ int chrif_save_bsdata(struct map_session_data *sd) {
|
|||||||
memcpy(bs.script,sd->bonus_script[i].script_str,strlen(sd->bonus_script[i].script_str)+1);
|
memcpy(bs.script,sd->bonus_script[i].script_str,strlen(sd->bonus_script[i].script_str)+1);
|
||||||
bs.tick = DIFF_TICK(timer->tick,tick);
|
bs.tick = DIFF_TICK(timer->tick,tick);
|
||||||
bs.flag = sd->bonus_script[i].flag;
|
bs.flag = sd->bonus_script[i].flag;
|
||||||
bs.type = (sd->bonus_script[i].isBuff) ? 1 : 0;
|
bs.type = sd->bonus_script[i].type;
|
||||||
|
bs.icon = sd->bonus_script[i].icon;
|
||||||
|
|
||||||
memcpy(WFIFOP(char_fd,10+count*sizeof(struct bonus_script_data)),&bs,sizeof(struct bonus_script_data));
|
memcpy(WFIFOP(char_fd,10+count*sizeof(struct bonus_script_data)),&bs,sizeof(struct bonus_script_data));
|
||||||
delete_timer(sd->bonus_script[i].tid,pc_bonus_script_timer);
|
delete_timer(sd->bonus_script[i].tid,pc_bonus_script_timer);
|
||||||
@ -1858,7 +1865,10 @@ int chrif_load_bsdata(int fd) {
|
|||||||
sd->bonus_script[i].script = script;
|
sd->bonus_script[i].script = script;
|
||||||
sd->bonus_script[i].tick = gettick() + bs->tick;
|
sd->bonus_script[i].tick = gettick() + bs->tick;
|
||||||
sd->bonus_script[i].flag = (uint8)bs->flag;
|
sd->bonus_script[i].flag = (uint8)bs->flag;
|
||||||
sd->bonus_script[i].isBuff = (bs->type) ? true : false;
|
sd->bonus_script[i].type = bs->type;
|
||||||
|
sd->bonus_script[i].icon = bs->icon;
|
||||||
|
if (bs->icon != SI_BLANK) //Gives status icon if exist
|
||||||
|
clif_status_change(&sd->bl,sd->bonus_script[i].icon,1,bs->tick,1,0,0);
|
||||||
count_++;
|
count_++;
|
||||||
}
|
}
|
||||||
if (count_)
|
if (count_)
|
||||||
|
@ -1677,7 +1677,7 @@ int map_quit(struct map_session_data *sd) {
|
|||||||
status_change_end(&sd->bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_KYOUGAKU, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_KYOUGAKU, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_C_MARKER, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_C_MARKER, INVALID_TIMER);
|
||||||
if (battle_config.debuff_on_logout&1) {
|
if (battle_config.debuff_on_logout&1) { //Remove negative buffs
|
||||||
status_change_end(&sd->bl, SC_ORCISH, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_ORCISH, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_STRIPWEAPON, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_STRIPWEAPON, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_STRIPARMOR, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_STRIPARMOR, INVALID_TIMER);
|
||||||
@ -1697,7 +1697,7 @@ int map_quit(struct map_session_data *sd) {
|
|||||||
status_change_end(&sd->bl, SC_ANTI_M_BLAST, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_ANTI_M_BLAST, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_B_TRAP, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_B_TRAP, INVALID_TIMER);
|
||||||
}
|
}
|
||||||
if (battle_config.debuff_on_logout&2) {
|
if (battle_config.debuff_on_logout&2) { //Remove positive buffs
|
||||||
status_change_end(&sd->bl, SC_MAXIMIZEPOWER, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_MAXIMIZEPOWER, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_MAXOVERTHRUST, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_MAXOVERTHRUST, INVALID_TIMER);
|
||||||
status_change_end(&sd->bl, SC_STEELBODY, INVALID_TIMER);
|
status_change_end(&sd->bl, SC_STEELBODY, INVALID_TIMER);
|
||||||
|
31
src/map/pc.c
31
src/map/pc.c
@ -6936,7 +6936,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Remove bonus_script when dead
|
//Remove bonus_script when dead
|
||||||
pc_bonus_script_check(sd,BONUS_FLAG_REM_ON_DEAD);
|
pc_bonus_script_clear(sd,BONUS_FLAG_REM_ON_DEAD);
|
||||||
|
|
||||||
// changed penalty options, added death by player if pk_mode [Valaris]
|
// changed penalty options, added death by player if pk_mode [Valaris]
|
||||||
if(battle_config.death_penalty_type
|
if(battle_config.death_penalty_type
|
||||||
@ -10371,7 +10371,7 @@ enum e_BANKING_WITHDRAW_ACK pc_bank_withdraw(struct map_session_data *sd, int mo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear Cirmson Marker data from caster
|
* Clear Cirmson Marker data from caster
|
||||||
* @param sd
|
* @param sd: Player
|
||||||
**/
|
**/
|
||||||
void pc_crimson_marker_clear(struct map_session_data *sd) {
|
void pc_crimson_marker_clear(struct map_session_data *sd) {
|
||||||
uint8 i;
|
uint8 i;
|
||||||
@ -10388,7 +10388,7 @@ void pc_crimson_marker_clear(struct map_session_data *sd) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Show version to player
|
* Show version to player
|
||||||
* @param sd
|
* @param sd: Player
|
||||||
**/
|
**/
|
||||||
void pc_show_version(struct map_session_data *sd) {
|
void pc_show_version(struct map_session_data *sd) {
|
||||||
const char* svn = get_svn_revision();
|
const char* svn = get_svn_revision();
|
||||||
@ -10433,8 +10433,8 @@ int pc_bonus_script_timer(int tid, unsigned int tick, int id, intptr_t data) {
|
|||||||
|
|
||||||
/** [Cydh]
|
/** [Cydh]
|
||||||
* Remove bonus_script data from sd (not deleting timer)
|
* Remove bonus_script data from sd (not deleting timer)
|
||||||
* @param sd target
|
* @param sd: Target player
|
||||||
* @param i script index
|
* @param i: Bonus script index
|
||||||
**/
|
**/
|
||||||
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i) {
|
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i) {
|
||||||
if (!sd || i >= MAX_PC_BONUS_SCRIPT)
|
if (!sd || i >= MAX_PC_BONUS_SCRIPT)
|
||||||
@ -10446,32 +10446,39 @@ void pc_bonus_script_remove(struct map_session_data *sd, uint8 i) {
|
|||||||
sd->bonus_script[i].tick = 0;
|
sd->bonus_script[i].tick = 0;
|
||||||
sd->bonus_script[i].tid = 0;
|
sd->bonus_script[i].tid = 0;
|
||||||
sd->bonus_script[i].flag = 0;
|
sd->bonus_script[i].flag = 0;
|
||||||
|
clif_status_change(&sd->bl,sd->bonus_script[i].icon,0,0,0,0,0);
|
||||||
|
sd->bonus_script[i].icon = SI_BLANK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** [Cydh]
|
/** [Cydh]
|
||||||
* Clear all active timer(s) of bonus_script data from sd
|
* Check then clear all active timer(s) of bonus_script data from player based on reason
|
||||||
* @param sd target
|
* @param sd: Target player
|
||||||
* @param flag reason to remove the bonus_script
|
* @param flag: Reason to remove the bonus_script. e_bonus_script_flags or e_bonus_script_types
|
||||||
**/
|
**/
|
||||||
void pc_bonus_script_check(struct map_session_data *sd, enum e_bonus_script_flags flag) {
|
void pc_bonus_script_clear(struct map_session_data *sd, uint16 flag) {
|
||||||
uint8 i, count = 0;
|
uint8 i, count = 0;
|
||||||
if (!sd)
|
if (!sd)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) {
|
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) {
|
||||||
if (&sd->bonus_script[i] && sd->bonus_script[i].script && sd->bonus_script[i].flag&flag) {
|
if (&sd->bonus_script[i] && sd->bonus_script[i].script &&
|
||||||
|
(sd->bonus_script[i].flag&flag || //Remove bonus script based on e_bonus_script_flags
|
||||||
|
(sd->bonus_script[i].type &&
|
||||||
|
(flag&BONUS_FLAG_REM_BUFF && sd->bonus_script[i].type == 1) || //Remove bonus script based on buff type
|
||||||
|
(flag&BONUS_FLAG_REM_DEBUFF && sd->bonus_script[i].type == 2)))) //Remove bonus script based on debuff type
|
||||||
|
{
|
||||||
delete_timer(sd->bonus_script[i].tid,pc_bonus_script_timer);
|
delete_timer(sd->bonus_script[i].tid,pc_bonus_script_timer);
|
||||||
pc_bonus_script_remove(sd,i);
|
pc_bonus_script_remove(sd,i);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (count && flag != BONUS_FLAG_REM_ON_LOGOUT) //Don't need do this if log out
|
if (count && !(flag&BONUS_FLAG_REM_ON_LOGOUT)) //Don't need to do this if log out
|
||||||
status_calc_pc(sd,false);
|
status_calc_pc(sd,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** [Cydh]
|
/** [Cydh]
|
||||||
* Gives/removes SC_BASILICA when player steps in/out the cell with 'cell_basilica'
|
* Gives/removes SC_BASILICA when player steps in/out the cell with 'cell_basilica'
|
||||||
* @param sd player
|
* @param sd: Target player
|
||||||
*/
|
*/
|
||||||
void pc_cell_basilica(struct map_session_data *sd) {
|
void pc_cell_basilica(struct map_session_data *sd) {
|
||||||
nullpo_retv(sd);
|
nullpo_retv(sd);
|
||||||
|
13
src/map/pc.h
13
src/map/pc.h
@ -552,23 +552,24 @@ struct map_session_data {
|
|||||||
int id;
|
int id;
|
||||||
} dmglog[DAMAGELOG_SIZE_PC];
|
} dmglog[DAMAGELOG_SIZE_PC];
|
||||||
|
|
||||||
struct s_crimson_marker {
|
struct s_crimson_marker { ///Store target that marked by Crimson Marker [Cydh]
|
||||||
int target[MAX_SKILL_CRIMSON_MARKER]; //Target id storage
|
int target[MAX_SKILL_CRIMSON_MARKER]; //Target id storage
|
||||||
uint8 count; //Count of target for skill like RL_D_TAIL
|
uint8 count; //Count of target for skill like RL_D_TAIL
|
||||||
} c_marker;
|
} c_marker;
|
||||||
bool flicker;
|
bool flicker; ///Is Flicker Skill skill as player's last action? [Cydh]
|
||||||
|
|
||||||
int storage_size; // Holds player storage size (VIP system).
|
int storage_size; /// Holds player storage size (VIP system).
|
||||||
#ifdef VIP_ENABLE
|
#ifdef VIP_ENABLE
|
||||||
struct vip_info vip;
|
struct vip_info vip;
|
||||||
#endif
|
#endif
|
||||||
//Timed bonus 'bonus_script' struct [Cydh]
|
///Timed bonus 'bonus_script' struct [Cydh]
|
||||||
struct s_script {
|
struct s_script {
|
||||||
struct script_code *script;
|
struct script_code *script;
|
||||||
char script_str[MAX_BONUS_SCRIPT_LENGTH]; //Used for comparing and storing on table
|
char script_str[MAX_BONUS_SCRIPT_LENGTH]; //Used for comparing and storing on table
|
||||||
uint32 tick;
|
uint32 tick;
|
||||||
uint8 flag;
|
uint8 flag;
|
||||||
bool isBuff; //Can be used for deciding which bonus that buff or debuff
|
char type; //0 - Ignore; 1 - Buff; 2 - Debuff
|
||||||
|
int16 icon;
|
||||||
int tid;
|
int tid;
|
||||||
} bonus_script[MAX_PC_BONUS_SCRIPT];
|
} bonus_script[MAX_PC_BONUS_SCRIPT];
|
||||||
};
|
};
|
||||||
@ -1051,7 +1052,7 @@ void pc_show_version(struct map_session_data *sd);
|
|||||||
|
|
||||||
int pc_bonus_script_timer(int tid, unsigned int tick, int id, intptr_t data);
|
int pc_bonus_script_timer(int tid, unsigned int tick, int id, intptr_t data);
|
||||||
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i);
|
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i);
|
||||||
void pc_bonus_script_check(struct map_session_data *sd, enum e_bonus_script_flags flag);
|
void pc_bonus_script_clear(struct map_session_data *sd, uint16 flag);
|
||||||
|
|
||||||
void pc_cell_basilica(struct map_session_data *sd);
|
void pc_cell_basilica(struct map_session_data *sd);
|
||||||
|
|
||||||
|
@ -18212,7 +18212,7 @@ BUILDIN_FUNC(montransform) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** [Cydh]
|
/** [Cydh]
|
||||||
* bonus_script "<script code>",<duration>{,<flag>{,<type>{,<char_id>}}};
|
* bonus_script "<script code>",<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}};
|
||||||
* @param "script code"
|
* @param "script code"
|
||||||
* @param duration
|
* @param duration
|
||||||
* @param flag
|
* @param flag
|
||||||
@ -18220,14 +18220,15 @@ BUILDIN_FUNC(montransform) {
|
|||||||
**/
|
**/
|
||||||
BUILDIN_FUNC(bonus_script) {
|
BUILDIN_FUNC(bonus_script) {
|
||||||
uint8 i, flag = 0;
|
uint8 i, flag = 0;
|
||||||
|
int16 icon = SI_BLANK;
|
||||||
uint32 dur;
|
uint32 dur;
|
||||||
bool isBuff = true;
|
char type = 0;
|
||||||
TBL_PC* sd;
|
TBL_PC* sd;
|
||||||
const char *script_str = NULL;
|
const char *script_str = NULL;
|
||||||
struct script_code *script = NULL;
|
struct script_code *script = NULL;
|
||||||
|
|
||||||
if (script_hasdata(st,6))
|
if (script_hasdata(st,7))
|
||||||
sd = map_charid2sd(script_getnum(st,6));
|
sd = map_charid2sd(script_getnum(st,7));
|
||||||
else
|
else
|
||||||
sd = script_rid2sd(st);
|
sd = script_rid2sd(st);
|
||||||
|
|
||||||
@ -18237,8 +18238,8 @@ BUILDIN_FUNC(bonus_script) {
|
|||||||
script_str = script_getstr(st,2);
|
script_str = script_getstr(st,2);
|
||||||
dur = 1000 * abs(script_getnum(st,3));
|
dur = 1000 * abs(script_getnum(st,3));
|
||||||
FETCH(4,flag);
|
FETCH(4,flag);
|
||||||
if (script_getnum(st,5) == 1)
|
FETCH(5,type);
|
||||||
isBuff = false;
|
FETCH(6,icon);
|
||||||
|
|
||||||
if (!strlen(script_str) || !dur) {
|
if (!strlen(script_str) || !dur) {
|
||||||
//ShowWarning("buildin_bonus_script: Invalid value(s). Skipping...\n");
|
//ShowWarning("buildin_bonus_script: Invalid value(s). Skipping...\n");
|
||||||
@ -18269,7 +18270,11 @@ BUILDIN_FUNC(bonus_script) {
|
|||||||
sd->bonus_script[i].script = script;
|
sd->bonus_script[i].script = script;
|
||||||
sd->bonus_script[i].tick = gettick() + dur;
|
sd->bonus_script[i].tick = gettick() + dur;
|
||||||
sd->bonus_script[i].flag = flag;
|
sd->bonus_script[i].flag = flag;
|
||||||
sd->bonus_script[i].isBuff = isBuff;
|
sd->bonus_script[i].type = type;
|
||||||
|
sd->bonus_script[i].icon = icon;
|
||||||
|
|
||||||
|
if (sd->bonus_script[i].icon != SI_BLANK) //Gives status icon if exist
|
||||||
|
clif_status_change(&sd->bl,sd->bonus_script[i].icon,1,dur,1,0,0);
|
||||||
|
|
||||||
status_calc_pc(sd,false);
|
status_calc_pc(sd,false);
|
||||||
return SCRIPT_CMD_SUCCESS;
|
return SCRIPT_CMD_SUCCESS;
|
||||||
@ -18755,7 +18760,7 @@ struct script_function buildin_func[] = {
|
|||||||
BUILDIN_DEF2(montransform, "transform", "vii????"), // Monster Transform [malufett/Hercules]
|
BUILDIN_DEF2(montransform, "transform", "vii????"), // Monster Transform [malufett/Hercules]
|
||||||
BUILDIN_DEF(vip_status,"i?"),
|
BUILDIN_DEF(vip_status,"i?"),
|
||||||
BUILDIN_DEF(vip_time,"i?"),
|
BUILDIN_DEF(vip_time,"i?"),
|
||||||
BUILDIN_DEF(bonus_script,"si???"),
|
BUILDIN_DEF(bonus_script,"si????"),
|
||||||
BUILDIN_DEF(getgroupitem,"i"),
|
BUILDIN_DEF(getgroupitem,"i"),
|
||||||
|
|
||||||
#include "../custom/script_def.inc"
|
#include "../custom/script_def.inc"
|
||||||
|
@ -6835,7 +6835,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|||||||
|
|
||||||
//Remove bonus_script when dispelled
|
//Remove bonus_script when dispelled
|
||||||
if (dstsd)
|
if (dstsd)
|
||||||
pc_bonus_script_check(dstsd,BONUS_FLAG_REM_ON_DISPELL);
|
pc_bonus_script_clear(dstsd,BONUS_FLAG_REM_ON_DISPELL);
|
||||||
|
|
||||||
if(!tsc || !tsc->count)
|
if(!tsc || !tsc->count)
|
||||||
break;
|
break;
|
||||||
@ -8337,7 +8337,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|||||||
|
|
||||||
//Remove bonus_script when cleared
|
//Remove bonus_script when cleared
|
||||||
if (dstsd)
|
if (dstsd)
|
||||||
pc_bonus_script_check(dstsd,BONUS_FLAG_REM_ON_CLEARANCE);
|
pc_bonus_script_clear(dstsd,BONUS_FLAG_REM_ON_CLEARANCE);
|
||||||
|
|
||||||
if(!tsc || !tsc->count)
|
if(!tsc || !tsc->count)
|
||||||
break;
|
break;
|
||||||
|
@ -210,7 +210,7 @@ void initChangeTables(void)
|
|||||||
set_sc( TF_HIDING , SC_HIDING , SI_HIDING , SCB_SPEED );
|
set_sc( TF_HIDING , SC_HIDING , SI_HIDING , SCB_SPEED );
|
||||||
add_sc( TF_POISON , SC_POISON );
|
add_sc( TF_POISON , SC_POISON );
|
||||||
set_sc( KN_TWOHANDQUICKEN , SC_TWOHANDQUICKEN , SI_TWOHANDQUICKEN , SCB_ASPD );
|
set_sc( KN_TWOHANDQUICKEN , SC_TWOHANDQUICKEN , SI_TWOHANDQUICKEN , SCB_ASPD );
|
||||||
add_sc( KN_AUTOCOUNTER , SC_AUTOCOUNTER );
|
set_sc( KN_AUTOCOUNTER , SC_AUTOCOUNTER , SI_AUTOCOUNTER , SCB_NONE );
|
||||||
set_sc( PR_IMPOSITIO , SC_IMPOSITIO , SI_IMPOSITIO , SCB_WATK );
|
set_sc( PR_IMPOSITIO , SC_IMPOSITIO , SI_IMPOSITIO , SCB_WATK );
|
||||||
set_sc( PR_SUFFRAGIUM , SC_SUFFRAGIUM , SI_SUFFRAGIUM , SCB_NONE );
|
set_sc( PR_SUFFRAGIUM , SC_SUFFRAGIUM , SI_SUFFRAGIUM , SCB_NONE );
|
||||||
set_sc( PR_ASPERSIO , SC_ASPERSIO , SI_ASPERSIO , SCB_ATK_ELE );
|
set_sc( PR_ASPERSIO , SC_ASPERSIO , SI_ASPERSIO , SCB_ATK_ELE );
|
||||||
@ -231,7 +231,7 @@ void initChangeTables(void)
|
|||||||
set_sc( BS_OVERTHRUST , SC_OVERTHRUST , SI_OVERTHRUST , SCB_NONE );
|
set_sc( BS_OVERTHRUST , SC_OVERTHRUST , SI_OVERTHRUST , SCB_NONE );
|
||||||
set_sc( BS_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZEPOWER , SCB_REGEN );
|
set_sc( BS_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZEPOWER , SCB_REGEN );
|
||||||
add_sc( HT_LANDMINE , SC_STUN );
|
add_sc( HT_LANDMINE , SC_STUN );
|
||||||
add_sc( HT_ANKLESNARE , SC_ANKLE );
|
set_sc( HT_ANKLESNARE , SC_ANKLE , SI_ANKLESNARE , SCB_NONE );
|
||||||
add_sc( HT_SANDMAN , SC_SLEEP );
|
add_sc( HT_SANDMAN , SC_SLEEP );
|
||||||
add_sc( HT_FLASHER , SC_BLIND );
|
add_sc( HT_FLASHER , SC_BLIND );
|
||||||
add_sc( HT_FREEZINGTRAP , SC_FREEZE );
|
add_sc( HT_FREEZINGTRAP , SC_FREEZE );
|
||||||
@ -240,7 +240,7 @@ void initChangeTables(void)
|
|||||||
set_sc( AS_ENCHANTPOISON , SC_ENCPOISON , SI_ENCPOISON , SCB_ATK_ELE );
|
set_sc( AS_ENCHANTPOISON , SC_ENCPOISON , SI_ENCPOISON , SCB_ATK_ELE );
|
||||||
set_sc( AS_POISONREACT , SC_POISONREACT , SI_POISONREACT , SCB_NONE );
|
set_sc( AS_POISONREACT , SC_POISONREACT , SI_POISONREACT , SCB_NONE );
|
||||||
add_sc( AS_VENOMDUST , SC_POISON );
|
add_sc( AS_VENOMDUST , SC_POISON );
|
||||||
add_sc( AS_SPLASHER , SC_SPLASHER );
|
set_sc( AS_SPLASHER , SC_SPLASHER , SI_SPLASHER , SCB_NONE );
|
||||||
set_sc( NV_TRICKDEAD , SC_TRICKDEAD , SI_TRICKDEAD , SCB_REGEN );
|
set_sc( NV_TRICKDEAD , SC_TRICKDEAD , SI_TRICKDEAD , SCB_REGEN );
|
||||||
set_sc( SM_AUTOBERSERK , SC_AUTOBERSERK , SI_AUTOBERSERK , SCB_NONE );
|
set_sc( SM_AUTOBERSERK , SC_AUTOBERSERK , SI_AUTOBERSERK , SCB_NONE );
|
||||||
add_sc( TF_SPRINKLESAND , SC_BLIND );
|
add_sc( TF_SPRINKLESAND , SC_BLIND );
|
||||||
@ -268,7 +268,7 @@ void initChangeTables(void)
|
|||||||
add_sc( NPC_MAGICALATTACK , SC_MAGICALATTACK );
|
add_sc( NPC_MAGICALATTACK , SC_MAGICALATTACK );
|
||||||
set_sc( NPC_KEEPING , SC_KEEPING , SI_BLANK , SCB_DEF );
|
set_sc( NPC_KEEPING , SC_KEEPING , SI_BLANK , SCB_DEF );
|
||||||
add_sc( NPC_DARKBLESSING , SC_COMA );
|
add_sc( NPC_DARKBLESSING , SC_COMA );
|
||||||
set_sc( NPC_BARRIER , SC_BARRIER , SI_BLANK , SCB_MDEF|SCB_DEF );
|
set_sc( NPC_BARRIER , SC_BARRIER , SI_BARRIER , SCB_MDEF|SCB_DEF );
|
||||||
add_sc( NPC_DEFENDER , SC_ARMOR );
|
add_sc( NPC_DEFENDER , SC_ARMOR );
|
||||||
add_sc( NPC_LICK , SC_STUN );
|
add_sc( NPC_LICK , SC_STUN );
|
||||||
set_sc( NPC_HALLUCINATION , SC_HALLUCINATION , SI_HALLUCINATION , SCB_NONE );
|
set_sc( NPC_HALLUCINATION , SC_HALLUCINATION , SI_HALLUCINATION , SCB_NONE );
|
||||||
@ -292,19 +292,19 @@ void initChangeTables(void)
|
|||||||
set_sc( CR_REFLECTSHIELD , SC_REFLECTSHIELD , SI_REFLECTSHIELD , SCB_NONE );
|
set_sc( CR_REFLECTSHIELD , SC_REFLECTSHIELD , SI_REFLECTSHIELD , SCB_NONE );
|
||||||
add_sc( CR_HOLYCROSS , SC_BLIND );
|
add_sc( CR_HOLYCROSS , SC_BLIND );
|
||||||
add_sc( CR_GRANDCROSS , SC_BLIND );
|
add_sc( CR_GRANDCROSS , SC_BLIND );
|
||||||
add_sc( CR_DEVOTION , SC_DEVOTION );
|
set_sc( CR_DEVOTION , SC_DEVOTION , SI_DEVOTION , SCB_NONE);
|
||||||
set_sc( CR_PROVIDENCE , SC_PROVIDENCE , SI_PROVIDENCE , SCB_ALL );
|
set_sc( CR_PROVIDENCE , SC_PROVIDENCE , SI_PROVIDENCE , SCB_ALL );
|
||||||
set_sc( CR_DEFENDER , SC_DEFENDER , SI_DEFENDER , SCB_SPEED|SCB_ASPD );
|
set_sc( CR_DEFENDER , SC_DEFENDER , SI_DEFENDER , SCB_SPEED|SCB_ASPD );
|
||||||
set_sc( CR_SPEARQUICKEN , SC_SPEARQUICKEN , SI_SPEARQUICKEN , SCB_ASPD|SCB_CRI|SCB_FLEE );
|
set_sc( CR_SPEARQUICKEN , SC_SPEARQUICKEN , SI_SPEARQUICKEN , SCB_ASPD|SCB_CRI|SCB_FLEE );
|
||||||
set_sc( MO_STEELBODY , SC_STEELBODY , SI_STEELBODY , SCB_DEF|SCB_MDEF|SCB_ASPD|SCB_SPEED );
|
set_sc( MO_STEELBODY , SC_STEELBODY , SI_STEELBODY , SCB_DEF|SCB_MDEF|SCB_ASPD|SCB_SPEED );
|
||||||
add_sc( MO_BLADESTOP , SC_BLADESTOP_WAIT );
|
add_sc( MO_BLADESTOP , SC_BLADESTOP_WAIT );
|
||||||
add_sc( MO_BLADESTOP , SC_BLADESTOP );
|
set_sc( MO_BLADESTOP , SC_BLADESTOP , SI_BLADESTOP , SCB_NONE );
|
||||||
set_sc( MO_EXPLOSIONSPIRITS , SC_EXPLOSIONSPIRITS , SI_EXPLOSIONSPIRITS , SCB_CRI|SCB_REGEN );
|
set_sc( MO_EXPLOSIONSPIRITS , SC_EXPLOSIONSPIRITS , SI_EXPLOSIONSPIRITS , SCB_CRI|SCB_REGEN );
|
||||||
set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_BLANK , SCB_REGEN );
|
set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_BLANK , SCB_REGEN );
|
||||||
#ifdef RENEWAL
|
#ifdef RENEWAL
|
||||||
set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST2 , SI_EXTREMITYFIST , SCB_NONE );
|
set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST2 , SI_EXTREMITYFIST , SCB_NONE );
|
||||||
#endif
|
#endif
|
||||||
add_sc( SA_MAGICROD , SC_MAGICROD );
|
set_sc( SA_MAGICROD , SC_MAGICROD , SI_MAGICROD , SCB_NONE );
|
||||||
set_sc( SA_AUTOSPELL , SC_AUTOSPELL , SI_AUTOSPELL , SCB_NONE );
|
set_sc( SA_AUTOSPELL , SC_AUTOSPELL , SI_AUTOSPELL , SCB_NONE );
|
||||||
set_sc( SA_FLAMELAUNCHER , SC_FIREWEAPON , SI_FIREWEAPON , SCB_ATK_ELE );
|
set_sc( SA_FLAMELAUNCHER , SC_FIREWEAPON , SI_FIREWEAPON , SCB_ATK_ELE );
|
||||||
set_sc( SA_FROSTWEAPON , SC_WATERWEAPON , SI_WATERWEAPON , SCB_ATK_ELE );
|
set_sc( SA_FROSTWEAPON , SC_WATERWEAPON , SI_WATERWEAPON , SCB_ATK_ELE );
|
||||||
@ -315,24 +315,24 @@ void initChangeTables(void)
|
|||||||
set_sc( SA_VIOLENTGALE , SC_VIOLENTGALE , SI_LANDENDOW , SCB_FLEE );
|
set_sc( SA_VIOLENTGALE , SC_VIOLENTGALE , SI_LANDENDOW , SCB_FLEE );
|
||||||
add_sc( SA_REVERSEORCISH , SC_ORCISH );
|
add_sc( SA_REVERSEORCISH , SC_ORCISH );
|
||||||
add_sc( SA_COMA , SC_COMA );
|
add_sc( SA_COMA , SC_COMA );
|
||||||
set_sc( BD_ENCORE , SC_DANCING , SI_BLANK , SCB_SPEED|SCB_REGEN );
|
set_sc( BD_ENCORE , SC_DANCING , SI_BDPLAYING , SCB_SPEED|SCB_REGEN );
|
||||||
add_sc( BD_RICHMANKIM , SC_RICHMANKIM );
|
set_sc( BD_RICHMANKIM , SC_RICHMANKIM , SI_RICHMANKIM , SCB_NONE );
|
||||||
set_sc( BD_ETERNALCHAOS , SC_ETERNALCHAOS , SI_BLANK , SCB_DEF2 );
|
set_sc( BD_ETERNALCHAOS , SC_ETERNALCHAOS , SI_ETERNALCHAOS , SCB_DEF2 );
|
||||||
set_sc( BD_DRUMBATTLEFIELD , SC_DRUMBATTLE , SI_BLANK , SCB_WATK|SCB_DEF );
|
set_sc( BD_DRUMBATTLEFIELD , SC_DRUMBATTLE , SI_DRUMBATTLEFIELD , SCB_WATK|SCB_DEF );
|
||||||
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_BLANK , SCB_WATK );
|
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_RINGNIBELUNGEN , SCB_WATK );
|
||||||
add_sc( BD_ROKISWEIL , SC_ROKISWEIL );
|
set_sc( BD_ROKISWEIL , SC_ROKISWEIL , SI_ROKISWEIL , SCB_NONE );
|
||||||
add_sc( BD_INTOABYSS , SC_INTOABYSS );
|
set_sc( BD_INTOABYSS , SC_INTOABYSS , SI_INTOABYSS , SCB_NONE );
|
||||||
set_sc( BD_SIEGFRIED , SC_SIEGFRIED , SI_BLANK , SCB_ALL );
|
set_sc( BD_SIEGFRIED , SC_SIEGFRIED , SI_SIEGFRIED , SCB_ALL );
|
||||||
add_sc( BA_FROSTJOKER , SC_FREEZE );
|
add_sc( BA_FROSTJOKER , SC_FREEZE );
|
||||||
set_sc( BA_WHISTLE , SC_WHISTLE , SI_BLANK , SCB_FLEE|SCB_FLEE2 );
|
set_sc( BA_WHISTLE , SC_WHISTLE , SI_WHISTLE , SCB_FLEE|SCB_FLEE2 );
|
||||||
set_sc( BA_ASSASSINCROSS , SC_ASSNCROS , SI_BLANK , SCB_ASPD );
|
set_sc( BA_ASSASSINCROSS , SC_ASSNCROS , SI_ASSASSINCROSS , SCB_ASPD );
|
||||||
add_sc( BA_POEMBRAGI , SC_POEMBRAGI );
|
set_sc( BA_POEMBRAGI , SC_POEMBRAGI , SI_POEMBRAGI , SCB_NONE );
|
||||||
set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_BLANK , SCB_MAXHP );
|
set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_APPLEIDUN , SCB_MAXHP );
|
||||||
add_sc( DC_SCREAM , SC_STUN );
|
add_sc( DC_SCREAM , SC_STUN );
|
||||||
set_sc( DC_HUMMING , SC_HUMMING , SI_BLANK , SCB_HIT );
|
set_sc( DC_HUMMING , SC_HUMMING , SI_HUMMING , SCB_HIT );
|
||||||
set_sc( DC_DONTFORGETME , SC_DONTFORGETME , SI_BLANK , SCB_SPEED|SCB_ASPD );
|
set_sc( DC_DONTFORGETME , SC_DONTFORGETME , SI_DONTFORGETME , SCB_SPEED|SCB_ASPD );
|
||||||
set_sc( DC_FORTUNEKISS , SC_FORTUNE , SI_BLANK , SCB_CRI );
|
set_sc( DC_FORTUNEKISS , SC_FORTUNE , SI_FORTUNEKISS , SCB_CRI );
|
||||||
set_sc( DC_SERVICEFORYOU , SC_SERVICE4U , SI_BLANK , SCB_ALL );
|
set_sc( DC_SERVICEFORYOU , SC_SERVICE4U , SI_SERVICEFORYOU , SCB_ALL );
|
||||||
add_sc( NPC_DARKCROSS , SC_BLIND );
|
add_sc( NPC_DARKCROSS , SC_BLIND );
|
||||||
add_sc( NPC_GRANDDARKNESS , SC_BLIND );
|
add_sc( NPC_GRANDDARKNESS , SC_BLIND );
|
||||||
set_sc( NPC_STOP , SC_STOP , SI_STOP , SCB_NONE );
|
set_sc( NPC_STOP , SC_STOP , SI_STOP , SCB_NONE );
|
||||||
@ -351,7 +351,7 @@ void initChangeTables(void)
|
|||||||
add_sc( HP_BASILICA , SC_BASILICA );
|
add_sc( HP_BASILICA , SC_BASILICA );
|
||||||
set_sc( HW_MAGICPOWER , SC_MAGICPOWER , SI_MAGICPOWER , SCB_MATK );
|
set_sc( HW_MAGICPOWER , SC_MAGICPOWER , SI_MAGICPOWER , SCB_MATK );
|
||||||
add_sc( PA_SACRIFICE , SC_SACRIFICE );
|
add_sc( PA_SACRIFICE , SC_SACRIFICE );
|
||||||
set_sc( PA_GOSPEL , SC_GOSPEL , SI_BLANK , SCB_SPEED|SCB_ASPD );
|
set_sc( PA_GOSPEL , SC_GOSPEL , SI_GOSPEL , SCB_SPEED|SCB_ASPD );
|
||||||
add_sc( PA_GOSPEL , SC_SCRESIST );
|
add_sc( PA_GOSPEL , SC_SCRESIST );
|
||||||
add_sc( CH_TIGERFIST , SC_STOP );
|
add_sc( CH_TIGERFIST , SC_STOP );
|
||||||
set_sc( ASC_EDP , SC_EDP , SI_EDP , SCB_NONE );
|
set_sc( ASC_EDP , SC_EDP , SI_EDP , SCB_NONE );
|
||||||
@ -359,7 +359,7 @@ void initChangeTables(void)
|
|||||||
set_sc( SN_WINDWALK , SC_WINDWALK , SI_WINDWALK , SCB_FLEE|SCB_SPEED );
|
set_sc( SN_WINDWALK , SC_WINDWALK , SI_WINDWALK , SCB_FLEE|SCB_SPEED );
|
||||||
set_sc( WS_MELTDOWN , SC_MELTDOWN , SI_MELTDOWN , SCB_NONE );
|
set_sc( WS_MELTDOWN , SC_MELTDOWN , SI_MELTDOWN , SCB_NONE );
|
||||||
set_sc( WS_CARTBOOST , SC_CARTBOOST , SI_CARTBOOST , SCB_SPEED );
|
set_sc( WS_CARTBOOST , SC_CARTBOOST , SI_CARTBOOST , SCB_SPEED );
|
||||||
set_sc( ST_CHASEWALK , SC_CHASEWALK , SI_BLANK , SCB_SPEED );
|
set_sc( ST_CHASEWALK , SC_CHASEWALK , SI_CHASEWALK , SCB_SPEED );
|
||||||
set_sc( ST_REJECTSWORD , SC_REJECTSWORD , SI_REJECTSWORD , SCB_NONE );
|
set_sc( ST_REJECTSWORD , SC_REJECTSWORD , SI_REJECTSWORD , SCB_NONE );
|
||||||
add_sc( ST_REJECTSWORD , SC_AUTOCOUNTER );
|
add_sc( ST_REJECTSWORD , SC_AUTOCOUNTER );
|
||||||
set_sc( CG_MARIONETTE , SC_MARIONETTE , SI_MARIONETTE , SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
|
set_sc( CG_MARIONETTE , SC_MARIONETTE , SI_MARIONETTE , SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
|
||||||
@ -368,10 +368,10 @@ void initChangeTables(void)
|
|||||||
add_sc( LK_HEADCRUSH , SC_BLEEDING );
|
add_sc( LK_HEADCRUSH , SC_BLEEDING );
|
||||||
set_sc( LK_JOINTBEAT , SC_JOINTBEAT , SI_JOINTBEAT , SCB_BATK|SCB_DEF2|SCB_SPEED|SCB_ASPD );
|
set_sc( LK_JOINTBEAT , SC_JOINTBEAT , SI_JOINTBEAT , SCB_BATK|SCB_DEF2|SCB_SPEED|SCB_ASPD );
|
||||||
add_sc( HW_NAPALMVULCAN , SC_CURSE );
|
add_sc( HW_NAPALMVULCAN , SC_CURSE );
|
||||||
set_sc( PF_MINDBREAKER , SC_MINDBREAKER , SI_BLANK , SCB_MATK|SCB_MDEF2 );
|
set_sc( PF_MINDBREAKER , SC_MINDBREAKER , SI_MINDBREAKER , SCB_MATK|SCB_MDEF2 );
|
||||||
add_sc( PF_MEMORIZE , SC_MEMORIZE );
|
set_sc( PF_MEMORIZE , SC_MEMORIZE , SI_MEMORIZE , SCB_NONE );
|
||||||
add_sc( PF_FOGWALL , SC_FOGWALL );
|
set_sc( PF_FOGWALL , SC_FOGWALL , SI_FOGWALL , SCB_NONE );
|
||||||
set_sc( PF_SPIDERWEB , SC_SPIDERWEB , SI_BLANK , SCB_FLEE );
|
set_sc( PF_SPIDERWEB , SC_SPIDERWEB , SI_SPIDERWEB , SCB_FLEE );
|
||||||
set_sc( WE_BABY , SC_BABY , SI_BABY , SCB_NONE );
|
set_sc( WE_BABY , SC_BABY , SI_BABY , SCB_NONE );
|
||||||
set_sc( TK_RUN , SC_RUN , SI_RUN , SCB_SPEED|SCB_DSPD );
|
set_sc( TK_RUN , SC_RUN , SI_RUN , SCB_SPEED|SCB_DSPD );
|
||||||
set_sc( TK_RUN , SC_SPURT , SI_SPURT , SCB_STR );
|
set_sc( TK_RUN , SC_SPURT , SI_SPURT , SCB_STR );
|
||||||
@ -400,18 +400,18 @@ void initChangeTables(void)
|
|||||||
set_sc( SL_KAUPE , SC_KAUPE , SI_KAUPE , SCB_NONE );
|
set_sc( SL_KAUPE , SC_KAUPE , SI_KAUPE , SCB_NONE );
|
||||||
set_sc( SL_KAITE , SC_KAITE , SI_KAITE , SCB_NONE );
|
set_sc( SL_KAITE , SC_KAITE , SI_KAITE , SCB_NONE );
|
||||||
add_sc( SL_STUN , SC_STUN );
|
add_sc( SL_STUN , SC_STUN );
|
||||||
set_sc( SL_SWOO , SC_SWOO , SI_BLANK , SCB_SPEED );
|
set_sc( SL_SWOO , SC_SWOO , SI_SWOO , SCB_SPEED );
|
||||||
set_sc( SL_SKE , SC_SKE , SI_BLANK , SCB_BATK|SCB_WATK|SCB_DEF|SCB_DEF2 );
|
set_sc( SL_SKE , SC_SKE , SI_BLANK , SCB_BATK|SCB_WATK|SCB_DEF|SCB_DEF2 );
|
||||||
set_sc( SL_SKA , SC_SKA , SI_BLANK , SCB_DEF|SCB_MDEF|SCB_ASPD );
|
set_sc( SL_SKA , SC_SKA , SI_BLANK , SCB_DEF|SCB_MDEF|SCB_ASPD );
|
||||||
set_sc( SL_SMA , SC_SMA , SI_SMA , SCB_NONE );
|
set_sc( SL_SMA , SC_SMA , SI_SMA , SCB_NONE );
|
||||||
set_sc( SM_SELFPROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK );
|
set_sc( SM_SELFPROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK );
|
||||||
set_sc( ST_PRESERVE , SC_PRESERVE , SI_PRESERVE , SCB_NONE );
|
set_sc( ST_PRESERVE , SC_PRESERVE , SI_PRESERVE , SCB_NONE );
|
||||||
set_sc( PF_DOUBLECASTING , SC_DOUBLECAST , SI_DOUBLECAST , SCB_NONE );
|
set_sc( PF_DOUBLECASTING , SC_DOUBLECAST , SI_DOUBLECAST , SCB_NONE );
|
||||||
set_sc( HW_GRAVITATION , SC_GRAVITATION , SI_BLANK , SCB_ASPD );
|
set_sc( HW_GRAVITATION , SC_GRAVITATION , SI_GRAVITATION , SCB_ASPD );
|
||||||
add_sc( WS_CARTTERMINATION , SC_STUN );
|
add_sc( WS_CARTTERMINATION , SC_STUN );
|
||||||
set_sc( WS_OVERTHRUSTMAX , SC_MAXOVERTHRUST , SI_MAXOVERTHRUST , SCB_NONE );
|
set_sc( WS_OVERTHRUSTMAX , SC_MAXOVERTHRUST , SI_MAXOVERTHRUST , SCB_NONE );
|
||||||
set_sc( CG_LONGINGFREEDOM , SC_LONGING , SI_BLANK , SCB_SPEED|SCB_ASPD );
|
set_sc( CG_LONGINGFREEDOM , SC_LONGING , SI_LONGING , SCB_SPEED|SCB_ASPD );
|
||||||
add_sc( CG_HERMODE , SC_HERMODE );
|
set_sc( CG_HERMODE , SC_HERMODE , SI_HERMODE , SCB_NONE );
|
||||||
set_sc( ITEM_ENCHANTARMS , SC_ENCHANTARMS , SI_BLANK , SCB_ATK_ELE );
|
set_sc( ITEM_ENCHANTARMS , SC_ENCHANTARMS , SI_BLANK , SCB_ATK_ELE );
|
||||||
set_sc( SL_HIGH , SC_SPIRIT , SI_SPIRIT , SCB_ALL );
|
set_sc( SL_HIGH , SC_SPIRIT , SI_SPIRIT , SCB_ALL );
|
||||||
set_sc( KN_ONEHAND , SC_ONEHAND , SI_ONEHAND , SCB_ASPD );
|
set_sc( KN_ONEHAND , SC_ONEHAND , SI_ONEHAND , SCB_ASPD );
|
||||||
@ -529,8 +529,8 @@ void initChangeTables(void)
|
|||||||
set_sc( GD_SOULCOLD , SC_SOULCOLD , SI_BLANK , SCB_AGI );
|
set_sc( GD_SOULCOLD , SC_SOULCOLD , SI_BLANK , SCB_AGI );
|
||||||
set_sc( GD_HAWKEYES , SC_HAWKEYES , SI_BLANK , SCB_DEX );
|
set_sc( GD_HAWKEYES , SC_HAWKEYES , SI_BLANK , SCB_DEX );
|
||||||
|
|
||||||
set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_BLANK , SCB_STR|SCB_INT|SCB_DEX );
|
set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_GDSKILL_BATTLEORDER , SCB_STR|SCB_INT|SCB_DEX );
|
||||||
set_sc( GD_REGENERATION , SC_REGENERATION , SI_BLANK , SCB_REGEN );
|
set_sc( GD_REGENERATION , SC_REGENERATION , SI_GDSKILL_REGENERATION , SCB_REGEN );
|
||||||
|
|
||||||
/* Rune Knight */
|
/* Rune Knight */
|
||||||
set_sc( RK_ENCHANTBLADE , SC_ENCHANTBLADE , SI_ENCHANTBLADE , SCB_NONE );
|
set_sc( RK_ENCHANTBLADE , SC_ENCHANTBLADE , SI_ENCHANTBLADE , SCB_NONE );
|
||||||
@ -2794,7 +2794,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
|
|||||||
run_script(data->script,0,sd->bl.id,0);
|
run_script(data->script,0,sd->bl.id,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) { // Script Bonus
|
for (i = 0; i < MAX_PC_BONUS_SCRIPT; i++) { //Process script Bonus [Cydh]
|
||||||
if (!(&sd->bonus_script[i]) || !sd->bonus_script[i].script)
|
if (!(&sd->bonus_script[i]) || !sd->bonus_script[i].script)
|
||||||
continue;
|
continue;
|
||||||
if (!sd->bonus_script[i].tid) //Just add timer only for new attached script
|
if (!sd->bonus_script[i].tid) //Just add timer only for new attached script
|
||||||
|
@ -738,13 +738,13 @@ enum si_type {
|
|||||||
SI_ASPDPOTIONINFINITY = 40,
|
SI_ASPDPOTIONINFINITY = 40,
|
||||||
SI_SPEEDPOTION1 = 41,
|
SI_SPEEDPOTION1 = 41,
|
||||||
// SI_MOVHASTE_INFINITY = 42,
|
// SI_MOVHASTE_INFINITY = 42,
|
||||||
// SI_AUTOCOUNTER = 43,
|
SI_AUTOCOUNTER = 43,
|
||||||
// SI_SPLASHER = 44,
|
SI_SPLASHER = 44,
|
||||||
// SI_ANKLESNARE = 45,
|
SI_ANKLESNARE = 45,
|
||||||
SI_ACTIONDELAY = 46,
|
SI_ACTIONDELAY = 46,
|
||||||
// SI_NOACTION = 47,
|
// SI_NOACTION = 47,
|
||||||
// SI_IMPOSSIBLEPICKUP = 48,
|
// SI_IMPOSSIBLEPICKUP = 48,
|
||||||
// SI_BARRIER = 49,
|
SI_BARRIER = 49,
|
||||||
SI_STRIPWEAPON = 50,
|
SI_STRIPWEAPON = 50,
|
||||||
SI_STRIPSHIELD = 51,
|
SI_STRIPSHIELD = 51,
|
||||||
SI_STRIPARMOR = 52,
|
SI_STRIPARMOR = 52,
|
||||||
@ -755,32 +755,32 @@ enum si_type {
|
|||||||
SI_CP_HELM = 57,
|
SI_CP_HELM = 57,
|
||||||
SI_AUTOGUARD = 58,
|
SI_AUTOGUARD = 58,
|
||||||
SI_REFLECTSHIELD = 59,
|
SI_REFLECTSHIELD = 59,
|
||||||
// SI_DEVOTION = 60,
|
SI_DEVOTION = 60,
|
||||||
SI_PROVIDENCE = 61,
|
SI_PROVIDENCE = 61,
|
||||||
SI_DEFENDER = 62,
|
SI_DEFENDER = 62,
|
||||||
// SI_MAGICROD = 63,
|
SI_MAGICROD = 63,
|
||||||
// SI_WEAPONPROPERTY = 64,
|
// SI_WEAPONPROPERTY = 64,
|
||||||
SI_AUTOSPELL = 65,
|
SI_AUTOSPELL = 65,
|
||||||
// SI_SPECIALZONE = 66,
|
// SI_SPECIALZONE = 66,
|
||||||
// SI_MASK = 67,
|
// SI_MASK = 67,
|
||||||
SI_SPEARQUICKEN = 68,
|
SI_SPEARQUICKEN = 68,
|
||||||
// SI_BDPLAYING = 69,
|
SI_BDPLAYING = 69,
|
||||||
// SI_WHISTLE = 70,
|
SI_WHISTLE = 70,
|
||||||
// SI_ASSASSINCROSS = 71,
|
SI_ASSASSINCROSS = 71,
|
||||||
// SI_POEMBRAGI = 72,
|
SI_POEMBRAGI = 72,
|
||||||
// SI_APPLEIDUN = 73,
|
SI_APPLEIDUN = 73,
|
||||||
// SI_HUMMING = 74,
|
SI_HUMMING = 74,
|
||||||
// SI_DONTFORGETME = 75,
|
SI_DONTFORGETME = 75,
|
||||||
// SI_FORTUNEKISS = 76,
|
SI_FORTUNEKISS = 76,
|
||||||
// SI_SERVICEFORYOU = 77,
|
SI_SERVICEFORYOU = 77,
|
||||||
// SI_RICHMANKIM = 78,
|
SI_RICHMANKIM = 78,
|
||||||
// SI_ETERNALCHAOS = 79,
|
SI_ETERNALCHAOS = 79,
|
||||||
// SI_DRUMBATTLEFIELD = 80,
|
SI_DRUMBATTLEFIELD = 80,
|
||||||
// SI_RINGNIBELUNGEN = 81,
|
SI_RINGNIBELUNGEN = 81,
|
||||||
// SI_ROKISWEIL = 82,
|
SI_ROKISWEIL = 82,
|
||||||
// SI_INTOABYSS = 83,
|
SI_INTOABYSS = 83,
|
||||||
// SI_SIEGFRIED = 84,
|
SI_SIEGFRIED = 84,
|
||||||
// SI_BLADESTOP = 85,
|
SI_BLADESTOP = 85,
|
||||||
SI_EXPLOSIONSPIRITS = 86,
|
SI_EXPLOSIONSPIRITS = 86,
|
||||||
SI_STEELBODY = 87,
|
SI_STEELBODY = 87,
|
||||||
SI_EXTREMITYFIST = 88,
|
SI_EXTREMITYFIST = 88,
|
||||||
@ -804,9 +804,9 @@ enum si_type {
|
|||||||
SI_TENSIONRELAX = 106,
|
SI_TENSIONRELAX = 106,
|
||||||
SI_BERSERK = 107,
|
SI_BERSERK = 107,
|
||||||
// SI_SACRIFICE = 108,
|
// SI_SACRIFICE = 108,
|
||||||
// SI_GOSPEL = 109,
|
SI_GOSPEL = 109,
|
||||||
SI_ASSUMPTIO = 110,
|
SI_ASSUMPTIO = 110,
|
||||||
// SI_BASILICA = 111,
|
SI_BASILICA = 111,
|
||||||
SI_LANDENDOW = 112,
|
SI_LANDENDOW = 112,
|
||||||
SI_MAGICPOWER = 113,
|
SI_MAGICPOWER = 113,
|
||||||
SI_EDP = 114,
|
SI_EDP = 114,
|
||||||
@ -814,17 +814,17 @@ enum si_type {
|
|||||||
SI_WINDWALK = 116,
|
SI_WINDWALK = 116,
|
||||||
SI_MELTDOWN = 117,
|
SI_MELTDOWN = 117,
|
||||||
SI_CARTBOOST = 118,
|
SI_CARTBOOST = 118,
|
||||||
// SI_CHASEWALK = 119,
|
SI_CHASEWALK = 119,
|
||||||
SI_REJECTSWORD = 120,
|
SI_REJECTSWORD = 120,
|
||||||
SI_MARIONETTE = 121,
|
SI_MARIONETTE = 121,
|
||||||
SI_MARIONETTE2 = 122,
|
SI_MARIONETTE2 = 122,
|
||||||
SI_MOONLIT = 123,
|
SI_MOONLIT = 123,
|
||||||
SI_BLEEDING = 124,
|
SI_BLEEDING = 124,
|
||||||
SI_JOINTBEAT = 125,
|
SI_JOINTBEAT = 125,
|
||||||
// SI_MINDBREAKER = 126,
|
SI_MINDBREAKER = 126,
|
||||||
// SI_MEMORIZE = 127,
|
SI_MEMORIZE = 127,
|
||||||
// SI_FOGWALL = 128,
|
SI_FOGWALL = 128,
|
||||||
// SI_SPIDERWEB = 129,
|
SI_SPIDERWEB = 129,
|
||||||
SI_BABY = 130,
|
SI_BABY = 130,
|
||||||
// SI_SUB_WEAPONPROPERTY = 131,
|
// SI_SUB_WEAPONPROPERTY = 131,
|
||||||
SI_AUTOBERSERK = 132,
|
SI_AUTOBERSERK = 132,
|
||||||
@ -849,7 +849,7 @@ enum si_type {
|
|||||||
SI_PLUSMAGICPOWER = 151,
|
SI_PLUSMAGICPOWER = 151,
|
||||||
SI_DEVIL = 152,
|
SI_DEVIL = 152,
|
||||||
SI_KAITE = 153,
|
SI_KAITE = 153,
|
||||||
// SI_SWOO = 154,
|
SI_SWOO = 154,
|
||||||
// SI_STAR2 = 155,
|
// SI_STAR2 = 155,
|
||||||
SI_KAIZEL = 156,
|
SI_KAIZEL = 156,
|
||||||
SI_KAAHI = 157,
|
SI_KAAHI = 157,
|
||||||
@ -868,8 +868,8 @@ enum si_type {
|
|||||||
SI_MOON_COMFORT = 170,
|
SI_MOON_COMFORT = 170,
|
||||||
SI_STAR_COMFORT = 171,
|
SI_STAR_COMFORT = 171,
|
||||||
// SI_EXPUP = 172,
|
// SI_EXPUP = 172,
|
||||||
// SI_GDSKILL_BATTLEORDER = 173,
|
SI_GDSKILL_BATTLEORDER = 173,
|
||||||
// SI_GDSKILL_REGENERATION = 174,
|
SI_GDSKILL_REGENERATION = 174,
|
||||||
// SI_GDSKILL_POSTDELAY = 175,
|
// SI_GDSKILL_POSTDELAY = 175,
|
||||||
// SI_RESISTHANDICAP = 176,
|
// SI_RESISTHANDICAP = 176,
|
||||||
// SI_MAXHPPERCENT = 177,
|
// SI_MAXHPPERCENT = 177,
|
||||||
@ -882,10 +882,10 @@ enum si_type {
|
|||||||
SI_INTRAVISION = 184,
|
SI_INTRAVISION = 184,
|
||||||
// SI_MOVESLOW_POTION = 185,
|
// SI_MOVESLOW_POTION = 185,
|
||||||
SI_DOUBLECAST = 186,
|
SI_DOUBLECAST = 186,
|
||||||
// SI_GRAVITATION = 187,
|
SI_GRAVITATION = 187,
|
||||||
SI_MAXOVERTHRUST = 188,
|
SI_MAXOVERTHRUST = 188,
|
||||||
// SI_LONGING = 189,
|
SI_LONGING = 189,
|
||||||
// SI_HERMODE = 190,
|
SI_HERMODE = 190,
|
||||||
SI_TAROT = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
|
SI_TAROT = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
|
||||||
// SI_HLIF_AVOID = 192,
|
// SI_HLIF_AVOID = 192,
|
||||||
// SI_HFLI_FLEET = 193,
|
// SI_HFLI_FLEET = 193,
|
||||||
@ -1000,7 +1000,7 @@ enum si_type {
|
|||||||
SI_ARMOR_PROPERTY = 302,
|
SI_ARMOR_PROPERTY = 302,
|
||||||
// SI_REUSE_LIMIT_A = 303,
|
// SI_REUSE_LIMIT_A = 303,
|
||||||
SI_HELLPOWER = 304,
|
SI_HELLPOWER = 304,
|
||||||
// SI_STEAMPACK = 305,
|
SI_STEAMPACK = 305,
|
||||||
// SI_REUSE_LIMIT_B = 306,
|
// SI_REUSE_LIMIT_B = 306,
|
||||||
// SI_REUSE_LIMIT_C = 307,
|
// SI_REUSE_LIMIT_C = 307,
|
||||||
// SI_REUSE_LIMIT_D = 308,
|
// SI_REUSE_LIMIT_D = 308,
|
||||||
@ -1672,16 +1672,12 @@ enum scb_flag
|
|||||||
|
|
||||||
///Enum for bonus_script's flag
|
///Enum for bonus_script's flag
|
||||||
enum e_bonus_script_flags {
|
enum e_bonus_script_flags {
|
||||||
BONUS_FLAG_REM_ON_DEAD = 0x1, //Remove bonus when dead
|
BONUS_FLAG_REM_ON_DEAD = 0x01, //Remove bonus when dead
|
||||||
BONUS_FLAG_REM_ON_DISPELL = 0x2, //Removable by Dispell
|
BONUS_FLAG_REM_ON_DISPELL = 0x02, //Removable by Dispell
|
||||||
BONUS_FLAG_REM_ON_CLEARANCE = 0x4, //Removable by Clearance
|
BONUS_FLAG_REM_ON_CLEARANCE = 0x04, //Removable by Clearance
|
||||||
BONUS_FLAG_REM_ON_LOGOUT = 0x8, //Remove bonus when player logged out
|
BONUS_FLAG_REM_ON_LOGOUT = 0x08, //Remove bonus when player logged out
|
||||||
};
|
BONUS_FLAG_REM_BUFF = 0x10, //Remove bonus when player logged out
|
||||||
|
BONUS_FLAG_REM_DEBUFF = 0x20, //Remove bonus when player logged out
|
||||||
///Enum for bonus_script's type
|
|
||||||
enum e_bonus_script_types {
|
|
||||||
BONUS_TYPE_BUFF = 0,
|
|
||||||
BONUS_TYPE_DEBUFF = 1,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
|
//Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user