*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
|
||||
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)!
|
||||
|
||||
//Banking
|
||||
|
771
db/const.txt
771
db/const.txt
@ -1677,6 +1677,777 @@ SC_MTF_MLEATKED 584
|
||||
SC_MTF_CRIDAMAGE 585
|
||||
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_what 1
|
||||
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.
|
||||
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
|
||||
for a player is 10 (MAX_PC_BONUS_SCRIPT in 'src/map/pc.h').
|
||||
|
||||
Flags:
|
||||
Flags: (Default is 0)
|
||||
&1: Remove when dead.
|
||||
&2: Removable by Dispell.
|
||||
&4: Removable by Clearance.
|
||||
&8: Remove when player logs out.
|
||||
|
||||
Types:
|
||||
0: Buff
|
||||
1: Debuff
|
||||
This will be used to decide negative or positive buff for 'debuff_on_logout'
|
||||
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:
|
||||
// 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` (
|
||||
`char_id` int(11) NOT NULL,
|
||||
`char_id` varchar(11) NOT NULL,
|
||||
`script` varchar(1024) NOT NULL,
|
||||
`tick` int(11) NOT NULL,
|
||||
`flag` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`type` tinyint(1) unsigned NOT NULL DEFAULT '0'
|
||||
`tick` varchar(11) NOT NULL DEFAULT '0',
|
||||
`flag` varchar(3) NOT NULL DEFAULT '0',
|
||||
`type` char(1) NOT NULL DEFAULT '0',
|
||||
`icon` varchar(3) NOT NULL DEFAULT '-1'
|
||||
) 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);
|
||||
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))
|
||||
{
|
||||
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,2,&data,NULL); bsdata.flag = 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));
|
||||
}
|
||||
if (count >= 50)
|
||||
if (count >= 20)
|
||||
ShowWarning("Too many bonus_script for %d, some of them were not loaded.\n",cid);
|
||||
if (count > 0) {
|
||||
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.
|
||||
if (SQL_ERROR == Sql_Query(sql_handle,"DELETE FROM `%s` WHERE `char_id`='%d'",bonus_script_db,cid))
|
||||
Sql_ShowDebug(sql_handle);
|
||||
ShowInfo("Loaded %d bonus_script for char_id: %d\n",count,cid);
|
||||
}
|
||||
}
|
||||
Sql_FreeResult(sql_handle);
|
||||
@ -5259,17 +5261,18 @@ void bonus_script_save(int fd) {
|
||||
char esc_script[MAX_BONUS_SCRIPT_LENGTH] = "";
|
||||
|
||||
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) {
|
||||
memcpy(&bs,RFIFOP(fd,10+i*sizeof(struct bonus_script_data)),sizeof(struct bonus_script_data));
|
||||
Sql_EscapeString(sql_handle,esc_script,bs.script);
|
||||
if (i > 0)
|
||||
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)))
|
||||
Sql_ShowDebug(sql_handle);
|
||||
StringBuf_Destroy(&buf);
|
||||
ShowInfo("Saved %d bonus_script for char_id: %d\n",count,cid);
|
||||
}
|
||||
RFIFOSKIP(fd,RFIFOW(fd,2));
|
||||
}
|
||||
|
@ -228,7 +228,8 @@ struct status_change_data {
|
||||
struct bonus_script_data {
|
||||
char script[MAX_BONUS_SCRIPT_LENGTH];
|
||||
long tick;
|
||||
short type, flag;
|
||||
char type;
|
||||
short flag, icon;
|
||||
};
|
||||
|
||||
struct skill_cooldown_data {
|
||||
|
@ -1791,8 +1791,14 @@ int chrif_save_bsdata(struct map_session_data *sd) {
|
||||
WFIFOW(char_fd,0) = 0x2b2e;
|
||||
WFIFOL(char_fd,4) = sd->status.char_id;
|
||||
|
||||
//Clear un-saved data
|
||||
pc_bonus_script_check(sd,BONUS_FLAG_REM_ON_LOGOUT);
|
||||
i = BONUS_FLAG_REM_ON_LOGOUT; //Remove bonus with this flag
|
||||
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++) {
|
||||
if (!(&sd->bonus_script[i]) || !sd->bonus_script[i].script || strlen(sd->bonus_script[i].script_str) == 0)
|
||||
@ -1805,8 +1811,9 @@ 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);
|
||||
bs.tick = DIFF_TICK(timer->tick,tick);
|
||||
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));
|
||||
delete_timer(sd->bonus_script[i].tid,pc_bonus_script_timer);
|
||||
pc_bonus_script_remove(sd,i);
|
||||
@ -1858,7 +1865,10 @@ int chrif_load_bsdata(int fd) {
|
||||
sd->bonus_script[i].script = script;
|
||||
sd->bonus_script[i].tick = gettick() + bs->tick;
|
||||
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_++;
|
||||
}
|
||||
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_KYOUGAKU, 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_STRIPWEAPON, 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_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_MAXOVERTHRUST, 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
|
||||
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]
|
||||
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
|
||||
* @param sd
|
||||
* @param sd: Player
|
||||
**/
|
||||
void pc_crimson_marker_clear(struct map_session_data *sd) {
|
||||
uint8 i;
|
||||
@ -10388,7 +10388,7 @@ void pc_crimson_marker_clear(struct map_session_data *sd) {
|
||||
|
||||
/**
|
||||
* Show version to player
|
||||
* @param sd
|
||||
* @param sd: Player
|
||||
**/
|
||||
void pc_show_version(struct map_session_data *sd) {
|
||||
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]
|
||||
* Remove bonus_script data from sd (not deleting timer)
|
||||
* @param sd target
|
||||
* @param i script index
|
||||
* @param sd: Target player
|
||||
* @param i: Bonus script index
|
||||
**/
|
||||
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i) {
|
||||
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].tid = 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]
|
||||
* Clear all active timer(s) of bonus_script data from sd
|
||||
* @param sd target
|
||||
* @param flag reason to remove the bonus_script
|
||||
* Check then clear all active timer(s) of bonus_script data from player based on reason
|
||||
* @param sd: Target player
|
||||
* @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;
|
||||
if (!sd)
|
||||
return;
|
||||
|
||||
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);
|
||||
pc_bonus_script_remove(sd,i);
|
||||
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);
|
||||
}
|
||||
|
||||
/** [Cydh]
|
||||
* 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) {
|
||||
nullpo_retv(sd);
|
||||
|
13
src/map/pc.h
13
src/map/pc.h
@ -552,23 +552,24 @@ struct map_session_data {
|
||||
int id;
|
||||
} 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
|
||||
uint8 count; //Count of target for skill like RL_D_TAIL
|
||||
} 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
|
||||
struct vip_info vip;
|
||||
#endif
|
||||
//Timed bonus 'bonus_script' struct [Cydh]
|
||||
///Timed bonus 'bonus_script' struct [Cydh]
|
||||
struct s_script {
|
||||
struct script_code *script;
|
||||
char script_str[MAX_BONUS_SCRIPT_LENGTH]; //Used for comparing and storing on table
|
||||
uint32 tick;
|
||||
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;
|
||||
} 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);
|
||||
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);
|
||||
|
||||
|
@ -18212,7 +18212,7 @@ BUILDIN_FUNC(montransform) {
|
||||
}
|
||||
|
||||
/** [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 duration
|
||||
* @param flag
|
||||
@ -18220,14 +18220,15 @@ BUILDIN_FUNC(montransform) {
|
||||
**/
|
||||
BUILDIN_FUNC(bonus_script) {
|
||||
uint8 i, flag = 0;
|
||||
int16 icon = SI_BLANK;
|
||||
uint32 dur;
|
||||
bool isBuff = true;
|
||||
char type = 0;
|
||||
TBL_PC* sd;
|
||||
const char *script_str = NULL;
|
||||
struct script_code *script = NULL;
|
||||
|
||||
if (script_hasdata(st,6))
|
||||
sd = map_charid2sd(script_getnum(st,6));
|
||||
if (script_hasdata(st,7))
|
||||
sd = map_charid2sd(script_getnum(st,7));
|
||||
else
|
||||
sd = script_rid2sd(st);
|
||||
|
||||
@ -18237,8 +18238,8 @@ BUILDIN_FUNC(bonus_script) {
|
||||
script_str = script_getstr(st,2);
|
||||
dur = 1000 * abs(script_getnum(st,3));
|
||||
FETCH(4,flag);
|
||||
if (script_getnum(st,5) == 1)
|
||||
isBuff = false;
|
||||
FETCH(5,type);
|
||||
FETCH(6,icon);
|
||||
|
||||
if (!strlen(script_str) || !dur) {
|
||||
//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].tick = gettick() + dur;
|
||||
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);
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
@ -18755,7 +18760,7 @@ struct script_function buildin_func[] = {
|
||||
BUILDIN_DEF2(montransform, "transform", "vii????"), // Monster Transform [malufett/Hercules]
|
||||
BUILDIN_DEF(vip_status,"i?"),
|
||||
BUILDIN_DEF(vip_time,"i?"),
|
||||
BUILDIN_DEF(bonus_script,"si???"),
|
||||
BUILDIN_DEF(bonus_script,"si????"),
|
||||
BUILDIN_DEF(getgroupitem,"i"),
|
||||
|
||||
#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
|
||||
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)
|
||||
break;
|
||||
@ -8337,7 +8337,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
|
||||
//Remove bonus_script when cleared
|
||||
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)
|
||||
break;
|
||||
|
@ -210,7 +210,7 @@ void initChangeTables(void)
|
||||
set_sc( TF_HIDING , SC_HIDING , SI_HIDING , SCB_SPEED );
|
||||
add_sc( TF_POISON , SC_POISON );
|
||||
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_SUFFRAGIUM , SC_SUFFRAGIUM , SI_SUFFRAGIUM , SCB_NONE );
|
||||
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_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZEPOWER , SCB_REGEN );
|
||||
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_FLASHER , SC_BLIND );
|
||||
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_POISONREACT , SC_POISONREACT , SI_POISONREACT , SCB_NONE );
|
||||
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( SM_AUTOBERSERK , SC_AUTOBERSERK , SI_AUTOBERSERK , SCB_NONE );
|
||||
add_sc( TF_SPRINKLESAND , SC_BLIND );
|
||||
@ -268,7 +268,7 @@ void initChangeTables(void)
|
||||
add_sc( NPC_MAGICALATTACK , SC_MAGICALATTACK );
|
||||
set_sc( NPC_KEEPING , SC_KEEPING , SI_BLANK , SCB_DEF );
|
||||
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_LICK , SC_STUN );
|
||||
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 );
|
||||
add_sc( CR_HOLYCROSS , 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_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( 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 );
|
||||
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_EXTREMITYFIST , SC_EXTREMITYFIST , SI_BLANK , SCB_REGEN );
|
||||
#ifdef RENEWAL
|
||||
set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST2 , SI_EXTREMITYFIST , SCB_NONE );
|
||||
#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_FLAMELAUNCHER , SC_FIREWEAPON , SI_FIREWEAPON , 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 );
|
||||
add_sc( SA_REVERSEORCISH , SC_ORCISH );
|
||||
add_sc( SA_COMA , SC_COMA );
|
||||
set_sc( BD_ENCORE , SC_DANCING , SI_BLANK , SCB_SPEED|SCB_REGEN );
|
||||
add_sc( BD_RICHMANKIM , SC_RICHMANKIM );
|
||||
set_sc( BD_ETERNALCHAOS , SC_ETERNALCHAOS , SI_BLANK , SCB_DEF2 );
|
||||
set_sc( BD_DRUMBATTLEFIELD , SC_DRUMBATTLE , SI_BLANK , SCB_WATK|SCB_DEF );
|
||||
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_BLANK , SCB_WATK );
|
||||
add_sc( BD_ROKISWEIL , SC_ROKISWEIL );
|
||||
add_sc( BD_INTOABYSS , SC_INTOABYSS );
|
||||
set_sc( BD_SIEGFRIED , SC_SIEGFRIED , SI_BLANK , SCB_ALL );
|
||||
set_sc( BD_ENCORE , SC_DANCING , SI_BDPLAYING , SCB_SPEED|SCB_REGEN );
|
||||
set_sc( BD_RICHMANKIM , SC_RICHMANKIM , SI_RICHMANKIM , SCB_NONE );
|
||||
set_sc( BD_ETERNALCHAOS , SC_ETERNALCHAOS , SI_ETERNALCHAOS , SCB_DEF2 );
|
||||
set_sc( BD_DRUMBATTLEFIELD , SC_DRUMBATTLE , SI_DRUMBATTLEFIELD , SCB_WATK|SCB_DEF );
|
||||
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_RINGNIBELUNGEN , SCB_WATK );
|
||||
set_sc( BD_ROKISWEIL , SC_ROKISWEIL , SI_ROKISWEIL , SCB_NONE );
|
||||
set_sc( BD_INTOABYSS , SC_INTOABYSS , SI_INTOABYSS , SCB_NONE );
|
||||
set_sc( BD_SIEGFRIED , SC_SIEGFRIED , SI_SIEGFRIED , SCB_ALL );
|
||||
add_sc( BA_FROSTJOKER , SC_FREEZE );
|
||||
set_sc( BA_WHISTLE , SC_WHISTLE , SI_BLANK , SCB_FLEE|SCB_FLEE2 );
|
||||
set_sc( BA_ASSASSINCROSS , SC_ASSNCROS , SI_BLANK , SCB_ASPD );
|
||||
add_sc( BA_POEMBRAGI , SC_POEMBRAGI );
|
||||
set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_BLANK , SCB_MAXHP );
|
||||
add_sc( DC_SCREAM , SC_STUN );
|
||||
set_sc( DC_HUMMING , SC_HUMMING , SI_BLANK , SCB_HIT );
|
||||
set_sc( DC_DONTFORGETME , SC_DONTFORGETME , SI_BLANK , SCB_SPEED|SCB_ASPD );
|
||||
set_sc( DC_FORTUNEKISS , SC_FORTUNE , SI_BLANK , SCB_CRI );
|
||||
set_sc( DC_SERVICEFORYOU , SC_SERVICE4U , SI_BLANK , SCB_ALL );
|
||||
set_sc( BA_WHISTLE , SC_WHISTLE , SI_WHISTLE , SCB_FLEE|SCB_FLEE2 );
|
||||
set_sc( BA_ASSASSINCROSS , SC_ASSNCROS , SI_ASSASSINCROSS , SCB_ASPD );
|
||||
set_sc( BA_POEMBRAGI , SC_POEMBRAGI , SI_POEMBRAGI , SCB_NONE );
|
||||
set_sc( BA_APPLEIDUN , SC_APPLEIDUN , SI_APPLEIDUN , SCB_MAXHP );
|
||||
add_sc( DC_SCREAM , SC_STUN );
|
||||
set_sc( DC_HUMMING , SC_HUMMING , SI_HUMMING , SCB_HIT );
|
||||
set_sc( DC_DONTFORGETME , SC_DONTFORGETME , SI_DONTFORGETME , SCB_SPEED|SCB_ASPD );
|
||||
set_sc( DC_FORTUNEKISS , SC_FORTUNE , SI_FORTUNEKISS , SCB_CRI );
|
||||
set_sc( DC_SERVICEFORYOU , SC_SERVICE4U , SI_SERVICEFORYOU , SCB_ALL );
|
||||
add_sc( NPC_DARKCROSS , SC_BLIND );
|
||||
add_sc( NPC_GRANDDARKNESS , SC_BLIND );
|
||||
set_sc( NPC_STOP , SC_STOP , SI_STOP , SCB_NONE );
|
||||
@ -351,7 +351,7 @@ void initChangeTables(void)
|
||||
add_sc( HP_BASILICA , SC_BASILICA );
|
||||
set_sc( HW_MAGICPOWER , SC_MAGICPOWER , SI_MAGICPOWER , SCB_MATK );
|
||||
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( CH_TIGERFIST , SC_STOP );
|
||||
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( WS_MELTDOWN , SC_MELTDOWN , SI_MELTDOWN , SCB_NONE );
|
||||
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 );
|
||||
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 );
|
||||
@ -368,10 +368,10 @@ void initChangeTables(void)
|
||||
add_sc( LK_HEADCRUSH , SC_BLEEDING );
|
||||
set_sc( LK_JOINTBEAT , SC_JOINTBEAT , SI_JOINTBEAT , SCB_BATK|SCB_DEF2|SCB_SPEED|SCB_ASPD );
|
||||
add_sc( HW_NAPALMVULCAN , SC_CURSE );
|
||||
set_sc( PF_MINDBREAKER , SC_MINDBREAKER , SI_BLANK , SCB_MATK|SCB_MDEF2 );
|
||||
add_sc( PF_MEMORIZE , SC_MEMORIZE );
|
||||
add_sc( PF_FOGWALL , SC_FOGWALL );
|
||||
set_sc( PF_SPIDERWEB , SC_SPIDERWEB , SI_BLANK , SCB_FLEE );
|
||||
set_sc( PF_MINDBREAKER , SC_MINDBREAKER , SI_MINDBREAKER , SCB_MATK|SCB_MDEF2 );
|
||||
set_sc( PF_MEMORIZE , SC_MEMORIZE , SI_MEMORIZE , SCB_NONE );
|
||||
set_sc( PF_FOGWALL , SC_FOGWALL , SI_FOGWALL , SCB_NONE );
|
||||
set_sc( PF_SPIDERWEB , SC_SPIDERWEB , SI_SPIDERWEB , SCB_FLEE );
|
||||
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_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_KAITE , SC_KAITE , SI_KAITE , SCB_NONE );
|
||||
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_SKA , SC_SKA , SI_BLANK , SCB_DEF|SCB_MDEF|SCB_ASPD );
|
||||
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( ST_PRESERVE , SC_PRESERVE , SI_PRESERVE , 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 );
|
||||
set_sc( WS_OVERTHRUSTMAX , SC_MAXOVERTHRUST , SI_MAXOVERTHRUST , SCB_NONE );
|
||||
set_sc( CG_LONGINGFREEDOM , SC_LONGING , SI_BLANK , SCB_SPEED|SCB_ASPD );
|
||||
add_sc( CG_HERMODE , SC_HERMODE );
|
||||
set_sc( CG_LONGINGFREEDOM , SC_LONGING , SI_LONGING , SCB_SPEED|SCB_ASPD );
|
||||
set_sc( CG_HERMODE , SC_HERMODE , SI_HERMODE , SCB_NONE );
|
||||
set_sc( ITEM_ENCHANTARMS , SC_ENCHANTARMS , SI_BLANK , SCB_ATK_ELE );
|
||||
set_sc( SL_HIGH , SC_SPIRIT , SI_SPIRIT , SCB_ALL );
|
||||
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_HAWKEYES , SC_HAWKEYES , SI_BLANK , SCB_DEX );
|
||||
|
||||
set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_BLANK , SCB_STR|SCB_INT|SCB_DEX );
|
||||
set_sc( GD_REGENERATION , SC_REGENERATION , SI_BLANK , SCB_REGEN );
|
||||
set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_GDSKILL_BATTLEORDER , SCB_STR|SCB_INT|SCB_DEX );
|
||||
set_sc( GD_REGENERATION , SC_REGENERATION , SI_GDSKILL_REGENERATION , SCB_REGEN );
|
||||
|
||||
/* Rune Knight */
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
continue;
|
||||
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_SPEEDPOTION1 = 41,
|
||||
// SI_MOVHASTE_INFINITY = 42,
|
||||
// SI_AUTOCOUNTER = 43,
|
||||
// SI_SPLASHER = 44,
|
||||
// SI_ANKLESNARE = 45,
|
||||
SI_AUTOCOUNTER = 43,
|
||||
SI_SPLASHER = 44,
|
||||
SI_ANKLESNARE = 45,
|
||||
SI_ACTIONDELAY = 46,
|
||||
// SI_NOACTION = 47,
|
||||
// SI_IMPOSSIBLEPICKUP = 48,
|
||||
// SI_BARRIER = 49,
|
||||
SI_BARRIER = 49,
|
||||
SI_STRIPWEAPON = 50,
|
||||
SI_STRIPSHIELD = 51,
|
||||
SI_STRIPARMOR = 52,
|
||||
@ -755,32 +755,32 @@ enum si_type {
|
||||
SI_CP_HELM = 57,
|
||||
SI_AUTOGUARD = 58,
|
||||
SI_REFLECTSHIELD = 59,
|
||||
// SI_DEVOTION = 60,
|
||||
SI_DEVOTION = 60,
|
||||
SI_PROVIDENCE = 61,
|
||||
SI_DEFENDER = 62,
|
||||
// SI_MAGICROD = 63,
|
||||
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_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,
|
||||
@ -804,9 +804,9 @@ enum si_type {
|
||||
SI_TENSIONRELAX = 106,
|
||||
SI_BERSERK = 107,
|
||||
// SI_SACRIFICE = 108,
|
||||
// SI_GOSPEL = 109,
|
||||
SI_GOSPEL = 109,
|
||||
SI_ASSUMPTIO = 110,
|
||||
// SI_BASILICA = 111,
|
||||
SI_BASILICA = 111,
|
||||
SI_LANDENDOW = 112,
|
||||
SI_MAGICPOWER = 113,
|
||||
SI_EDP = 114,
|
||||
@ -814,17 +814,17 @@ enum si_type {
|
||||
SI_WINDWALK = 116,
|
||||
SI_MELTDOWN = 117,
|
||||
SI_CARTBOOST = 118,
|
||||
// SI_CHASEWALK = 119,
|
||||
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_MINDBREAKER = 126,
|
||||
SI_MEMORIZE = 127,
|
||||
SI_FOGWALL = 128,
|
||||
SI_SPIDERWEB = 129,
|
||||
SI_BABY = 130,
|
||||
// SI_SUB_WEAPONPROPERTY = 131,
|
||||
SI_AUTOBERSERK = 132,
|
||||
@ -849,7 +849,7 @@ enum si_type {
|
||||
SI_PLUSMAGICPOWER = 151,
|
||||
SI_DEVIL = 152,
|
||||
SI_KAITE = 153,
|
||||
// SI_SWOO = 154,
|
||||
SI_SWOO = 154,
|
||||
// SI_STAR2 = 155,
|
||||
SI_KAIZEL = 156,
|
||||
SI_KAAHI = 157,
|
||||
@ -868,8 +868,8 @@ enum si_type {
|
||||
SI_MOON_COMFORT = 170,
|
||||
SI_STAR_COMFORT = 171,
|
||||
// SI_EXPUP = 172,
|
||||
// SI_GDSKILL_BATTLEORDER = 173,
|
||||
// SI_GDSKILL_REGENERATION = 174,
|
||||
SI_GDSKILL_BATTLEORDER = 173,
|
||||
SI_GDSKILL_REGENERATION = 174,
|
||||
// SI_GDSKILL_POSTDELAY = 175,
|
||||
// SI_RESISTHANDICAP = 176,
|
||||
// SI_MAXHPPERCENT = 177,
|
||||
@ -882,10 +882,10 @@ enum si_type {
|
||||
SI_INTRAVISION = 184,
|
||||
// SI_MOVESLOW_POTION = 185,
|
||||
SI_DOUBLECAST = 186,
|
||||
// SI_GRAVITATION = 187,
|
||||
SI_GRAVITATION = 187,
|
||||
SI_MAXOVERTHRUST = 188,
|
||||
// SI_LONGING = 189,
|
||||
// SI_HERMODE = 190,
|
||||
SI_LONGING = 189,
|
||||
SI_HERMODE = 190,
|
||||
SI_TAROT = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
|
||||
// SI_HLIF_AVOID = 192,
|
||||
// SI_HFLI_FLEET = 193,
|
||||
@ -1000,7 +1000,7 @@ enum si_type {
|
||||
SI_ARMOR_PROPERTY = 302,
|
||||
// SI_REUSE_LIMIT_A = 303,
|
||||
SI_HELLPOWER = 304,
|
||||
// SI_STEAMPACK = 305,
|
||||
SI_STEAMPACK = 305,
|
||||
// SI_REUSE_LIMIT_B = 306,
|
||||
// SI_REUSE_LIMIT_C = 307,
|
||||
// SI_REUSE_LIMIT_D = 308,
|
||||
@ -1672,16 +1672,12 @@ enum scb_flag
|
||||
|
||||
///Enum for bonus_script's flag
|
||||
enum e_bonus_script_flags {
|
||||
BONUS_FLAG_REM_ON_DEAD = 0x1, //Remove bonus when dead
|
||||
BONUS_FLAG_REM_ON_DISPELL = 0x2, //Removable by Dispell
|
||||
BONUS_FLAG_REM_ON_CLEARANCE = 0x4, //Removable by Clearance
|
||||
BONUS_FLAG_REM_ON_LOGOUT = 0x8, //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,
|
||||
BONUS_FLAG_REM_ON_DEAD = 0x01, //Remove bonus when dead
|
||||
BONUS_FLAG_REM_ON_DISPELL = 0x02, //Removable by Dispell
|
||||
BONUS_FLAG_REM_ON_CLEARANCE = 0x04, //Removable by Clearance
|
||||
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
|
||||
};
|
||||
|
||||
//Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
|
||||
|
Loading…
x
Reference in New Issue
Block a user