Jump to content

Emistry

Support Leaders
  • Content Count

    526
  • Joined

  • Days Won

    21

Reputation Activity

  1. Upvote
    Emistry got a reaction from monkey77 in Usable Enchant Item   
    File Name: Usable Enchant Item
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description :
    Players are able to click on the Enchant items to provide custom bonus to the selected equipment.
     
    Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.
    The current items and bonuses display in the video is just a sample for demo.
     
    The origin of the idea come from Diablo and 張阿神.
     
    Preview :

     
    Click here to download this file
  2. Upvote
    Emistry got a reaction from Easycore in Usable Refinery Ores   
    File Name: Usable Refinery Ores
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description
    Players are able to click on the Ores items to refine the selected equipment. They can refine their Equipment at anywhere anytime they want.
     
    Based on requirement of Weapon Level and Type, different ores might be needed as well as Zeny.
     
    Preview

     
    Click here to download this file
  3. Upvote
    Emistry got a reaction from Tsuuu in Usable Enchant Item   
    File Name: Usable Enchant Item
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description :
    Players are able to click on the Enchant items to provide custom bonus to the selected equipment.
     
    Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.
    The current items and bonuses display in the video is just a sample for demo.
     
    The origin of the idea come from Diablo and 張阿神.
     
    Preview :

     
    Click here to download this file
  4. Upvote
    Emistry got a reaction from minx123 in Usable Enchant Item   
    File Name: Usable Enchant Item
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description :
    Players are able to click on the Enchant items to provide custom bonus to the selected equipment.
     
    Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.
    The current items and bonuses display in the video is just a sample for demo.
     
    The origin of the idea come from Diablo and 張阿神.
     
    Preview :

     
    Click here to download this file
  5. Upvote
    Emistry got a reaction from Prourhildr in Usable Refinery Ores   
    File Name: Usable Refinery Ores
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description
    Players are able to click on the Ores items to refine the selected equipment. They can refine their Equipment at anywhere anytime they want.
     
    Based on requirement of Weapon Level and Type, different ores might be needed as well as Zeny.
     
    Preview

     
    Click here to download this file
  6. Upvote
    Emistry got a reaction from Jezu in Usable Refinery Ores   
    File Name: Usable Refinery Ores
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description
    Players are able to click on the Ores items to refine the selected equipment. They can refine their Equipment at anywhere anytime they want.
     
    Based on requirement of Weapon Level and Type, different ores might be needed as well as Zeny.
     
    Preview

     
    Click here to download this file
  7. Upvote
    Emistry got a reaction from Prourhildr in Usable Enchant Item   
    File Name: Usable Enchant Item
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description :
    Players are able to click on the Enchant items to provide custom bonus to the selected equipment.
     
    Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.
    The current items and bonuses display in the video is just a sample for demo.
     
    The origin of the idea come from Diablo and 張阿神.
     
    Preview :

     
    Click here to download this file
  8. Upvote
    Emistry got a reaction from Quazi in Usable Refinery Ores   
    File Name: Usable Refinery Ores
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description
    Players are able to click on the Ores items to refine the selected equipment. They can refine their Equipment at anywhere anytime they want.
     
    Based on requirement of Weapon Level and Type, different ores might be needed as well as Zeny.
     
    Preview

     
    Click here to download this file
  9. Upvote
    Emistry got a reaction from Jezu in Usable Enchant Item   
    File Name: Usable Enchant Item
    File Submitter: Emistry
    File Submitted: 18 Jan 2016
    File Category: Utility
     
    Description :
    Players are able to click on the Enchant items to provide custom bonus to the selected equipment.
     
    Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.
    The current items and bonuses display in the video is just a sample for demo.
     
    The origin of the idea come from Diablo and 張阿神.
     
    Preview :

     
    Click here to download this file
  10. Upvote
    Emistry got a reaction from ZelosAvalon in [Suggestion] New Time Line showing Added and Non Added stuffs   
    https://github.com/HerculesWS/Hercules/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Match+Official+Content%22
  11. Upvote
    Emistry got a reaction from AnnieRuru in GM privilege auto update   
    if ( setgroupid( .@groupid, .@aid ) == false ) { // group id not exist or failed close;} we dont really need a checkgroupid script command because inside the setgroupid, they already have the checking.
  12. Upvote
    Emistry got a reaction from AnnieRuru in [Suggestion] Add *getequipuniqueid script cmd   
    maybe they haven't found any useful implementation for uniqueid ?? this caused it placed in low priority maybe ? haha
     
    there are several place we could have it implemented tho
    getitem / geitem2 - return new unique id if any deleteuniqueid( <unique id> ); - delete item based  on unique id hasuniqueid( <unique id> ); - check if item with the said unique id exist  

  13. Upvote
    Emistry got a reaction from AnnieRuru in OnHour00 player's value recover   
    out of curiosity ...
     
    @Annie
    return atoi( gettime(GETTIME_YEAR) + gettimestr("%m%d", 5) ); why not use this?
    return atoi( gettimestr("%Y%m%d", 9) ); any drawback ??
  14. Upvote
    Emistry got a reaction from xlaws27 in i need help to disable players hexing my client.exe   
    https://github.com/HerculesWS/Hercules/blob/master/conf/login-server.conf#L150
  15. Upvote
    Emistry got a reaction from tyr_12 in [need] 'Clean' Server emulator / Compiled version of Hercules   
    https://github.com/HerculesWS/Hercules/archive/master.zip
     
    there are no pre-compiled version anymore.
  16. Upvote
    Emistry got a reaction from humble in delete item even char is offline   
    .@aid = getcharid( 3,rid2name( $pvp_aid ) );if ( .@aid ) { delitem 501,1,.@aid;}else { query_sql( "DELETE FROM `inventory` WHERE `nameid` = 501 AND `char_id` = "+$pvp_aid+" LIMIT 1" );}
  17. Upvote
    Emistry got a reaction from AnnieRuru in [Help] Monster Kill   
    you can use another variable to store the total extra status point given.
     
    when reset npc do a status reset, just add the total extra status point given.
     
    resetstatus;StatusPoint += EXTRA_STATUS_POINTS;end;
  18. Upvote
    Emistry reacted to AnnieRuru in OnPCUseSkillEvent   
    After so many years of hearing rumor of this modification,
    finally today is the day I can release this to public
     
    Download : 1.5
    plugin
     
    original topic from eathena
     
     
  19. Upvote
    Emistry reacted to AnnieRuru in OnPCUseSkillEvent   
    Tested with
    db/re/skill_db.conf
    { Id: 2991 Name: "CUSTOM_damage" Description: "CUSTOM_damage" MaxLevel: 1 Range: 15 SkillType: { Enemy: true } Event_Label: "qwer::Ontarget" }, { Id: 2992 Name: "CUSTOM_nodamage" Description: "CUSTOM_nodamage" MaxLevel: 1 Range: 15 SkillType: { Friend: true } Event_Label: "qwer::Ontarget" }, { Id: 2993 Name: "CUSTOM_setpos" Description: "CUSTOM_setpos" MaxLevel: 3 Range: 15 SkillType: { Place: true } Event_Label: "qwer::Onpos" }, { Id: 2994 Name: "CUSTOM_self" Description: "CUSTOM_self" MaxLevel: 1 Range: 15 SkillType: { Self: true } Event_Label: "qwer::Onself" },
    data/luafiles514/lua files/skillinfoz/skillinfolist.lub
    [SKID.CUSTOM_damage] = { "CUSTOM_damage"; SkillName = "Get Target enemy", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_nodamage] = { "CUSTOM_nodamage"; SkillName = "Get Target friend", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_setpos] = { "CUSTOM_setpos"; SkillName = "Get Position", MaxLv = 3, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, [SKID.CUSTOM_self] = { "CUSTOM_self"; SkillName = "Self Cast", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 1 }, },
    data/luafiles514/lua files/skillinfoz/skillid.lub
    CUSTOM_damage = 2991, CUSTOM_nodamage = 2992, CUSTOM_setpos = 2993, CUSTOM_self = 2994,
    data/luafiles514/lua files/skillinfoz/skilldescript.lub
    [SKID.CUSTOM_damage] = { "Test Target Enemy", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskilltarget' for the GID.", }, [SKID.CUSTOM_nodamage] = { "Test Target Friend", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskilltarget' for the GID.", }, [SKID.CUSTOM_setpos] = { "Test Coordinate", "MAX Lv : 3 ", "push these variables :-", "'@useskilllv' for the skill level.", "'@useskillx' for the X coordinate.", "'@useskilly' for the Y coordinate.", }, [SKID.CUSTOM_self] = { "Test Self", "MAX Lv : 1 ", "push these variables :-", "'@useskilllv' for the skill level.", }  
    and finally the npc script
    - script qwer FAKE_NPC,{ Ontarget: dispbottom "lv: "+ @useskilllv +" | target "+ @useskilltarget; unittalk @useskilltarget, "from "+ strcharinfo(PC_NAME); end; Onpos: dispbottom "lv: "+ @useskilllv +" | x: "+ @useskillx +" | y: "+ @useskilly; end; Onself: dispbottom "lv: "+ @useskilllv; end; OnPCStatCalcEvent: skill CUSTOM_damage, 1; skill CUSTOM_nodamage, 1; skill CUSTOM_setpos, 3; skill CUSTOM_self, 1; end; }  
    fuh !
    so, yes, this is basically making a new skill, so read this wiki on how to make a new skill
    http://herc.ws/wiki/Adding_new_skills

    Frequently Asked Question
    Why some skill ID doesn't work ?
    see this inside skill_get_index function
    //[Ind/Hercules] GO GO GO LESS! - http://herc.ws/board/topic/512-skill-id-processing-overhaul/ else if( skill_id > 1019 && skill_id < 8001 ) { if( skill_id < 2058 ) // 1020 - 2000 are empty skill_id = 1020 + skill_id - 2001; else if( skill_id < 2549 ) // 2058 - 2200 are empty - 1020+57 skill_id = (1077) + skill_id - 2201; else if ( skill_id < 3036 ) // 2549 - 3000 are empty - 1020+57+348 skill_id = (1425) + skill_id - 3001; else if ( skill_id < 5044 ) // 3036 - 5000 are empty - 1020+57+348+35 skill_id = (1460) + skill_id - 5001; else ShowWarning("skill_get_index: skill id '%d' is not being handled!\n",skill_id); }  
    because eathena forum down, let me rephrase again what this modification does
    if the skill inf type is INF_ATTACK_SKILL (target enemy only) - Enemy: true
    - kill the unit with *unitkill
    - zap another player's health with *heal -1000, 0;
    - apply curse status with *sc_start
    - make the target *unittalk ...
    - etc etc etc...
    if the skill inf type is INF_SUPPORT_SKILL (target friends and enemy) - Friend: true
    - check if the player is party members, give buff by *sc_start
    - check if the player is guild members, give buff by *sc_start during events
    - make the player show emotion
    - warp the target player to somewhere else
    - give players item/stat/cashpoints .... by *getitem/*statusup  ... *attachrid + #CASHPOINTS
    if the skill inf type is INF_GROUND_SKILL (target ground) - Place: true
    - use *monster script command to summon monsters
    - *makeitem to rain items ... skill level determine the item ID ...
    - create a temporary npc .... using duplicatenpc plugin
    - etc etc etc ...
    this is just things I can think of, basically you can do ANYTHING with any script commands available
    2nd thing is, when the skill type is INF_SUPPORT_SKILL, (Friend: true)
    you have to hold shift to target players
    this is client side limitation, require client hexing ... which I dunno how to do
    History:
    Question: Why there is no OnPCUseSkillEvent label in the npc script, but using the title OnPCUseSkillEvent ?
    ... eathena forum down
    because the original modification made during eathena was something like this
    OnPCUseSkillEvent: switch ( @useskillid ) { case 2991: switch ( @useskilllv ) { case 1: case 2: case 3: ... } break; case 2992: switch ( @useskilllv ) { ... } break; ... default: end; } which runs this label every time a player use ANY skill
    and the original custom modification tax very heavily on server resources
    that's why now this (revamp) version only pick which skill ID to run, along with your configurable event label
  20. Upvote
    Emistry got a reaction from Legend in npctimer question   
    if "x event" and "y event" are 2 separated NPC. then it wouldn't conflict.
  21. Upvote
    Emistry got a reaction from AnnieRuru in edite my Healer by AnnieRuru   
    .@ori = countitem(Oridecon_Stone); if ( .@ori >= 5 ) { getitem Oridecon, .@ori / 5; delitem Oridecon_Stone, .@ori / 5 * 5; message strcharinfo(0), "Refined "+ ( .@ori / 5 * 5 ) +" Oridecon Stones, got "+ ( .@ori / 5 ) +" Oridecons."; } about this part ...
    i think should delete the items before give the user new items.
     
    if the player hold 99% of Elunium Stone and try to exchange into Elunium with the healer.
    the healer will probably give the Elunium, and the players overweight, items maybe not given / dropped on floor.
  22. Upvote
    Emistry got a reaction from Garr in R> Block Class Script   
    OnPCLoadMapEvent is better if you want to block it from woe since they can recall the guild member using skill which bypass the woe portal.
     
    @@Garr
    your script will caused error when loaded since no char is attached to call the strcharinfo() script command.
     
    beside it need loadevent mapflag to make it work.
  23. Upvote
    Emistry got a reaction from Domo in Mes   
    - script whisper -1,{ OnWhisperGlobal: .@aid = getcharid( 3,@whispervar0$ ); if ( !.@aid ) { dispbottom "char not found."; } else if ( attachrid( .@aid ) ) { mes "You have been murdered."; close2; unitkill .@aid; } end;} npc:whisper # player_name
  24. Upvote
    Emistry got a reaction from minx123 in not exist item and invalid RID   
    double check all your script that using the rid2name script command
  25. Upvote
    Emistry reacted to AnnieRuru in Add *pcblockattack *pcblockskill *pcblockchat *pcimmune script commands   
    current format
    http://upaste.me/c7ed2182125d6a31b

    already tested with
    - script sdfhdskfj FAKE_NPC,{OnInit: bindatcmd "@pcblock", strnpcinfo(0)+"::Onaaa"; setarray .name$, "BLOCK_MOVE", "BLOCK_ATTACK", "BLOCK_SKILL", "BLOCK_USEITEM", "BLOCK_CHAT", "BLOCK_IMMUNE", "BLOCK_SITSTAND"; setarray .flag$, " [^ff0000OFF^000000]", "[^0000ffON^000000]"; end;Onaaa: for ( .@i = 0; .@i < 7; .@i++ ) .@menu$ = .@menu$ + .name$[.@i] + .flag$[ !!( checkpcblock() & (1 << .@i) ) ] +":"; .@s = select( .@menu$ ) -1; pcblock 1 << .@s, !( checkpcblock() & (1 << .@s) ); close;} .

    BLOCK_COMMAND !!
    omg how can I miss this one, need this one asap

    the rest are redundant

    BLOCK_ATCOMMAND
    - repeated ???

    BLOCK_DROP
    - already has nodrop mapflag

    BLOCK_GSTORAGE
    - I seriously think this should belongs to nostorage mapflag
    ima thinking of making one

    BLOCK_NOIDEAWHATELSETOPOSTHERE
    hmm ... this long name makes me google 'what is the longest identifier in c++'
    answer is 2048 -> https://msdn.microsoft.com/en-us/library/565w213d.aspx
    .
    .
    I actually thought about this
    but the blockedmove and monster_ignore is quite everywhere in the source ... don't feel like touching them
    ima thinking of changing checkpcblock into getpcblock
     


    after 2nd thought, I change them 1st then see how Haru react to it
×
×
  • Create New...

Important Information

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