Jump to content

Haruka Mayumi

Members
  • Posts

    485
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by Haruka Mayumi

  1. Read rules before posting. you just violated 3 rules in 1 post.. - Uninformative Topic Title - Posting Topic in CAPSLOCK - Incorrect Forum for the Topic Regarding your topic. The server might be using prevention of editing the sprite(gepard additional functuality)..
  2. flywing script. replace FARM_MAP with your gold room map.. 601,Wing_Of_Fly,Fly Wing,11,60,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3) == "FARM_MAP") warp strcharinfo(3),0,0; else itemskill "AL_TELEPORT",1; },{},{}
  3. nope. it's a personal private source i created.
  4. 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];
  5. 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.
  6. 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
  7. i dunno what you are trying to achieve. because the damage logs have their own respective code like the mob_data->dmglog
  8. it's already in your script.. `killedrid` - script TFRSummoner -1,{ OnInit: setarray .Monster[1],1002,1115; setarray .Chance[1],30,5; end; OnNPCKillEvent: .@id = inarray(.Monster,killedrid); if(!.@id) end; if( rand(1,100) <= .Chance[.@id]) 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 .@id.. 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
  9. 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 ?
  10. Item ID : 12214 Name : Convex Mirror
  11. GRF : data/luafiles514/lua files/signboardlist.lub
  12. 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;
  13. 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)
  14. 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 ?
  15. 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  
  16. Version 1.0.0

    271 downloads

    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.
    Free
  17. You can also ask the server to create something like this.. it's something i made weeks ago. @HideView and @ShowView
  18. peek?. check player equipments? or peak? get highest player counted?
  19. the 3 dots means that you have a working attached rid script.. you must make ensure that every script would be detached(this mostly happens when calling functions).. for the global message. that was probably the motd from conf/motd.txt
  20. A little gift to followers.

    This script is used to convert items with a chance.
    sample is 100 Elunium = 1 Enriched Elunium
    They can simply put 50 Elunium and try to convert it into Enriched Elunium for 50% chance.

    convert.txt

  21. you can edit them at luafiles/datainfo/accessoryid.lub and accname.lub
  22. void status_read_soullink_db(const char* file_name) { adding the const from the original will remove the compiler warning. however the memory leak will be there whenever you @mapexit. this is because the (script_buf) is not cleared when exiting the map server.. you just simply need to add this script_free_code(soul_link[(CONSTANT LOOP)]); esomewhere around the the mapexit. ^_~
×
×
  • Create New...