jaiko23 1 Posted July 7, 2015 And im here again lol... to make it short... I wanna edit Clown's Skill which is Tarot... the skill can bypass the FCP, and i wanna change it so it cannot destroy the equipment... where can i edit that? Thank you very much in advace Quote Share this post Link to post Share on other sites
0 Kuya Jeo 120 Posted July 7, 2015 (edited) @@Mysterious i think FCP has been dispelled so equips can be destroyed@@jaiko23 goto sc_config.txt (path : trunk/db/sc_config.txt) FIND SC_PROTECTWEAPON, 28SC_PROTECTSHIELD, 28SC_PROTECTARMOR, 28SC_PROTECTHELM, 28 CHANGE TO THIS SC_PROTECTWEAPON, 12SC_PROTECTSHIELD, 12SC_PROTECTARMOR, 12SC_PROTECTHELM, 12 Edited July 7, 2015 by Zhao Chow Quote Share this post Link to post Share on other sites
0 Mystery 594 Posted July 7, 2015 Well it'd most likely be a source edit. Quote Share this post Link to post Share on other sites
0 Mystery 594 Posted July 7, 2015 But didn't jaiko already have a topic regarding FCP being dispelled? Wasn't that already fixed in a previous topic? o_O Unless I read someone else's topic o_O Quote Share this post Link to post Share on other sites
0 jaiko23 1 Posted July 7, 2015 actually i got this setup SC_PROTECTWEAPON, 28SC_PROTECTSHIELD, 28SC_PROTECTARMOR, 28SC_PROTECTHELM, 28 .. fcp is not being dispelled by proff.. but still being dispelled by tarot.. im gonna try that @zhao.. thanks ! Quote Share this post Link to post Share on other sites
0 Kuya Jeo 120 Posted July 8, 2015 @@jaiko23 then remove the dispell in tarot in skill.c,Find in trunk/src/map/skill.c case CG_TAROTCARD: { int count = -1; if (tsc && tsc->data[type]) { map->freeblock_unlock(); return 0; } if( rnd() % 100 > skill_lv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPERIUM) || mob_is_battleground(dstmd))) ) { if( sd ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map->freeblock_unlock(); return 0; } status_zap(src,0,skill->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [Inkfish] do { int eff = rnd() % 14; if( eff == 5 ) clif->specialeffect(src, 528, AREA); else clif->specialeffect(bl, 523 + eff, AREA); switch (eff) { case 0: // heals SP to 0 status_percent_damage(src, bl, 0, 100, false); break; case 1: // matk halved sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); break; case 2: // all buffs removed status->change_clear_buffs(bl,1); break; case 3: // 1000 damage, random armor destroyed { status_fix_damage(src, bl, 1000, 0); clif->damage(src,bl,0,0,1000,0,0,0); if( !status->isdead(bl) ) { int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT }; skill->break_equip(bl, where[rnd()%5], 10000, BCT_ENEMY); } } break; case 4: // atk halved sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); break; case 5: // 2000HP heal, random teleported status->heal(src, 2000, 0, 0); if( !map_flag_vs(bl->m) ) unit->warp(bl, -1,-1,-1, CLR_TELEPORT); break; case 6: // random 2 other effects if (count == -1) count = 3; else count++; //Should not re-trigger this one. break; case 7: // stop freeze or stoned { enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE }; sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv)); } break; case 8: // curse coma and poison sc_start(src,bl,SC_COMA,100,skill_lv,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_CURSE,100,skill_lv,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_POISON,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; case 9: // confusion sc_start(src,bl,SC_CONFUSION,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; case 10: // 6666 damage, atk matk halved, cursed status_fix_damage(src, bl, 6666, 0); clif->damage(src,bl,0,0,6666,0,0,0); sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_CURSE,skill_lv,100,skill->get_time2(skill_id,skill_lv)); break; case 11: // 4444 damage status_fix_damage(src, bl, 4444, 0); clif->damage(src,bl,0,0,4444,0,0,0); break; case 12: // stun sc_start(src,bl,SC_STUN,100,skill_lv,5000); break; case 13: // atk,matk,hit,flee,def reduced sc_start(src,bl,SC_INCATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCMATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCHITRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCFLEERATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCDEFRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,type,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; default: break; } } while ((--count) > 0); clif->skill_nodamage(src,bl,skill_id,skill_lv,1); } break; change to this : case CG_TAROTCARD: { int count = -1; if (tsc && tsc->data[type]) { map->freeblock_unlock(); return 0; } if( rnd() % 100 > skill_lv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPERIUM) || mob_is_battleground(dstmd))) ) { if( sd ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map->freeblock_unlock(); return 0; } status_zap(src,0,skill->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [Inkfish] do { int eff = rnd() % 13; if( eff == 5 ) clif->specialeffect(src, 528, AREA); else clif->specialeffect(bl, 523 + eff, AREA); switch (eff) { case 0: // heals SP to 0 status_percent_damage(src, bl, 0, 100, false); break; case 1: // matk halved sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); break; /* case 2: // all buffs removed status->change_clear_buffs(bl,1); break; */ case 2: // 1000 damage, random armor destroyed { status_fix_damage(src, bl, 1000, 0); clif->damage(src,bl,0,0,1000,0,0,0); if( !status->isdead(bl) ) { int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT }; skill->break_equip(bl, where[rnd()%5], 10000, BCT_ENEMY); } } break; case 3: // atk halved sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); break; case 4: // 2000HP heal, random teleported status->heal(src, 2000, 0, 0); if( !map_flag_vs(bl->m) ) unit->warp(bl, -1,-1,-1, CLR_TELEPORT); break; case 5: // random 2 other effects if (count == -1) count = 3; else count++; //Should not re-trigger this one. break; case 6: // stop freeze or stoned { enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE }; sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv)); } break; case 7: // curse coma and poison sc_start(src,bl,SC_COMA,100,skill_lv,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_CURSE,100,skill_lv,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_POISON,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; case 8: // confusion sc_start(src,bl,SC_CONFUSION,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; case 9: // 6666 damage, atk matk halved, cursed status_fix_damage(src, bl, 6666, 0); clif->damage(src,bl,0,0,6666,0,0,0); sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_CURSE,skill_lv,100,skill->get_time2(skill_id,skill_lv)); break; case 10: // 4444 damage status_fix_damage(src, bl, 4444, 0); clif->damage(src,bl,0,0,4444,0,0,0); break; case 11: // stun sc_start(src,bl,SC_STUN,100,skill_lv,5000); break; case 12: // atk,matk,hit,flee,def reduced sc_start(src,bl,SC_INCATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCMATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCHITRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCFLEERATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCDEFRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,type,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break; default: break; } } while ((--count) > 0); clif->skill_nodamage(src,bl,skill_id,skill_lv,1); } break; this will remove the dispell effect of tarot, after editing recompile your server actually by changing the SC from 28 to 12 is the another option Quote Share this post Link to post Share on other sites
And im here again lol...
to make it short... I wanna edit Clown's Skill which is Tarot... the skill can bypass the FCP, and i wanna change it so it cannot destroy the equipment... where can i edit that? Thank you very much in advace
Share this post
Link to post
Share on other sites