-
Content Count
526 -
Joined
-
Days Won
21
Reputation Activity
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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.
-
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
-
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 ??
-
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
-
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.
-
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" );} -
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; -
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
-
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
-
Emistry got a reaction from Legend in npctimer question
if "x event" and "y event" are 2 separated NPC. then it wouldn't conflict.
-
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.
-
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.
-
-
Emistry got a reaction from minx123 in not exist item and invalid RID
double check all your script that using the rid2name script command
-
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