Jump to content

Haruka Mayumi

Content Moderator
  • Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

  • Days Won


Haruka Mayumi last won the day on June 4

Haruka Mayumi had the most liked content!

Community Reputation

164 Excellent

About Haruka Mayumi

  • Rank
    ~I Eat Scripts~

Profile Information

  • Gender
  • Location
  • Server
  • Github

Contact Methods

  • Discord

Recent Profile Visitors

1,469 profile views
  1. you used sd without checking if there's session data. also using sd on the loop is a no.. you should use the tsd. here's a last insight. struct s_dmglog { int id; //char id unsigned int dmg; unsigned int flag : 2; //0: Normal. 1: Homunc exp. 2: Pet exp } dmglog[DAMAGELOG_SIZE];
  2. for(i = 0, count = 0, mvp_damage = 0; i < DAMAGELOG_SIZE && md->dmglog[i].id; i++) { struct map_session_data* tsd = NULL; if (md->dmglog[i].flag == MDLF_SELF) { //Self damage counts as exp tap count++; continue; } tsd = map_charid2sd(md->dmglog[i].id); if (tsd == NULL) continue; // skip empty entries if (tsd->bl.m != m) continue; // skip players not on this map count++; //Only logged into same map chars are counted for the total. if (pc_isdead(tsd)) continue; // skip dead players if (md->dmglog[i].flag == MDLF_HOMUN && !hom_is_active(tsd->hd)) continue; // skip homunc's share if inactive if (md->dmglog[i].flag == MDLF_PET && (!tsd->status.pet_id || !tsd->pd)) continue; // skip pet's share if inactive if(md->dmglog[i].dmg > mvp_damage) { third_sd = second_sd; second_sd = mvp_sd; mvp_sd = tsd; mvp_damage = md->dmglog[i].dmg; } tmpsd[i] = tsd; // record as valid damage-log entry switch( md->dmglog[i].flag ) { case MDLF_NORMAL: dmgbltypes|= BL_PC; break; case MDLF_HOMUN: dmgbltypes|= BL_HOM; break; case MDLF_PET: dmgbltypes|= BL_PET; break; } } i'll give you a little insight on where you will edit it's somewhere here.
  3. There's a good way to log players damage to monsters. but there's also another way for logging the players damage vs players. i just really don't know which one you are aiming. if logs between pvm or pvp. if you are focusin on pvm. you can just simply get the md->dmglog however if you want to take pvp damage logs you can do things on sd->dmglog
  4. i dunno what you are trying to achieve. because the damage logs have their own respective code like the mob_data->dmglog
  5. it's already in your script.. `killedrid` - script TFRSummoner -1,{ OnInit: setarray .Monster[1],1002,1115; setarray .Chance[1],30,5; end; OnNPCKillEvent: [email protected] = inarray(.Monster,killedrid); if([email protected]) end; if( rand(1,100) <= .Chance[[email protected]]) atcommand "@summon "+killedrid+" 60"; end; } i'll explain it because i see that you want to learn.. at OnInit i put all the Monsters ID on an array called .Monster and after that. i put the percent chance they would be summon at an array called .Chance at OnNPCKillEvent, i checked if the monster they killed is is on the .Monster array and pass it on a variable call [email protected] if the monster id is not found.. it will end there doing nothing.. however if the monster is on the array . we will create a random number from 1 to 100 that signifies percentage and then finally match it with a logical operator to check if the random is within the chance.. If the check is true. than it will summon
  6. This is all about source.. you can start looking at pc.cpp/.hpp uint16 dmglog[DAMAGELOG_SIZE_PC]; ///target ids EDIT : however if you just want to get the damage log of a certain mob.. it's good to look at mob_dead function around mob.cpp
  7. @nirvanausual Really cool. you just replied on a post that is already 11 months.. nearly 1 year..
  8. Item ID : 12214 Name : Convex Mirror
  9. GRF : data/luafiles514/lua files/signboardlist.lub
  10. case UNT_WHISTLE: case UNT_ASSASSINCROSS: case UNT_POEMBRAGI: case UNT_APPLEIDUN: case UNT_HUMMING: case UNT_DONTFORGETME: case UNT_FORTUNEKISS: case UNT_SERVICEFORYOU: + if(bl->type == BL_HOM) return 0; if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER)) return 0; if (!sc) return 0; if (!sce) sc_start4(ss, bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit); else if (sce->val4 == 1) { //Readjust timers since the effect will not last long. sce->val4 = 0; //remove the mark that we stepped out delete_timer(sce->timer, status_change_timer); sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min } break;
  11. You can find this on Skill.cpp.. You will use : skill_addtimerskill (struct block_list *src, t_tick tick, int target, int x,int y, uint16 skill_id, uint16 skill_lv, int type, int flag) Then simply add your custom skill around static TIMER_FUNC(skill_timerskill)
  12. Those costumes requires /effect to be "ON", and the effects should be on grf data/texture/effect/. it is also need to keep update your data/luafiles514/lua files/hateffectinfo.lub so that if there's new hateffects. it will be shown correctly without errors. No need to delete the topic because this can help other people who wants have the same problem
  13. You need to load the pvp script first before the Statues.. you must also make sure that there's atleast 1 player on the ranking before you load the statues script ( because that's how the script is made which is really not good ) "prontera,163,190"; } <<<< Remove this (causing error) // --------------------------------------------- OnSpawn:
  14. View File [ Yumi ] Loading Screens Summary: Since i don't use them anymore. i'm willing to share this simple loading screens. i removed all the text below and above so that anyone who want to use this would be able to put text without cleaning it. Submitter Haruka Mayumi Submitted 06/02/2020 Category Loading Screens Video Content Author Haruka Mayumi  
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.