I was analyzing the SRC, and I started looking for some way to change the Level Up effect, but unfortunately I did not find much else besides that:
/// Notifies clients in the area about an special/visual effect (ZC_NOTIFY_EFFECT).
/// 019b <id>.L <effectid>.L
/// effect id:
/// 0 = base level up
/// 1 = job level up
/// 2 = refine failure
/// 3 = refine success
/// 4 = game over
/// 5 = pharmacy success
/// 6 = pharmacy failure
/// 7 = base level up (super novice)
/// 8 = job level up (super novice)
/// 9 = base level up (taekwon)
void clif_misceffect(struct block_list* bl,int type)
{
unsigned char buf[32];
nullpo_retv(bl);
WBUFW(buf,0) = 0x19b;
WBUFL(buf,2) = bl->id;
WBUFL(buf,6) = type;
clif->send(buf,packet_len(0x19b),bl,AREA);
}
/*==========================================
* script set pc status registry
*------------------------------------------*/
int pc_setparam(struct map_session_data *sd,int type,int val)
{
int delta;
nullpo_ret(sd);
switch(type){
case SP_BASELEVEL:
if (val > pc->maxbaselv(sd)) //Capping to max
val = pc->maxbaselv(sd);
if (val > sd->status.base_level) {
int stat = 0, i;
for (i = 0; i < val - sd->status.base_level; i++)
stat += pc->gets_status_point(sd->status.base_level + i);
sd->status.status_point += stat;
}
sd->status.base_level = val;
sd->status.base_exp = 0;
// clif->updatestatus(sd, SP_BASELEVEL); // Gets updated at the bottom
clif->updatestatus(sd, SP_NEXTBASEEXP);
clif->updatestatus(sd, SP_STATUSPOINT);
clif->updatestatus(sd, SP_BASEEXP);
status_calc_pc(sd, SCO_FORCE);
if(sd->status.party_id)
{
party->send_levelup(sd);
}
break;
I was analyzing the SRC, and I started looking for some way to change the Level Up effect, but unfortunately I did not find much else besides that:
/*========================================== * script set pc status registry *------------------------------------------*/ int pc_setparam(struct map_session_data *sd,int type,int val) { int delta; nullpo_ret(sd); switch(type){ case SP_BASELEVEL: if (val > pc->maxbaselv(sd)) //Capping to max val = pc->maxbaselv(sd); if (val > sd->status.base_level) { int stat = 0, i; for (i = 0; i < val - sd->status.base_level; i++) stat += pc->gets_status_point(sd->status.base_level + i); sd->status.status_point += stat; } sd->status.base_level = val; sd->status.base_exp = 0; // clif->updatestatus(sd, SP_BASELEVEL); // Gets updated at the bottom clif->updatestatus(sd, SP_NEXTBASEEXP); clif->updatestatus(sd, SP_STATUSPOINT); clif->updatestatus(sd, SP_BASEEXP); status_calc_pc(sd, SCO_FORCE); if(sd->status.party_id) { party->send_levelup(sd); } break;
Share this post
Link to post
Share on other sites