All Activity

This stream auto-updates   

  1. Today
  2. script

    1.5 - plugin - remove the 50 items restriction limit by utilizing vector
  3. not very satisfy with my previous attempt, so redo again with *hateffect #include "common/hercules.h" #include "map/pc.h" #include "map/battle.h" #include "common/timer.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "pk_showeffect", SERVER_TYPE_MAP, "0.2", HPM_VERSION, }; int hateffect_timerid = INVALID_TIMER; int hateffect_countdown( int tid, int64 tick, int id, intptr data ) { struct map_session_data *sd = map->id2sd(id); if ( sd != NULL ) clif->hat_effect_single( &sd->bl, 27, false ); hateffect_timerid = INVALID_TIMER; return 0; } int battle_check_target_post( int retVal, struct block_list *src, struct block_list *target, int flag ) { struct block_list *s_bl = src, *t_bl = target; if ( (t_bl = battle->get_master(target)) == NULL ) t_bl = target; if ( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; if ( s_bl->type == BL_PC && t_bl->type == BL_PC && (flag & BCT_ENEMY) == BCT_ENEMY && retVal == 1 ) { if ( hateffect_timerid != INVALID_TIMER ) { timer->delete( hateffect_timerid, hateffect_countdown ); hateffect_timerid = INVALID_TIMER; } hateffect_timerid = timer->add( timer->gettick() + 5000, hateffect_countdown, ((struct map_session_data*)s_bl)->bl.id, 0 ); clif->hat_effect_single( s_bl, 27, true ); } return retVal; } HPExport void plugin_init (void) { addHookPost( battle, check_target, battle_check_target_post ); }
  4. just learn attendance system today, attendance system add 2 fields to the `char` table, which is `attendance_count` and `attendance_timer` in theory, whenever player click to retrieve the item, in clif_parse_attendance_reward_request function, -> update `char` where account_id = sd->status.account_id EDIT: it seems if the player create a new character in the account, will mess up the `attendance_count` ... hmm ... have to fix this to the core ...
  5. Yesterday
  6. thanks i should check out these plugins more
  7. Thank you again
  8. can we do this with quest log system instead ? there is no need to waste a variable ... well, quest log system also support UI problem ? not every server use up to date client version are you using client version in year 2018 ? I'm using PACKETVER 20180621 and for your answer, just add *getcalendartime(12,0) something like that on the daily quest log script if your server using up to date client version, then I could write this script easily with *getcalendartime script command using outdated client version, then have to hijack another script variable
  9. Correct, patch AllwaysCallSelectKoreaClientinfo works not for all clients see http://nemo.herc.ws/patches/KoreaServiceTypeXMLFix/ For new clients dont need this patch anyway
  10. yea got a solution for that, i dont care about weapons... anyway, is possible to see the exp bar for Job level after 50? is possible to show the exp bar until player reach Job level 150~200? and do you know where do i go to change/remove those UI buttons? thanks !
  11. https://github.com/HerculesWS/Hercules/pull/2309 still under review ... though
  12. Still not supported by hercules?
  13. @AnnieRuru sorry, what if I add case 2 for 12 hours. Can i Just add these? but im getting infinity loop. Case 2: mes "Retrieving today's half day supplies..."; for ( [email protected] = 1; [email protected] <= 3; [email protected] ) { [email protected] = rand(.totalchance[[email protected]]); for ( [email protected] = 3; ( [email protected] -= getd(".twelve"+ [email protected] +"["+ [email protected] +"]") ) >= 0; [email protected] += 2 ); getitem getd(".twelve"+ [email protected] +"["+( [email protected] -1 )+"]"), rand( getd(".twelve"+ [email protected] +"[0]"), getd(".twelve"+ [email protected] +"[1]") ); } #daily_twelvet = gettimetick(2); } close; } OnInit: setarray .twelve1, 1, 10, // amount : rand(1,10) // chance of getting the items Set#1 // <Item ID>,<chance> Red_Potion, 5, Orange_Potion, 4, Yellow_Potion, 3, White_Potion, 2, Blue_Potion, 1, Green_Potion, 6; setarray .twelve2, 5, 15, // amount : rand(5,15) // chance of getting the items Set#1 // <Item ID>,<chance> Red_Herb, 5, Yellow_Herb, 4, White_Herb, 3, Blue_Herb, 2, Green_Herb, 1; setarray .twelve3, 10, 20, // amount : rand(10,20) // chance of getting the items Set#1 // <Item ID>,<chance> Apple, 5, Banana, 4, Grape, 3, Carrot, 2, Sweet_Potato, 1, Meat, 99, Honey, 50, Milk, 100; for ( [email protected] = 1; [email protected] <= 3; [email protected] ) { setd ".twelve"+ [email protected] +"size", getarraysize( getd(".twelve"+ [email protected]) ); for ( [email protected] = 3; [email protected] < getd(".twelve"+ [email protected] +"size"); [email protected] += 2 ) .totalchance[[email protected]] += getd(".twelve"+ [email protected] +"["+ [email protected] +"]"); for ( [email protected] = 3; [email protected] < getd(".twelve"+ [email protected] +"size"); [email protected] += 2 ) { [email protected] = getd(".twelve"+ [email protected] +"["+ [email protected] +"]") *10000 / .totalchance[[email protected]]; [email protected] = [email protected] / 100; [email protected]$ = .gchance % 100; while ( getstrlen([email protected]$) < 2 ) [email protected]$ = insertchar([email protected]$, "0", 0); setd ".chance_display_item"+ [email protected] +"$["+ [email protected] +"]", [email protected] +"."+ [email protected]$ +"%"; } } end; }
  14. Thank you for the precision, I'll implement it when I'll start working on Achievement system !
  15. Update: i received = 2018-04-18bRagexeRE.exe but when i try to diff this using new fork nemo i am always getting error when check this patch AllwaysCallSelectKoreaClientinfo
  16. Perfect! Thank you so much @AnnieRuru
  17. erm ... its getting interestingly ... complexity ...
  18. That was fast, I like to add some twist, can you add like rate for rare one. example item 506 is @ 5% and item 14510 is @ 2% success chance to get in set A for set b 505 @ 9% and 657 @ 1% for Set C 657 @ 10% 14510 @ 1%. of course ill be adding more item like bubble gums, Food items, TCGs something like that. thanks!
  19. https://github.com/AnnieRuru/Release/blob/master/Guides/Daily Quest - use gettimetick(2) or gettimestr.md function script timeleft__ { [email protected] = getarg(0); if ( [email protected] <= 0 ) return getarg(0); [email protected] = [email protected] / 86400; [email protected] = [email protected] % 86400 / 3600; [email protected] = [email protected] % 3600 / 60; [email protected] = [email protected] % 60; if ( [email protected] ) return sprintf( _$( "%d day %d hour" ), [email protected], [email protected] ); else if ( [email protected] ) return sprintf( _$( "%d hour %d min" ), [email protected], [email protected] ); else if ( [email protected] ) return sprintf( _$( "%d min %d sec" ), [email protected], [email protected] ); else return sprintf( _$( "%d sec" ), [email protected] ); } prontera,155,185,5 script kjdsfhskhf 1_F_MARIA,{ [email protected] = atoi( gettimestr( "%Y%m%d", 9 ) ); if ( #daily_supply == [email protected] ) { mes "You have already taken today's supply"; mesf "You have to wait %s countdown to get next supply", timeleft__( getcalendartime(0,0) - gettimetick(2) ); close; } getitem F_Rand( 656, 657, 505, 645, 506, 14510 ), rand(1,10); getitem F_Rand( 656, 657, 505, 645, 506, 14510 ), rand(5,15); getitem F_Rand( 656, 657, 505, 645, 506, 14510 ), rand(10,20); #daily_supply = [email protected]; end; }
  20. @utofaery Hello, just what i wanted with success rate for rare ones, can you add countdown timer "you still have 00 hours, minute/s seconds countdown to get next supplies" Also, im getting error like and no items were given. Buildin_getitem: Nonexistant item 0 requested. Hi @AnnieRuru yes can be repeated. can you add rates for the rare ones, like the above. thnx!
  21. a bit off-topic, but "@auraset" plugin does teach how to do that https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/auraset.c basically when you move near an unit with 'aura' enable, send the specialeffect again the main function to hook is clif_insight
  22. need source modification plugin to do this #include "common/hercules.h" #include "map/pc.h" #include "map/battle.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "pk_showeffect", SERVER_TYPE_MAP, "x_O", HPM_VERSION, }; int battle_check_target_post( int retVal, struct block_list *src, struct block_list *target, int flag ) { struct block_list *s_bl = src, *t_bl = target; if ( (t_bl = battle->get_master(target)) == NULL ) t_bl = target; if ( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; if ( s_bl->type == BL_PC && t_bl->type == BL_PC && (flag & BCT_ENEMY) == BCT_ENEMY && retVal == 1 ) clif->specialeffect( s_bl, 548, AREA ); // EF_RED_HIT return retVal; } HPExport void plugin_init (void) { addHookPost( battle, check_target, battle_check_target_post ); } player will blink with red effect when hitting another player yes, possible, setoption, specialeffect, sc_start ... you name it you just need some source modification knowledge to do it
  23. I knew that, but this doesn't show the weapon sprite although its a bit off when enable it hmm ... I just re-read the topic, you only want to enable attack/skill on these job sprite, not enabling the weapon sprite ... it was from lllaaazzz suggestion
  24. more like this https://github.com/HerculesWS/Hercules/blob/stable/doc/sample/npc_trader_sample.txt . https://github.com/AnnieRuru/Release/blob/master/Guides/Compare dynamic shop between rAthena %26 Hercules.md#callshop-vs-openshop btw, saw same topic in rathena https://rathena.org/board/topic/118526-donation-npc-request/
  25. Last week
  26. You can close this topic, i found something for now, "Equip: changebase Job_Xmas;" "UnEquip: changebase Class;" and so.... and for mounts i just changed my data.grf sprites to jRO data.grf sprites and fix it. i'll try that sprite and act editor thank you for help !!!
  27. manner system is PK system at conf/misc.conf is there any script to activate a "option effect" when people PK?
  1. Load more activity