Jump to content

joecalis

Members
  • Posts

    64
  • Joined

  • Last visited

  • Days Won

    7

Community Answers

  1. joecalis's post in Modifying Spider Web into like Ankle Snare behavior (I'm so close this time around) was marked as the answer   
    Try to change this:
    if (unit->group->skill_id == PF_SPIDERWEB && unit->bl.id != srcunit->bl.id && unit->group->src_id == src->id) { //skill_delunitgroup(unit->group); // This one is instant Delete unit->limit = min(unit->limit,1000); // This one you can change "1000" to change the timing (lower number = faster deletion) unit->group->limit = unit->limit; return 1; } to this:
    if (unit->group->skill_id == PF_SPIDERWEB && unit->bl.id != srcunit->bl.id && unit->group->src_id == src->id && unit->group->val2) { //skill_delunitgroup(unit->group); // This one is instant Delete unit->limit = min(unit->limit,1000); // This one you can change "1000" to change the timing (lower number = faster deletion) unit->group->limit = unit->limit; return 1; }  
  2. joecalis's post in How do I go about modifying Signum Crucis (Acolyte's skill) to make it affect other monsters? was marked as the answer   
    in status.cpp
    Find:
    case SC_SIGNUMCRUCIS: // Only affects demons and undead element (but not players) if((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) return 0; break; Change To:
    case SC_SIGNUMCRUCIS: // Now affects all monsters (but not players) if(bl->type == BL_PC) return 0; break;  
  3. joecalis's post in modify @iteminfo/@ii (w/ Picture) was marked as the answer   
    If you have itemlink commands by Cydh implemented you just have to edit
    in atcommand.cpp
    Find:
    struct item_data * item_data = item_array[i]; sprintf(atcmd_output, msg_txt(sd,1277), // Item: '%s'/'%s'[%d] (%hu) Type: %s | Extra Effect: %s item_data->name,item_data->jname,item_data->slot,item_data->nameid, (item_data->type != IT_AMMO) ? itemdb_typename((enum item_types)item_data->type) : itemdb_typename_ammo((enum e_item_ammo)item_data->look), (item_data->script==NULL)? msg_txt(sd,1278) : msg_txt(sd,1279) // None / With script ); Change To:
    struct item_data * item_data = item_array[i]; sprintf(atcmd_output, "Item: '%s'/'%s' (%hu)", // msg_txt(sd, 1277) item_data->name, createItemLink(item_data->nameid, 0, NULL).c_str(),item_data->nameid);  
  4. joecalis's post in Hit and Flee in Pre-Renewal was marked as the answer   
    For Hit calculation, if you are on Renewal (150 + Dex + Level) is the right formula as it says here on the code:
    // Hit stat = status->hit; stat += level + status->dex + (bl->type == BL_PC ? status->luk / 3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175 for BL_PC(Player) types otherwise base level + dex + 150 (175 + Dex + Level + Floor(Luk / 3)) Formula only applies to BL_PC types aka Players
    If you are on Pre-Renewal it's just (Level + Dex):
    // Hit stat = status->hit; stat += level + status->dex; For Flee on Renewal is (Level + Agi + 100):
    // Flee stat = status->flee; stat += level + status->agi + (bl->type == BL_MER ? 0 : bl->type == BL_PC ? status->luk / 5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100 of BL_PC(Player) otherwise base level + agi + 100 and on Pre-Renewal is (Level + Agi):
    // Flee stat = status->flee; stat += level + status->agi;  
  5. joecalis's post in SpecialEffect Affecting Explosion was marked as the answer   
    Change it to this:
    case ALL_ODINS_POWER: if( sd != NULL ) { if(skill_id == ALL_ODINS_POWER){ clif_specialeffect(bl, 75, AREA); clif_specialeffect(bl, 99, AREA); } clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); } break;  
  6. joecalis's post in Berserk/Frenzy Changes was marked as the answer   
    In battle.cpp search for void battle_drain
    under uint8 i = 0;
    add the code:
    struct status_change *sc;
    sc = status_get_sc(&sd->bl);
    it should look like this now:
    uint8 i = 0; struct status_change *sc; sc = status_get_sc(&sd->bl); if (!CHK_RACE(race) && !CHK_CLASS(class_)) return; now after the line battle_vanish(sd, tbl, &d);
    add this code:
    if (sc && sc->count){
            if (sc->data[SC_BERSERK])
                return;
    }
    it should now look like this:
    // Check for vanish HP/SP. !CHECKME: Which first, drain or vanish? battle_vanish(sd, tbl, &d); if (sc && sc->count){ if (sc->data[SC_BERSERK]) return; } // Check for drain HP/SP and there you go, no more lifesteal.
  7. joecalis's post in Doram/Summoner class damage to be reduce by RC_PLAYER was marked as the answer   
    That's because Summoner isn't counted as either of those, according to the status.cpp file at status_calc_pc_ summoner class is considered as RC_BRUTE:
    base_status->race = ((battle_config.summoner_trait&1) && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? RC_BRUTE : RC_PLAYER; Maybe you could tinker with that.
    Or just change the summoner trait from player.conf
    // Adjust the summoner class' special traits. // 0: Summoners behave like other classes. // 1: Summoners belong to brute race instead of demi-human // 2: Summoners are small size instead of medium // 3: Both of the above (official value) summoner_trait: 3  
×
×
  • Create New...