Jump to content

Samuel

Members
  • Content Count

    397
  • Joined

  • Last visited

  • Days Won

    20

Posts posted by Samuel


  1. I think I have answered in your email regarding this...

    Anyway for everyone who's lost as well in implementing item options...


     

    create a group in db/option_drop_groups.conf (this is where you categorize random options groups)
    
    Example: (You just need to follow the instruction inside the conf file)
    
    group1: {
    
    },
    
    group2: {
    
    },
    
    
    then you need to edit mob_db drops and add your option group
    
    
    
    example: the mob you want to test has this drops:
    Drops: {
    Jellopy: 7000
    Knife_: 100
    Sticky_Mucus: 400
    Apple: 1000
    Empty_Bottle: 1500
    Apple: 150
    Unripe_Apple: 20
    Poring_Card: 1
    }
    
    
    
    to add group for the knife, edit the line of knife and add the group you want depending on which option group you want to take the options
    
      Knife_: 100,"group1"  
    
    
    
     there is item_options.conf in the db folder which holds all the item options available

     

    this is what i have answered in his email as well


  2. On 5/22/2021 at 11:40 AM, Origami said:

    Hi ! Im trying to make a bindatcmd script for @refresh but has a 5minutes cooldown ... I just wondering why is it always @refresh failed ???? here is my script 

     

    //=================================== // // @refresh (Remove Stuck Players) // //=================================== - script refresh -1,{ OnInit: set .Minutes,5; bindatcmd "refresh",strnpcinfo(0)+"::OnAtcommand"; end; OnAtcommand: if( .DelayTime <= gettimetick(2)) { mes "[@refresh]"; mes "Stuck on NPC or unable to move?"; mes "This command has 5 minute cooldown"; next; mes "[@refresh]"; mes "Use @refresh?"; switch(select("No.:Yes.")) { case 1: close; case 2: atcommand "@refresh"; set .DelayTime,gettimetick(2) + ( .Minutes * 60 ); close; } } else if( .DelayTime > gettimetick(2) ){ set .last,.DelayTime - gettimetick(2); set .@min, .last % (24*60*60) % (60*60) / (60); set .@sec, .last % (24*60*60) % (60*60) % (60); message strcharinfo(0), "Wait for "+.@min+" minutes "+.@sec+" seconds before you can use @refresh again."; end; } }

    
    //===================================
    //
    // @refresh (Remove Stuck Players)
    //
    //===================================
    -	script	refresh	-1,{
    	OnInit:
    	set .Minutes,5;
    	bindatcmd "refresh",strnpcinfo(0)+"::OnAtcommand";
    	end;
    	OnAtcommand:
    	if( .DelayTime <= gettimetick(2)) {
    		mes "[@refresh]";
    		mes "Stuck on NPC or unable to move?";
    		mes "This command has 5 minute cooldown";
    		next;
    		mes "[@refresh]";		
    		mes "Use @refresh?";
    		switch(select("No.:Yes.")) {
    			case 1:
    				close;
    			case 2:
    				atcommand "@refresh";
    				set .DelayTime,gettimetick(2) + ( .Minutes * 60 );
    				close;
    			}	
    	} else if( .DelayTime > gettimetick(2) ){
            set .last,.DelayTime - gettimetick(2);
            set .@min,  .last % (24*60*60) % (60*60) / (60);
            set .@sec,  .last % (24*60*60) % (60*60) % (60);
    
    		message strcharinfo(0), "Wait for "+.@min+" minutes "+.@sec+" seconds before you can use @refresh again.";
    		end;
    	
    		}
    	}

     

     

    Try to change .DelayTime to DelayTime

    . = npc variable
    without . = playervariable


  3. On 5/24/2021 at 2:47 AM, delber said:

    I need to get the identifiedDisplayName field from iteminfo.lua, because the name of the equipment in item_db_equip.yml is in another language.

    I tried to:

    getiteminfo(2301, ITEMINFO_NAME);

    and

    getiteminfo(2301, NAME);

    and

    getiteminfo(2301, ITEMINFO_ITENTIFIEDDISPLAYNAME);

    and

    getiteminfo(2301, ITEMINFO_DISPLAYNAME);

    and

    getiteminfo(2301, DISPLAYNAME);

    and

    getiteminfo(2301, ITEMNAME);

     

    But nothing hehehe or maybe it’s not possible xD

    Sorry for my bad english.

    Thanks

     

    You seem to be using rathena as herc don't have item_db_equip.yml

    But if you are using herc and what you want is to match your item_db.conf with itemInfo.lua name, try @Dastgir tools.

    https://github.com/dastgirp/Scripts/tree/master/Lua/multi-tools

     

    Quote

    Using CopyDisplayName:

    Changes item_db.conf name from idnumitemdisplaynametable.txt/iteminfo.lua/lub
    1)Copy item_db.conf,idnumitemdisplaynametable.txt or iteminfo.lua/lub to "CopyDisplayName" Folder
    2)Just run the "copyname.bat" and input some details.

    Credits: Dastgir

     

    With regards to the getitemifo:

    *getiteminfo(<item ID>, <type>)
    *getiteminfo("<item name>", <type>)
    *setiteminfo(<item ID>, <type>, <value>)
    
    This function will look up the item with the specified ID number in the
    database and return the info set by TYPE argument.
    It will return -1 if there is no such item.
    
    Valid types are:
    
    	ITEMINFO_ID                      - Item ID (getiteminfo() only!)
    	ITEMINFO_AEGISNAME               - Unique name to reference the item (getiteminfo() only!)
    	ITEMINFO_NAME                    - Display name (getiteminfo() only!)

     

    Or you can use: (this is from doc/sample/getiteminfo.txt)

    	.@value = 2301;
    
    	// This line uses an INTERNAL function of your client to show item name by its ID!
    	// ^nItemID^XXXX -> Item Name
    	mesf("Item ID: %d ^nItemID^%d", .@value, .@value);

     


  4. Someone message me this concept a long time ago but I became busy.

     

    With some free time, I decide to try and create a plugin for this.

     

    Here is what I have done initially:

     

     

    With that setup, it was set to take random options from any of the available random options in the database and the set value was just hardcoded from 1 - 10.
    
    In the video, there is one item option with 5 options but shows 4 options for the item, it is because, the option that has been randomly generated is: 
     

    {
    	Id: 86
    	Name: "BODY_ATTR_ALL"
    	Script: <" /* Needs more info */ ">
    },

     

    In client file, there is no counterpart for this ID as well, thus it will not show even though the slot was taken by this option.

    A lot of things could be improved and added.

     

    This could be combined with the item options + drop effect I made before.


  5. 8 hours ago, Origami said:

    Sorry to bring this thread up again ,, Its the only topic that matched my problem .. I tried this one changing to array_find and loading the manipulation script but still the same ... 

    heres my script 

    - script warp_block -1,{ OnInit: bindatcmd "warp",strnpcinfo(3)+"::OnAtcommandWarp",20,99; bindatcmd "recall",strnpcinfo(3)+"::OnAtcommandRecall",20,99; //setarray .maps_from$[0], "guild_01", "guild_02"; // Maps they cannot warp from. setarray .maps$[0], // Maps they cannot warp to. "gld2_pay", // GLD DUNGEON "gld_dun01_2", // GLD DUNGEON "gld_dun01", // GLD DUNGEON "gld2_ald", // GLD DUNGEON "gld_dun02_2", // GLD DUNGEON "gld_dun02", // GLD DUNGEON "gld2_prt", // GLD DUNGEON "gld_dun03_2", // GLD DUNGEON "gld_dun03", // GLD DUNGEON "gld2_gef", // GLD DUNGEON "gld_dun04_2", // GLD DUNGEON "gld_dun04", // GLD DUNGEON "schg_dun01", // GLD DUNGEON "teg_dun01", // GLD DUNGEON "teg_dun02", // GLD DUNGEON "odin_tem01", "odin_tem02", "rachel", "lighthalzen", "lhz_dun01", "lhz_dun02", "lhz_dun03", "hugel", "veins", "ve_fild01", "ve_fild02", "ve_fild03", "thor_v01", "thor_v02", "thor_v03", "moc_pryd06", "ra_fild02", "ra_fild03", "ra_fild04", "lou_dun03", "prt_maze03", "bra_dun02", "splendide", "manuk", "man_fild02", "dic_fild01", "dic_fild02", "spl_fild01", "spl_fild02", "spl_fild03", "moc_fild22", "moc_fild21", "gl_chyard", "abyss_03", "gef_dun02", "treasure02", "pay_fild11", "gon_dun03", "abbey02", "abbey03", "xmas_fild01", "ra_san05", "prt_sewb4", "mosk_dun03", "ama_dun03", "kh_dun02", "xmas_dun02", "ice_dun03", "ice_dun02", "ice_dun01", "ayo_dun02", "niflheim", "anthell02", "mjolnir_04", "pay_dun04", "2@nyd", "moc_prydn2", "gef_fild02", "gef_fild14", "gef_fild10", "moc_pryd04", "in_sphinx5", "moc_fild17", "ein_dun02", "einbroch", "beach_dun", "thana_boss", "tur_dun04", "jupe_core", "nameless_n", "1@tower", "2@tower", "3@tower", "4@tower", "5@tower", "6@tower", "payon"; end; OnAtcommandWarp: if (getgmlevel() == 99 ) goto Bypass_Script_Warp; if(array_find(.maps$[0], strcharinfo(3))>-1) { message strcharinfo(0), "You can't open use warp here!"; end; } else if (inarray(.maps$[0], .@atcmd_parameters$)>-1) { message strcharinfo(0), "You can't warp to that map!"; end; } Bypass_Script_Warp: if(.@atcmd_numparameters) atcommand "@warp "+ implode(.@atcmd_parameters$, " "); else atcommand "@warp"; end; OnAtcommandRecall: if(inarray(.maps$[0], strcharinfo(3))>-1) { message strcharinfo(0), "You can't use recall here!"; end; } if(.@atcmd_numparameters) atcommand "@recall "+ implode(.@atcmd_parameters$, " "); else atcommand "@recall"; end; }

    
    -	script	warp_block	-1,{
    OnInit:
    	bindatcmd "warp",strnpcinfo(3)+"::OnAtcommandWarp",20,99;
    	bindatcmd "recall",strnpcinfo(3)+"::OnAtcommandRecall",20,99;
    	//setarray .maps_from$[0], "guild_01", "guild_02"; // Maps they cannot warp from.
    	setarray .maps$[0], // Maps they cannot warp to.
    		"gld2_pay", // GLD DUNGEON
    		"gld_dun01_2", // GLD DUNGEON
    		"gld_dun01", // GLD DUNGEON
    		"gld2_ald", // GLD DUNGEON
    		"gld_dun02_2", // GLD DUNGEON
    		"gld_dun02", // GLD DUNGEON
    		"gld2_prt", // GLD DUNGEON
    		"gld_dun03_2", // GLD DUNGEON
    		"gld_dun03", // GLD DUNGEON
    		"gld2_gef", // GLD DUNGEON
    		"gld_dun04_2", // GLD DUNGEON
    		"gld_dun04", // GLD DUNGEON
    		"schg_dun01", // GLD DUNGEON
    		"teg_dun01", // GLD DUNGEON
    		"teg_dun02", // GLD DUNGEON
    		
    		"odin_tem01", 
    		"odin_tem02", 
    		"rachel", 
    		"lighthalzen", 
    		"lhz_dun01", 
    		"lhz_dun02", 
    		"lhz_dun03", 
    		"hugel", 
    		"veins", 
    		"ve_fild01", 
    		"ve_fild02", 
    		"ve_fild03", 
    		"thor_v01", 
    		"thor_v02", 
    		"thor_v03", 
    		"moc_pryd06", 
    		"ra_fild02", 
    		"ra_fild03", 
    		"ra_fild04", 
    		"lou_dun03", 
    		"prt_maze03", 
    		"bra_dun02", 
    		"splendide", 
    		"manuk", 
    		"man_fild02", 
    		"dic_fild01", 
    		"dic_fild02", 
    		"spl_fild01", 
    		"spl_fild02", 
    		"spl_fild03", 
    		"moc_fild22", 
    		"moc_fild21", 
    		"gl_chyard", 
    		"abyss_03", 
    		"gef_dun02", 
    		"treasure02", 
    		"pay_fild11", 
    		"gon_dun03", 
    		"abbey02", 
    		"abbey03", 
    		"xmas_fild01", 
    		"ra_san05", 
    		"prt_sewb4", 
    		"mosk_dun03", 
    		"ama_dun03", 
    		"kh_dun02", 
    		"xmas_dun02", 
    		"ice_dun03", 
    		"ice_dun02", 
    		"ice_dun01", 
    		"ayo_dun02", 
    		"niflheim", 
    		"anthell02", 
    		"mjolnir_04", 
    		"pay_dun04", 
    		"2@nyd", 
    		"moc_prydn2", 
    		"gef_fild02", 
    		"gef_fild14", 
    		"gef_fild10", 
    		"moc_pryd04", 
    		"in_sphinx5", 
    		"moc_fild17", 
    		"ein_dun02", 
    		"einbroch", 
    		"beach_dun", 
    		"thana_boss", 
    		"tur_dun04", 
    		"jupe_core", 
    		"nameless_n", 
    		"1@tower", 
    		"2@tower", 
    		"3@tower", 
    		"4@tower", 
    		"5@tower", 
    		"6@tower", 
    		"payon"; 		
    		end;
    
    OnAtcommandWarp:
    	if (getgmlevel() == 99 ) goto Bypass_Script_Warp;
    	if(array_find(.maps$[0], strcharinfo(3))>-1) {
    		message strcharinfo(0), "You can't open use warp here!";
    		end;
    	} else if (inarray(.maps$[0], .@atcmd_parameters$)>-1) {
    		message strcharinfo(0), "You can't warp to that map!";
    		end;
    	}
    Bypass_Script_Warp:
    	if(.@atcmd_numparameters)
    		atcommand "@warp "+ implode(.@atcmd_parameters$, " ");
    	else
    		atcommand "@warp";
    	end;
    OnAtcommandRecall:	
    	if(inarray(.maps$[0], strcharinfo(3))>-1) {
    		message strcharinfo(0), "You can't use recall here!";
    		end;
    	}
    	if(.@atcmd_numparameters)
    		atcommand "@recall "+ implode(.@atcmd_parameters$, " ");
    	else
    		atcommand "@recall";
    	end;
    }
    

     

    The array functions should load first before your script or they will not be recognized as function. Try to paste the functions above your script.


  6. On 5/18/2021 at 6:41 PM, cjvirus09 said:

    Hello guys,

     

    I need some help regarding pincode. I'm sending packet (0x8b8) for checking pincode but I encountered unknown packet. It seems like not returning the actual packet I've expected which is the 0xae9 or 0x8b9. See attached file.

     

    I'm not sure if I'm sending the correct string. Do I also need to decrypt the seed?

    pincode_issue.png

     

    RoBrowser doesn't support pin code as far as I know


  7. Hello everyone!

    Been busy for a while, anyway I just want to show this newest plugin I tried to create for hercules emulator.

     

    MVP Death Timer

     

    Quote

    What Does it Do?

    1) Upon killing MVPs, it will save the date and time of death, killerid, monster_id and map where it was killed in the database.

    2) During server restart, reload or sudden crash, before spawning mobs, it will check and differentiate the date and time saved in the database with the current server time and check if the MVP should be alive or dead.
    - If ALIVE, should spawn the MVP
    - If DEAD, will not spawn the MVP, re-create the tomb (if tomb is enabled in the server config) and create a timer to spawn the MVP from the time it was killed

    Pros:
    1) You don't need to worry about server restart (maintenance), server reload (@reloadscript) or sudden crash of the game

    2) MVP will not be abused
    3) The SQL table made can be used in many different ways as well (future plans: like using in fluxcp or even in script to show how many times did a certain player was able to kill a certain MVP(50x killed Amon Ra, 10x killed Tao Gunka), highest rank killer per MVP, total MVP kills per player and so on)

    4) Could be configured or add certain tables if you like other info to be extracted depending on your needs.

    5) No need to edit script files unless you want it to work with the MINI MVP's as well - yes, it could be used with the mini mvps as well

    6) Convex Mirrors can be used as well when using this plugin unlike if you do the saving of death time of MVP through scripts and respawning them thru the monster script command.

    Cons:
    1) I don't know anything so far to be considered as cons using a plugin like this

     

    Created a video:
     

     

    Have a great day everyone! :)


  8. 2 hours ago, migrater said:

    Hello , I came from rA and done converting my item_db and mobdb to hercules using these url https://haru.ws/hercules/mobdbconverter/ 
    https://haru.ws/hercules/itemdbconverter/ 
    but I can't find how to convert the mob skills. Tried to use Server Database Editor, can't figure out how.

    Any help or hints is a big help, Thank you!

    I think you need python to use this:

     

    https://github.com/HerculesWS/Hercules/blob/stable/tools/mobskilldbconverter.py


  9. On 3/12/2021 at 4:53 AM, Hadeszeus said:

    I just want to ask if the Blacksmith Blessing is not working yet or only works in RENEWAL?
    Coz I can't make it work on my 2018 client PRE-RE. Should I use 2020?

    Can't find any topic related to it. Thanks.


    image.png.92f3a4e80bc787585324216827267034.png

     

    as you're using PRE-RE, you need to configure it in your db/pre-re/refine_db.conf

     

    /**************************************************************************
     ************* Entry structure ********************************************
     **************************************************************************
    Armors/WeaponLevel1~4: {                                       // Specifies weapon level or armor type.
    															   // - For armors, values of 100 add 1 armor defense.
    															   // - For weapons, values of 100 add 1 ATK & MATK.
    	StatsPerLevel: (int)                                       // This value is applied for ever level.
    	RandomBonusStartLevel: (int)                               // This value specifies the start point for those levels that give a random bonus value (usually the first unsafe upgrade).
    															   // - RandomBonusStartLevel is only applied for weapons, and not displayed client-side.
    	RandomBonusValue: (int)                                    // A random number between 0 and (Random bonus start level - Upgrade level + 1) * this value is applied for all upgrades past.
    	RefineryUISettings: (
    		{
    			Level: (int or array of int)                       // Holds either the individual refine level meant for this setting or an array defining a range
    			                                                      of Low to Max level
    			BlacksmithBlessing: (int) (optional)               // How many Blacksmith Blessing required for this range to be safe from breaking
    			Announce: "(string)" (optional)                    // Sends an announcement server wide when a player reach this refine level using
    			                                                      Refinery UI, this feature is only available starting from 2017-08-30 RagexeRE or
    																  2017-09-06 Ragexe the field accepts the following values and it defaults to not announce
    																  Success to set the announcement on item refine successful
    																  Failure to set the announcement on item refine failure
    																  Always to always announce it
    			Items: {
    				AegisName: {
    					Type: "(string)"                           // The type to determine the chances used for this item, REFINE_CHANCE_TYPE_*
                                                                      constants are used in here
    					Cost: (int) (optional)                     // Amount of zeny required
    					FailureBehavior: "(string)" (optional)     // The expected behavior on failure for this item, the following strings are used in here
    																  Destroy (default) sets the item to be destroyed on failure
    																  Keep keeps the item after failure
    																  Downgrade downgrades the item by one level on failure
    				}
    			}
    		}
    	)
    	Rates: {                                                   // Per level configuration of the refine rates.
    		Lv1~20: {                                              // Lv1 ~ Lv20.
    			NormalChance: (int)                                // (optional, defaults to 100) Chance of successful refine using normal ores (100 = 100%).
    			EnrichedChance: (int)                              // (optional, defaults to 100 for weapons below refine level 20, otherwise 0.) Chance of successful refine using enriched ores (100 = 100%).
    			EventNormalChance: (int)                           // (optional, defaults to 100) Chance of successful refine using normal ores (100 = 100%) during a refine event.
    			EventEnrichedChance: (int)                         // (optional, defaults to 100 for weapons below refine level 10, otherwise 0.) Chance of successful refine using enriched ores (100 = 100%) during a refine event.
    			Bonus: (int)                                       // (optional, defaults to 0) Bonus (Armor) for this level of refine.
    		}
    		// Note: Refine levels that use default values need not be listed. (Example: Lv1: { NormalChance: 100 Bonus: 0 })
    	}
    }
    **************************************************************************/

     

    Check db/re/refine_db.conf as your reference on how to add

     

    Quote

    BlacksmithBlessing: (int) (optional) // How many Blacksmith Blessing required for this range to be safe from breaking

     


  10. 16 hours ago, Daraen said:

    I have been spamming Hercules Discord for an hour now for an important issue which is that skills above level 10 have no effect, only do one hit, one damage but no developer wants to. look into this topic.

    It will seem that there is no case for WZ_JUPITEL and WZ_METEOR in battle.c but I don't think this is the cause of the problem.

    In short, it doesn't matter if Mistress cast Jupitel THunder level 28 to me, I only get one hit, I'm not knockback and the skill effect is present on me but I only get one hit.

    Same for Meteor Storm level 11, I suffer only one hit per ball.
    It is not normal.

    It looks like there is a problem with any skill above level 10.

    How can you solve this big problem?
    I am using a 2018 client

    Some fix for rAthena : https://github.com/rathena/rathena/issues/4743
    https://github.com/rathena/rathena/commit/b77ba3ae5bb765295df89151170ec4ccb9c5d3cf

     

    Hmm this is confirmed...

     

    As of now, as the skill db is read, if the level for knockback is not written, it doesn't work.

     

    in skill_db.conf (either inside pre-re/re)

     

    This is the pre-re WZ_JUPITEL

    Quote

    {
        Id: 84
        Name: "WZ_JUPITEL"
        Description: "Jupitel Thunder"
        MaxLevel: 10
        Range: 9
        Hit: "BDT_MULTIHIT"
        SkillType: {
            Enemy: true
        }
        SkillInfo: {
            AllowReproduce: true
        }
        AttackType: "Magic"
        Element: "Ele_Wind"
        NumberOfHits: {
            Lv1: 3
            Lv2: 4
            Lv3: 5
            Lv4: 6
            Lv5: 7
            Lv6: 8
            Lv7: 9
            Lv8: 10
            Lv9: 11
            Lv10: 12
        }
        InterruptCast: true
        KnockBackTiles: {
            Lv1: 2
            Lv2: 3
            Lv3: 3
            Lv4: 4
            Lv5: 4
            Lv6: 5
            Lv7: 5
            Lv8: 6
            Lv9: 6
            Lv10: 7
        }
        CastTime: {
            Lv1: 2500
            Lv2: 3000
            Lv3: 3500
            Lv4: 4000
            Lv5: 4500
            Lv6: 5000
            Lv7: 5500
            Lv8: 6000
            Lv9: 6500
            Lv10: 7000
        }
        CoolDown: 0
        Requirements: {
            SPCost: {
                Lv1: 20
                Lv2: 23
                Lv3: 26
                Lv4: 29
                Lv5: 32
                Lv6: 35
                Lv7: 38
                Lv8: 41
                Lv9: 44
                Lv10: 47
            }
        }
    },

     

    Mistress casting a level 28 Jupitel Thunder has no record of KnockBackTiles: which is for Level 28 = no record, no knockback

     

    another thing in src/map/skill.h

     

    Quote

    #define MAX_SKILL_LEVEL           20

     

    Max skill level is defaulted to 20 thus, a level 28 Jupitel Thunder will be defaulted to level 20, but since there is no record of Lv20: for KnockBackTiles: under WZ_JUPITELTHUNDER, no knockback will be made.

     

    If you want to fix your problem (without compiling), simply add

    Lv20: 7 - number of tiles to be knockback

     

    Quote

    {
        Id: 84
        Name: "WZ_JUPITEL"
        Description: "Jupitel Thunder"
        MaxLevel: 10
        Range: 9
        Hit: "BDT_MULTIHIT"
        SkillType: {
            Enemy: true
        }
        SkillInfo: {
            AllowReproduce: true
        }
        AttackType: "Magic"
        Element: "Ele_Wind"
        NumberOfHits: {
            Lv1: 3
            Lv2: 4
            Lv3: 5
            Lv4: 6
            Lv5: 7
            Lv6: 8
            Lv7: 9
            Lv8: 10
            Lv9: 11
            Lv10: 12
        }
        InterruptCast: true
        KnockBackTiles: {
            Lv1: 2
            Lv2: 3
            Lv3: 3
            Lv4: 4
            Lv5: 4
            Lv6: 5
            Lv7: 5
            Lv8: 6
            Lv9: 6
            Lv10: 7
            Lv20: 7
        }
        CastTime: {
            Lv1: 2500
            Lv2: 3000
            Lv3: 3500
            Lv4: 4000
            Lv5: 4500
            Lv6: 5000
            Lv7: 5500
            Lv8: 6000
            Lv9: 6500
            Lv10: 7000
        }
        CoolDown: 0
        Requirements: {
            SPCost: {
                Lv1: 20
                Lv2: 23
                Lv3: 26
                Lv4: 29
                Lv5: 32
                Lv6: 35
                Lv7: 38
                Lv8: 41
                Lv9: 44
                Lv10: 47
            }
        }
    },

     

    But you need to do that in every monster that you're having problem.

     

    Make an issue in github so other developers see it.

     

    Rathena made a way to make the last value entry in database to be the value for level that is not included


  11. 14 hours ago, astralprojection said:

    - i press Butterfly, 2x not working.
    - 3rd time working.
    - i warp to dungeons and press flywing (it brings me to savepoint).
    too annoying :(

    can't reproduce this

     

    are you using latest hercules? and any modifications made in src?


  12. @Daraen ahh sorry, as of now, at default guardians are considered as MVP/boss monsters that's why at default it will not show hp bar. But when config for enabling the HP bar for MVP is enabled, guardians will show HP bar as well. There is no way to differentiate guardians as of now, either they're boss or normal monsters.

     

    I have tried to make a pull request: 

    Quote

     

    I don't know if this is the right fix for this, waiting for the other developers say about it.

     

    But I have tested this pull request on my test server and it should work with config:

    Quote

    // Show hp bar on monsters? (Note 3)
    // NOTE: only works on client 2012-04-04aRagexeRE onwards
    // 1 = Show hp bar on all monsters except Emperium, WOE Guardians and MVP
    // 2 = Enable hp bar on Emperium and WOE Guardians
    // 4 = Enable hp bar on MVP
    // (Default: 1)
    show_monster_hp_bar: 5

    With config 5, all monsters & MVP will show HP bar except for Emperium and WOE Guardians

    and if ever i have missed any monsters (guardians) you could simply add Guardian:true in their modes and do @reloadmobdb


  13. 2 hours ago, Daraen said:

    I hit it, look at the pictures.

    Moreover

     

    // Show hp bar on monsters? (Note 3) // NOTE: only works on client 2012-04-04aRagexeRE onwards // 1 = Show hp bar on all monsters except Emperium and MVP // 2 = Enable hp bar on Emperium // 4 = Enable hp bar on MVP // (Default: 1) show_monster_hp_bar: 1

    
    // Show hp bar on monsters? (Note 3)
    // NOTE: only works on client 2012-04-04aRagexeRE onwards
    // 1 = Show hp bar on all monsters except Emperium and MVP
    // 2 = Enable hp bar on Emperium
    // 4 = Enable hp bar on MVP
    // (Default: 1)
    show_monster_hp_bar: 1

    set to 1, does not show HP bar for MvP and emperium.
    I need the HP bar to be displayed for all monsters except Emperium and WoE guardian
    I have already explained all using pictures

    How did you spawn your guardian in your test?

     

    // Display some mob info next to their name? (Note 3)
    // (does not works on guardian or Emperium)
    // 1: Display mob HP (Hp/MaxHp format)
    // 2: Display mob HP (Percent of full life format)
    // 4: Display mob's level
    show_mob_info: 0
    
    // Show hp bar on monsters? (Note 3)
    // NOTE: only works on client 2012-04-04aRagexeRE onwards
    // 1 = Show hp bar on all monsters except Emperium and MVP
    // 2 = Enable hp bar on Emperium
    // 4 = Enable hp bar on MVP
    // (Default: 1)
    show_monster_hp_bar: 1

     

    With this setting, emperium, mvp and guardian doesn't show HP bar using fresh hercules emulator.

     

    Only normal mobs shows HP bar.

     

    // Display some mob info next to their name? (Note 3)
    // (does not works on guardian or Emperium)
    // 1: Display mob HP (Hp/MaxHp format)
    // 2: Display mob HP (Percent of full life format)
    // 4: Display mob's level
    show_mob_info: (any value above 1) will work on emperium and guardian as well but still no HP bar

     

    @Daraen This following guardians: 1285, 1286, 1287 has this mode:
     

    Quote

    Mode: {
            CanMove: true
            Aggressive: true
            Boss: true
            CanAttack: true
            Detector: true
            CastSensorChase: true
            ChangeChase: true
            Angry: true
            ChangeTargetMelee: true
        }

     

    as you can see they have boss mode enabled thus they are considered MVP afaik, but no MVPexp thus no MVP sign when killed. In default, it should not show for this following guardians.

    The easiest thing is to delete the boss: true in their mode do @reloadmobdb and it should work


  14. 9 hours ago, AnnieRuru said:

    kinda getting nostalgic when playing an old battleground, so I load this src to play

    I just changed line 71 into

    int status_change_end_post( int retVal, struct block_list *bl, enum sc_type type, int tid ) {

    
    int status_change_end_post( int retVal, struct block_list *bl, enum sc_type type, int tid ) {

    and it works

     

     

    can elaborate more ?

    and for the other bug, I'm not sure this can even be fix from server side
    right click to 1:1 whispering is client side thingy I guess

     

     

    but I think this is most useful when showing a small window like this

    screen2020Hercules001.jpg

     

     

    also means those who have client crashing etc, nope I think this is actually built for this feature

    (although I found this was made even before 2013 ??)

    First of all welcome back Annie! :D

     

    The status changes I'm saying was the buffs itself, so when the buff is applied, you could see the [BASFD] added strings + character name in the chat box.

     

    right click to 1:1 whispering is client side thingy I guess - if you use only the party window side, it uses the [BASFD] + character name but if you just right click on the character itself, it uses the character name only.

     

    It seems that it uses the character name displayed in the window.

×
×
  • Create New...

Important Information

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