Jump to content

Daylight

Members
  • Posts

    16
  • Joined

  • Last visited

Everything posted by Daylight

  1. Attached File's 0702 packetdb is only copy packet ver 30 in packet_db.
  2. When I have a login, the error occurs Such as picture. Of course, I fixed mmo.h to 2012-07-02. Please refer to attached files. 2012-06-18 packet length, 2012-06-18 packet db, 2012-07-02 packet length, 2012-07-02 packet db is included. Want to help about this.
  3. I don't think about lua files's problem. Because I'm Korean, does not attach lua files in custom grf file. Perhaps the problem seems to be ragexere.
  4. I wanna change 2012-07-02 Packet Length to Packet_db. About this guide is exist? If so, let me know please.
  5. exneval, thanks for your answer. But my question is not solved. According to this, both should be applied. But Loot System is applied, Skill re-use delay and Buff duration does not applied. I compared 2012-06-18 client's hex code with 2012-04-10, but can't find the answer. Request for help or advice, please.
  6. Hi, rA. I use 2012-06-18 packet and client. Most of all works well, but skill re-use delay and buff durations display are not works well. When i use 2012-04-10 client and packet, it works well. How can I fix it?
  7. According to 16518 Changeset, Be aware this update requires a new column in the inventory db, run upgrade_svn16517.sql in your database.
  8. That contents are included CeresCP\language\English.php or another language.php. You can modify by finding " //menu.php ".
  9. I'm using 2012-06-18 client and packet. When I run the client, this error comes in about 10 times each. How can i fit it?
  10. Help, Rathena! T.T When I use Battle Manual, printed "30 minutes will increase by 1% EXP" in chat window. How to fix 1% to 50%?
  11. Do not worry about it, I have already confirmed this. Thank you very much!!! ^^
  12. I really appreciate it!!!! Thanks a lot! ^^
  13. Thanks for your attention. I'll be waiting ardently. T.T
  14. Hi, Every one. First, I'm not good at English apologize. I attempt to develope RENEWAL Item Bonus : FixCastRate, CTime, FCTime. FixCastRate is adjust fixed cast rate, sample) Laphine Staff. CTime is adjust variable cast time. sample) Mental Stick. FCTime is adjust fixed cast time. added them to bonus2 and compiled rathena, They produced an error. So, please check this source. Blue Color is add source. - db/const.txt bHealPower2 1091 bFixCastRate 1092 bCTime 1093 bFCTime 1094 - src/map/map.h SP_ADD_HEAL_RATE,SP_ADD_HEAL2_RATE,SP_FixCastRate,SP_CTime, SP_FCTime, //1090-1094 - src/map/pc.h struct { unsigned short id; short val; } skillatk[MAX_PC_BONUS], sprateskill[MAX_PC_BONUS], skillheal[5], skillheal2[5], skillblown[MAX_PC_BONUS], skillcast[MAX_PC_BONUS], skillfix_cast[MAX_PC_BONUS]; struct { unsigned short id; short val; } ctime[MAX_PC_BONUS], fctime[MAX_PC_BONUS]; struct { short value; int rate; int tick; } hp_loss, sp_loss, hp_regen, sp_regen; -------------------------------------------- int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate; int fixcastrate,ctime,fctime; - src/map/pc.c case SP_CASTRATE: if(sd->state.lr_flag == 2) break; ARR_FIND(0, ARRAYLENGTH(sd->skillcast), i, sd->skillcast.id == 0 || sd->skillcast.id == type2); if (i == ARRAYLENGTH(sd->skillcast)) { //Better mention this so the array length can be updated. [skotlex] ShowDebug("run_script: bonus2 bCastRate reached it's limit (%d skills per character), bonus skill %d (+%d%%) lost.\n", ARRAYLENGTH(sd->skillcast), type2, val); break; } if(sd->skillcast.id == type2) sd->skillcast.val += val; else { sd->skillcast.id = type2; sd->skillcast.val = val; } break; case SP_FIXCASTRATE: if(sd->state.lr_flag == 2) break; ARR_FIND(0, ARRAYLENGTH(sd->skillfix_cast), i, sd->skillfix_cast.id == 0 || sd->skillfix_cast.id == type2); if (i == ARRAYLENGTH(sd->skillfix_cast)) { //Better mention this so the array length can be updated. [skotlex] ShowDebug("run_script: bonus2 bFixCastRate reached it's limit (%d skills per character), bonus skill %d (+%d%%) lost.\n", ARRAYLENGTH(sd->skillfix_cast), type2, val); break; } if(sd->skillfix_cast.id == type2) sd->skillfix_cast.val += val; else { sd->skillfix_cast.id = type2; sd->skillfix_cast.val = val; } break; case SP_CTIME: if(sd->state.lr_flag == 2) break; ARR_FIND(0, ARRAYLENGTH(sd->skillcast), i, sd->skillcast.id == 0 || sd->skillcast.id == type2); if (i == ARRAYLENGTH(sd->skillcast)) { //Better mention this so the array length can be updated. [skotlex] ShowDebug("run_script: bonus2 bCTime reached it's limit (%d skills per character), bonus skill %d (+%d%) lost.\n", ARRAYLENGTH(sd->skillcast), type2, val); break; } if(sd->skillcast.id == type2) sd->ctime.val += val; else { sd->skillcast.id = type2; sd->ctime.val = val; } break; case SP_FCTIME: if(sd->state.lr_flag == 2) break; ARR_FIND(0, ARRAYLENGTH(sd->skillfix_cast), i, sd->skillfix_cast.id == 0 || sd->skillfix_cast.id == type2); if (i == ARRAYLENGTH(sd->skillfix_cast)) { //Better mention this so the array length can be updated. [skotlex] ShowDebug("run_script: bonus2 bFCTime reached it's limit (%d skills per character), bonus skill %d (+%d%) lost.\n", ARRAYLENGTH(sd->skillfix_cast), type2, val); break; } if(sd->skillfix_cast.id == type2) sd->fctime.val += val; else { sd->skillfix_cast.id = type2; sd->fctime.val = val; } break; - src/map/status.c status = &sd->base_status; // these are not zeroed. [zzo] sd->hprate=100; sd->sprate=100; sd->castrate=100; sd->fixcastrate = 100; sd->ctime = 100; sd->fctime = 100; -------------------------------------------- + sizeof(sd->skillcast) + sizeof(sd->skillfix_cast) + sizeof(sd->ctime) + sizeof(sd->fctime) -------------------------------------------- if(sd->castrate < 0) sd->castrate = 0; if(sd->fixcastrate < 0) sd->fixcastrate = 0; if(sd->ctime < 0) sd->ctime = 0; if(sd->fctime < 0) sd->fctime = 0; - src/map/skill.c int skill_castfix (struct block_list *bl, int time, int skill_id, int skill_lv) { int time = skill_get_cast(skill_id, skill_lv); int fixed = skill_get_fixed_cast(skill_id, skill_lv); int variable_time = skill_get_cast(skill_id, skill_lv) - skill_get_fixed_cast(skill_id, skill_lv); struct map_session_data *sd; nullpo_retr(0, bl); sd = BL_CAST(BL_PC, bl); // calculate base cast time (reduced by dex) if( !(skill_get_castnodex(skill_id, skill_lv)&1) ) { int scale = CONST_CASTRATE_SCALE - CONST_CASTRATE_CALC; if( scale > 0 ) // not instant cast time = time * scale / CONST_CASTRATE_SCALE; else return 0; // instant cast } // calculate cast time reduced by item/card bonuses if( !(skill_get_castnodex(skill_id, skill_lv)&4) && sd ) { int i; if( sd->castrate != 100 ) time = ((variable_time * sd->castrate) + (fixed * sd->fixcastrate) / 100) + sd->ctime + sd->fctime; for( i = 0; i < ARRAYLENGTH(sd->skillcast) && sd->skillcast.id; i++ ) { if( sd->skillcast.id == skill_id ) { time+= time * sd->skillcast.val / 100; break; } } } // config cast time multiplier if (battle_config.cast_rate != 100) time = time * battle_config.cast_rate / 100; // return final cast time return (time > 0) ? time : 0; } ------------------------------------------------------------------------ this source, attached RTF file. https://docs.google.com/open?id=0B4zOrkbcgAjOTEY2S2lRUDdPQ28 Please, give help to modify the source.
×
×
  • Create New...