` Fixed Guillotine Cross Poisons (bugreport:5275)
-- Paralyze decreases attack speed, flee, and movement speed -- Death Hurt decreases the effectiveness of recovery -- Venom Bleed reduces max HP -- Oblivion Curse blocks natural SP recovery and skill use is denied ` Updated const.txt with the latest (renewal) statuses (SC_) values git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15539 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
fc400a1838
commit
2daf269fee
199
db/const.txt
199
db/const.txt
@ -986,6 +986,205 @@ SC_FOOD_VIT_CASH 305
|
||||
SC_FOOD_DEX_CASH 306
|
||||
SC_FOOD_INT_CASH 307
|
||||
SC_FOOD_LUK_CASH 308
|
||||
SC_FEAR 309
|
||||
SC_BURNING 310
|
||||
SC_FREEZING 311
|
||||
SC_ENCHANTBLADE 312
|
||||
SC_DEATHBOUND 313
|
||||
SC_MILLENNIUMSHIELD 314
|
||||
SC_CRUSHSTRIKE 315
|
||||
SC_REFRESH 316
|
||||
SC_REUSE_REFRESH 317
|
||||
SC_GIANTGROWTH 318
|
||||
SC_STONEHARDSKIN 319
|
||||
SC_VITALITYACTIVATION 320
|
||||
SC_STORMBLAST 321
|
||||
SC_FIGHTINGSPIRIT 322
|
||||
SC_ABUNDANCE 323
|
||||
SC_ADORAMUS 324
|
||||
SC_EPICLESIS 325
|
||||
SC_ORATIO 326
|
||||
SC_LAUDAAGNUS 327
|
||||
SC_LAUDARAMUS 328
|
||||
SC_RENOVATIO 329
|
||||
SC_EXPIATIO 330
|
||||
SC_DUPLELIGHT 331
|
||||
SC_SECRAMENT 332
|
||||
SC_WHITEIMPRISON 333
|
||||
SC_MARSHOFABYSS 334
|
||||
SC_RECOGNIZEDSPELL 335
|
||||
SC_STASIS 336
|
||||
SC_SPHERE_1 337
|
||||
SC_SPHERE_2 338
|
||||
SC_SPHERE_3 339
|
||||
SC_SPHERE_4 340
|
||||
SC_SPHERE_5 341
|
||||
SC_READING_SB 342
|
||||
SC_FREEZINGSPELL 343
|
||||
SC_FEARBREEZE 344
|
||||
SC_ELECTRICSHOCKER 345
|
||||
SC_WUGDASH 346
|
||||
SC_BITE 347
|
||||
SC_CAMOUFLAGE 348
|
||||
SC_ACCELERATION 349
|
||||
SC_HOVERING 350
|
||||
SC_SHAPESHIFT 351
|
||||
SC_INFRAREDSCAN 352
|
||||
SC_ANALYZE 353
|
||||
SC_MAGNETICFIELD 354
|
||||
SC_NEUTRALBARRIER 355
|
||||
SC_NEUTRALBARRIER_MASTER 356
|
||||
SC_STEALTHFIELD 357
|
||||
SC_STEALTHFIELD_MASTER 358
|
||||
SC_OVERHEAT 359
|
||||
SC_OVERHEAT_LIMITPOINT 360
|
||||
SC_VENOMIMPRESS 361
|
||||
SC_POISONINGWEAPON 362
|
||||
SC_WEAPONBLOCKING 363
|
||||
SC_CLOAKINGEXCEED 364
|
||||
SC_HALLUCINATIONWALK 365
|
||||
SC_HALLUCINATIONWALK_POSTDELAY 366
|
||||
SC_ROLLINGCUTTER 367
|
||||
SC_TOXIN 368
|
||||
SC_PARALYSE 369
|
||||
SC_VENOMBLEED 370
|
||||
SC_MAGICMUSHROOM 371
|
||||
SC_DEATHHURT 372
|
||||
SC_PYREXIA 373
|
||||
SC_OBLIVIONCURSE 374
|
||||
SC_LEECHESEND 375
|
||||
SC_REFLECTDAMAGE 376
|
||||
SC_FORCEOFVANGUARD 377
|
||||
SC_SHIELDSPELL_DEF 378
|
||||
SC_SHIELDSPELL_MDEF 379
|
||||
SC_SHIELDSPELL_REF 380
|
||||
SC_EXEEDBREAK 381
|
||||
SC_PRESTIGE 382
|
||||
SC_BANDING 383
|
||||
SC_BANDING_DEFENCE 384
|
||||
SC_EARTHDRIVE 385
|
||||
SC_INSPIRATION 386
|
||||
SC_SPELLFIST 387
|
||||
SC_CRYSTALIZE 388
|
||||
SC_STRIKING 389
|
||||
SC_WARMER 390
|
||||
SC_VACUUM_EXTREME 391
|
||||
SC_PROPERTYWALK 392
|
||||
SC_SWINGDANCE 393
|
||||
SC_SYMPHONYOFLOVER 394
|
||||
SC_MOONLITSERENADE 395
|
||||
SC_RUSHWINDMILL 396
|
||||
SC_ECHOSONG 397
|
||||
SC_HARMONIZE 398
|
||||
SC_VOICEOFSIREN 399
|
||||
SC_DEEPSLEEP 400
|
||||
SC_SIRCLEOFNATURE 401
|
||||
SC_GLOOMYDAY 402
|
||||
SC_GLOOMYDAY_SK 403
|
||||
SC_SONGOFMANA 404
|
||||
SC_DANCEWITHWUG 405
|
||||
SC_SATURDAYNIGHTFEVER 406
|
||||
SC_LERADSDEW 407
|
||||
SC_MELODYOFSINK 408
|
||||
SC_BEYONDOFWARCRY 409
|
||||
SC_UNLIMITEDHUMMINGVOICE 410
|
||||
SC_SITDOWN_FORCE 411
|
||||
SC_CRESCENTELBOW 412
|
||||
SC_CURSEDCIRCLE_ATKER 413
|
||||
SC_CURSEDCIRCLE_TARGET 414
|
||||
SC_LIGHTNINGWALK 415
|
||||
SC_RAISINGDRAGON 416
|
||||
SC_GT_ENERGYGAIN 417
|
||||
SC_GT_CHANGE 418
|
||||
SC_GT_REVITALIZE 419
|
||||
SC_GN_CARTBOOST 420
|
||||
SC_THORNSTRAP 421
|
||||
SC_BLOODSUCKER 422
|
||||
SC_SMOKEPOWDER 423
|
||||
SC_TEARGAS 424
|
||||
SC_MANDRAGORA 425
|
||||
SC_STOMACHACHE 426
|
||||
SC_MYSTERIOUS_POWDER 427
|
||||
SC_MELON_BOMB 428
|
||||
SC_BANANA_BOMB 429
|
||||
SC_BANANA_BOMB_SITDOWN 430
|
||||
SC_SAVAGE_STEAK 431
|
||||
SC_COCKTAIL_WARG_BLOOD 432
|
||||
SC_MINOR_BBQ 433
|
||||
SC_SIROMA_ICE_TEA 434
|
||||
SC_DROCERA_HERB_STEAMED 435
|
||||
SC_PUTTI_TAILS_NOODLES 436
|
||||
SC_BOOST500 437
|
||||
SC_FULL_SWING_K 438
|
||||
SC_MANA_PLUS 439
|
||||
SC_MUSTLE_M 440
|
||||
SC_LIFE_FORCE_F 441
|
||||
SC_EXTRACT_WHITE_POTION_Z 442
|
||||
SC_VITATA_500 443
|
||||
SC_EXTRACT_SALAMINE_JUICE 444
|
||||
SC__REPRODUCE 445
|
||||
SC__AUTOSHADOWSPELL 446
|
||||
SC__SHADOWFORM 447
|
||||
SC__BODYPAINT 448
|
||||
SC__INVISIBILITY 449
|
||||
SC__DEADLYINFECT 450
|
||||
SC__ENERVATION 451
|
||||
SC__GROOMY 452
|
||||
SC__IGNORANCE 453
|
||||
SC__LAZINESS 454
|
||||
SC__UNLUCKY 455
|
||||
SC__WEAKNESS 456
|
||||
SC__STRIPACCESSORY 457
|
||||
SC__MANHOLE 458
|
||||
SC_CHAOS 459
|
||||
SC__BLOODYLUST 460
|
||||
SC_CIRCLE_OF_FIRE 461
|
||||
SC_CIRCLE_OF_FIRE_OPTION 462
|
||||
SC_FIRE_CLOAK 463
|
||||
SC_FIRE_CLOAK_OPTION 464
|
||||
SC_WATER_SCREEN 465
|
||||
SC_WATER_SCREEN_OPTION 466
|
||||
SC_WATER_DROP 467
|
||||
SC_WATER_DROP_OPTION 468
|
||||
SC_WATER_BARRIER 469
|
||||
SC_WIND_STEP 470
|
||||
SC_WIND_STEP_OPTION 471
|
||||
SC_WIND_CURTAIN 472
|
||||
SC_WIND_CURTAIN_OPTION 473
|
||||
SC_ZEPHYR 474
|
||||
SC_SOLID_SKIN 475
|
||||
SC_SOLID_SKIN_OPTION 476
|
||||
SC_STONE_SHIELD 477
|
||||
SC_STONE_SHIELD_OPTION 478
|
||||
SC_POWER_OF_GAIA 479
|
||||
SC_PYROTECHNIC 480
|
||||
SC_PYROTECHNIC_OPTION 481
|
||||
SC_HEATER 482
|
||||
SC_HEATER_OPTION 483
|
||||
SC_TROPIC 484
|
||||
SC_TROPIC_OPTION 485
|
||||
SC_AQUAPLAY 486
|
||||
SC_AQUAPLAY_OPTION 487
|
||||
SC_COOLER 488
|
||||
SC_COOLER_OPTION 489
|
||||
SC_CHILLY_AIR 490
|
||||
SC_CHILLY_AIR_OPTION 491
|
||||
SC_GUST 492
|
||||
SC_GUST_OPTION 493
|
||||
SC_BLAST 494
|
||||
SC_BLAST_OPTION 495
|
||||
SC_WILD_STORM 496
|
||||
SC_WILD_STORM_OPTION 497
|
||||
SC_PETROLOGY 498
|
||||
SC_PETROLOGY_OPTION 499
|
||||
SC_CURSED_SOIL 500
|
||||
SC_CURSED_SOIL_OPTION 501
|
||||
SC_UPHEAVAL 502
|
||||
SC_UPHEAVAL_OPTION 503
|
||||
SC_TIDAL_WEAPON 504
|
||||
SC_TIDAL_WEAPON_OPTION 505
|
||||
SC_ROCK_CRUSHER 506
|
||||
SC_ROCK_CRUSHER_ATK 507
|
||||
|
||||
e_gasp 0
|
||||
e_what 1
|
||||
|
@ -6570,6 +6570,12 @@ int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
|
||||
hp -= hp * sd->sc.data[SC_CRITICALWOUND]->val2 / 100;
|
||||
sp -= sp * sd->sc.data[SC_CRITICALWOUND]->val2 / 100;
|
||||
}
|
||||
|
||||
if (sd->sc.data[SC_DEATHHURT])
|
||||
{
|
||||
hp -= hp * 20 / 100;
|
||||
sp -= sp * 20 / 100;
|
||||
}
|
||||
|
||||
return status_heal(&sd->bl, hp, sp, 1);
|
||||
}
|
||||
|
@ -391,6 +391,8 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, int skill
|
||||
{
|
||||
if( sc->data[SC_CRITICALWOUND] && heal ) // Critical Wound has no effect on offensive heal. [Inkfish]
|
||||
hp -= hp * sc->data[SC_CRITICALWOUND]->val2/100;
|
||||
if( sc->data[SC_DEATHHURT] && heal )
|
||||
hp -= hp * 20/100;
|
||||
if( sc->data[SC_INCHEALRATE] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN )
|
||||
hp += hp * sc->data[SC_INCHEALRATE]->val1/100; // Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish]
|
||||
}
|
||||
@ -5633,6 +5635,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
hp -= hp * tsc->data[SC_CRITICALWOUND]->val2 / 100;
|
||||
sp -= sp * tsc->data[SC_CRITICALWOUND]->val2 / 100;
|
||||
}
|
||||
if( tsc && tsc->data[SC_DEATHHURT] )
|
||||
{
|
||||
hp -= hp * 20 / 100;
|
||||
sp -= sp * 20 / 100;
|
||||
}
|
||||
clif_skill_nodamage(src,bl,skillid,skilllv,1);
|
||||
if( hp > 0 || (skillid == AM_POTIONPITCHER && sp <= 0) )
|
||||
clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1);
|
||||
@ -6296,6 +6303,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
hp -= hp * tsc->data[SC_CRITICALWOUND]->val2 / 100;
|
||||
sp -= sp * tsc->data[SC_CRITICALWOUND]->val2 / 100;
|
||||
}
|
||||
if (tsc && tsc->data[SC_DEATHHURT])
|
||||
{
|
||||
hp -= hp * 20 / 100;
|
||||
sp -= sp * 20 / 100;
|
||||
}
|
||||
if(hp > 0)
|
||||
clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1);
|
||||
if(sp > 0)
|
||||
@ -8597,7 +8609,11 @@ int skill_castend_map (struct map_session_data *sd, short skill_num, const char
|
||||
* Warlock
|
||||
**/
|
||||
sd->sc.data[SC_WHITEIMPRISON] ||
|
||||
(sd->sc.data[SC_STASIS] && skill_stasis_check(&sd->bl, sd->sc.data[SC_STASIS]->val2, skill_num))
|
||||
(sd->sc.data[SC_STASIS] && skill_stasis_check(&sd->bl, sd->sc.data[SC_STASIS]->val2, skill_num)) ||
|
||||
/**
|
||||
* Guillotine Cross
|
||||
**/
|
||||
sd->sc.data[SC_OBLIVIONCURSE]
|
||||
)) {
|
||||
skill_failed(sd);
|
||||
return 0;
|
||||
|
@ -812,6 +812,11 @@ void initChangeTables(void)
|
||||
StatusChangeFlagTable[SC_MERC_HPUP] |= SCB_MAXHP;
|
||||
StatusChangeFlagTable[SC_MERC_SPUP] |= SCB_MAXSP;
|
||||
StatusChangeFlagTable[SC_MERC_HITUP] |= SCB_HIT;
|
||||
// Guillotine Cross Poison Effects
|
||||
StatusChangeFlagTable[SC_PARALYSE] |= SCB_ASPD|SCB_FLEE|SCB_SPEED;
|
||||
StatusChangeFlagTable[SC_DEATHHURT] |= SCB_REGEN;
|
||||
StatusChangeFlagTable[SC_VENOMBLEED] |= SCB_MAXHP;
|
||||
StatusChangeFlagTable[SC_OBLIVIONCURSE] |= SCB_REGEN;
|
||||
#if RE_EDP
|
||||
/**
|
||||
* In RE EDP increases your atk and weapon atk
|
||||
@ -1399,7 +1404,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
|
||||
(sc->data[SC_MARIONETTE] && skill_num != CG_MARIONETTE) || //Only skill you can use is marionette again to cancel it
|
||||
(sc->data[SC_MARIONETTE2] && skill_num == CG_MARIONETTE) || //Cannot use marionette if you are being buffed by another
|
||||
sc->data[SC_STEELBODY] ||
|
||||
sc->data[SC_BERSERK]
|
||||
sc->data[SC_BERSERK] ||
|
||||
sc->data[SC_OBLIVIONCURSE]
|
||||
))
|
||||
return 0;
|
||||
|
||||
@ -3074,12 +3080,11 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
|
||||
regen->flag = 0;
|
||||
|
||||
if (
|
||||
sc->data[SC_DANCING]
|
||||
sc->data[SC_DANCING] || sc->data[SC_OBLIVIONCURSE] || sc->data[SC_MAXIMIZEPOWER]
|
||||
|| (
|
||||
(bl->type == BL_PC && ((TBL_PC*)bl)->class_&MAPID_UPPERMASK) == MAPID_MONK &&
|
||||
(sc->data[SC_EXTREMITYFIST] || (sc->data[SC_EXPLOSIONSPIRITS] && (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK)))
|
||||
)
|
||||
|| sc->data[SC_MAXIMIZEPOWER]
|
||||
) //No natural SP regen
|
||||
regen->flag &=~RGN_SP;
|
||||
|
||||
@ -4075,7 +4080,7 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change
|
||||
if(sc->data[SC_FEAR])
|
||||
flee -= flee * 20 / 100;
|
||||
if(sc->data[SC_PARALYSE])
|
||||
flee -= flee / 10; // 10% Flee reduction
|
||||
flee -= flee * 10 / 100; // 10% Flee reduction
|
||||
if(sc->data[SC_INFRAREDSCAN])
|
||||
flee -= flee * 30 / 100;
|
||||
if( sc->data[SC__LAZINESS] )
|
||||
@ -4448,6 +4453,8 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
|
||||
{
|
||||
if( sd && pc_iscarton(sd) )
|
||||
speed += speed * (50 - 5 * pc_checkskill(sd,MC_PUSHCART)) / 100;
|
||||
if( sc->data[SC_PARALYSE] )
|
||||
speed += speed * 50 / 100;
|
||||
if( speed_rate != 100 )
|
||||
speed = speed * speed_rate / 100;
|
||||
if( sc->data[SC_STEELBODY] )
|
||||
@ -4576,7 +4583,7 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
|
||||
if( sc->data[SC_FIGHTINGSPIRIT] && sc->data[SC_FIGHTINGSPIRIT]->val2 )
|
||||
aspd_rate -= sc->data[SC_FIGHTINGSPIRIT]->val2;
|
||||
if( sc->data[SC_PARALYSE] )
|
||||
aspd_rate += 100;
|
||||
aspd_rate += aspd_rate * 10 / 100;
|
||||
if( sc->data[SC__BODYPAINT] )
|
||||
aspd_rate += aspd_rate * (20 + 5 * sc->data[SC__BODYPAINT]->val1) / 100;
|
||||
if( sc->data[SC__INVISIBILITY] )
|
||||
|
Loading…
x
Reference in New Issue
Block a user