Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Horror Toy Factory Instance implementation based on official conversion. #1539

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

AtlantisRO
Copy link
Contributor

@AtlantisRO AtlantisRO commented Jan 2, 2017

Pull Request Prelude

Changes Proposed

This is a conversion from the script provided by esu1214 from Hercules' Boards in a collaboration with @Ridley8819 and @AtlantisRO, with the translation from Traditional Chinese language by Steph.

Affected Branches: master

Issues addressed: #240 Episode 14.2 : Eclage (Part of TODO list of updates)

Known Issues and TODO List


This change is Reviewable

@MishimaHaruna MishimaHaruna added the status:code-review Awaiting code review label Jan 2, 2017
@hemagx
Copy link
Contributor

hemagx commented Jan 2, 2017

Such great release, what's missing in source parts other than those two commands? (possible description?).
i will work on this to merge asap

@Ridley8819
Copy link

@hemagx
Missing is the setunitdata/getunitdata and those skills he mentioned. But even without them it's in a playable state

@hemagx
Copy link
Contributor

hemagx commented Jan 2, 2017

possible description?

@iRagno
Copy link
Contributor

iRagno commented Jan 2, 2017

Script commands actually is like the ones from AnnieRuru: http://herc.ws/board/topic/11097-setmobdata-getmobdata/ to check and adjust monsters hp according to the script.

And the skills are the ones commented on mob_skill_db.txt

@Asheraf
Copy link
Contributor

Asheraf commented Jan 2, 2017

Just to mention somethings

  • the npc #fac1bs should have no visible name (issue npctalk with empty NPC_NAME #1523 ).
  • the npc Worker#1 should stop you from doing anything while he is talking (*pcblock).
  • for npc Gold Hand Birina#1 i would suggest using this one here.
  • We still miss some kind of mob mod so some monsters won't attack you if you're disguising as xmas cookie.
  • Last thing why not iRO Translation?

Loc: 136
EquipLv: 100
Script: <"
bonus bMaxSP ,-300;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space here

Type: 0
Weight: 20
BuyingStore: true
Script: <" itemheal 0, rand(80,100); ">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space here

Type: 0
Weight: 20
BuyingStore: true
Script: <" itemheal rand(800,1000), 0; ">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space here

Weight: 10
Loc: 64
Script: <"
.@r = getrefine();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to use a variable here check #1441

Loc: 64
Script: <"
.@r = getrefine();
bonus2 bAddRace, RC_All, 1+.@r/2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces

Script: <"
.@r = getrefine();
bonus2 bAddRace, RC_All, 1+.@r/2;
bonus bMatkRate, 1+.@r/2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces

.@r = getrefine();
bonus2 bAddRace, RC_All, 1+.@r/2;
bonus bMatkRate, 1+.@r/2;
bonus bMaxHPrate, -2-2*(.@r/2);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces

Loc: 2
Script: <"
bonus bMatkRate, 10;
bonus5 bAutoSpell, NPC_CRITICALWOUND, 3, 50+5*(getrefine()/3), BF_MAGIC, 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces

@Ridley8819
Copy link

Ridley8819 commented Jan 2, 2017

@hemagx
Skill 716 - NPC_MAXPAIN is a skill of HIDDEN_MOB7with ID 3038.
I don't know why Celine doesn't have that skill by herself. Instead this mob has it. Idon't have much info of maxpain, all I found was a korean patch note of 2014/04/02 where it states something like "Fixed a bug with the damage reflection of the Skill Max Pain [NPC exclusive]". Another thing I found is, that it deals damage dealt to her (Celine) back in AOE

Skill 719 - NPC_HELLBURNING
"Ice Mine, Flame Cross, and Hell Burning is said to be AoE's that stay on the ground for a while."
"This skill spam ~ anopheles in line x 4 w,e,n,s and effect firewall during xx seconds you can see in most videos at youtube"

https://youtu.be/jHtsfjvNXm8?t=107
at 1:47 you can see those fire walls appearing.


I have no idea of formulas or anything. But iRO added a site on their wiki for HTF on 15th Dec. Maybe they gonna add it and probably add skill description and formulas too.

@iRagno
Copy link
Contributor

iRagno commented Jan 3, 2017

for npc Gold Hand Birina#1 i would suggest using this one here.

That part was more a conversion more stricted to original script, it almost hasn't improvement, not as for instance. I guess it's better to improve it like on example. However, the usage of disable_items it is not needed, since that npc doesn't make any evaluation that involves equiped gears. Put them is meaningless, as well as don't puting it (or puting it commenting it with a note pointing that).

Last thing why not iRO Translation?

About translation, this text was translated some days before or by the same days of implementation of htf on iRO from chinese by a person who naturally speak chinese (as far as I know). I think this are well doned (as many other scripts that has also custom translation before were implemented by iRO).

I would not mind to gather text from iRO, but I don't have the characters to met the instance requierement.

As for the spaces, it will be fixed.

@Asheraf
Copy link
Contributor

Asheraf commented Jan 3, 2017

@ragn0 I could give you the texts from iRO since i already gathered them when they released the instance.

@Ridley8819
Copy link

iRO translation is always the last option to follow. We use it on some other scripts but in most cases it has issues with grammar and more.

@matheus00123
Copy link

Sorry my english I'm using google translator

Is quest_db missing?
Because everything is correct more at the time of initiating the instance accuses that the quest does not exist in db.

@iRagno
Copy link
Contributor

iRagno commented Jan 8, 2017

Yes, it was missed quest_db entryes. Our mistake. It will be added in the same commit that fixes Asheraf's review.

@iRagno
Copy link
Contributor

iRagno commented Jan 10, 2017

Prior to send new commit, I have a question. According to kRO database, item 19686 - Costume Santa Doll Headband has an effect of small chance to become in Antonio:

산타인형을 모티브로 장식된 머리띠.
물리, 마법 공격 시 일정확률로 안토니오가 빙의된다.
계열 : 의상장비 방어 : 0
위치 : 상단 무게 : 0
요구 레벨 : 1
장착 : 전직업
http://ro.gnjoy.com/guide/runemidgarts/itemview.asp?itemSeq=3&ID=19686

Second line can be translated to: "Physical, Magical Attack: There is a certain probability to transform in Antonio."

This is a Costume headgear. Does this has an effect?

@Asheraf
Copy link
Contributor

Asheraf commented Jan 10, 2017

@ragn0 the item has the same description on iRO too
Adds a X% chance of transforming into Antonio for X TIME when dealing a physical or magical attack.

@iRagno
Copy link
Contributor

iRagno commented Jan 12, 2017

Added requested changes, with some more cleaning and modifications that include changes to npctalk messages with a more accurate behavior, but, this will show double npc name until issue #1523 is fixed.

@Asheraf
Copy link
Contributor

Asheraf commented Jan 12, 2017

Font weight FW_NORMAL and size 12 are the default values for the announce command so we could remove them.

@iRagno
Copy link
Contributor

iRagno commented Jan 12, 2017

Yes, I know, but it is a reminiscence from original script, that is why we keep that.

@iRagno
Copy link
Contributor

iRagno commented Jan 12, 2017

Also, since we have chinese text thanks to esu1214, we could make traditional chinese translation file to have it with huld. Already pr here:

HerculesWS/CommunityTranslations#1

It may be not a big issue for us, or at least to people who doesn't speak Traditional Chinese, but, it's kinda awesome to see HULD in action with a hard language as Chinese is. That kind of things make us feel proud to have Hercules.

@Ridley8819 Ridley8819 added component:core:scriptengine Affecting the script engine or the script commands component:mechanics:skills Affecting the skills' game mechanics component:scripts Affecting the scripts and NPCs mode:renewal For strictly Renewal issues labels Feb 11, 2017
@Ridley8819 Ridley8819 added this to the Match Official Content milestone Feb 11, 2017
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2016 Hercules Dev Team
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

//= Copyright (C) 2017 Hercules Dev Team

break;
case 4:
.@mapy -= 2;
.@mapx += rand(0, 2) - 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use this ?

.@mapy += rand(-1, 1);

break;
case 3:
.@mapy += 2;
.@mapx += rand(0, 2) - 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use this ?

.@mapy += rand(-1, 1);

break;
case 2:
.@mapx -= 2;
.@mapy += rand(0, 2) - 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use this ?

.@mapy += rand(-1, 1);

switch (.@i) {
case 1:
.@mapx += 2;
.@mapy += rand(0, 2) - 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use this ?

.@mapy += rand(-1, 1);

setarray(.@xy[1], 195, 47, 211, 63);
break;
case 7:
setarray(.@xy[1], 124, 44, 140, 60);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all array should start with index 0....

setarray(.@xy[1], 124, 44, 140, 60);
break;
case 8:
setarray(.@xy[1], 154, 44, 170, 60);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all array should start with index 0....

setarray(.@xy[1], 154, 44, 170, 60);
break;
case 9:
setarray(.@xy[1], 225, 19, 241, 35);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all array should start with index 0....

setarray(.@xy[1], 225, 19, 241, 35);
break;
case 10:
setarray(.@xy[1], 201, 19, 217, 35);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all array should start with index 0....

for (.@i = 0; .@i < 22; ++.@i) {
getmapxy(.@mapname$, .@mapx, .@mapy, UNITTYPE_MOB, 'xm_celine_gid);
.@x = (.@mapx + rand(1, 20)) - 10;
.@y = (.@mapy + rand(1, 20)) - 10;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.@x = (.@mapx + rand(1, 20)) - 10;
.@y = (.@mapy + rand(1, 20)) - 10;

change to

.@x = (.@mapx + rand(-9, 10));
.@y = (.@mapy + rand(-9, 10));

@minneman
Copy link

minneman commented Mar 5, 2017

thanks for awesome work :D

Sorry, but i have problems to install setmobdata patch
http://herc.ws/board/topic/11097-setmobdata-getmobdata/
how i can implement this if source look's completly diferent?

@iRagno
Copy link
Contributor

iRagno commented Mar 5, 2017

Working on requested changes.

@minneman: You better check this: #1584

@iRagno
Copy link
Contributor

iRagno commented Mar 6, 2017

@Emistry: Just applied requested changes to set arrays starting index to 0. Also make some improvements allowing to drop some lines and fix one message.

About npc "#bgm01" and others npc, those are the official names, but it can be changed. I think the same before, but also remember there is npcs called "Weapon Dealer", "Tool Dealer", "Fruit Gardener" and "Armor Dealer" all attached to Dewata, so, I assume having "#bgm01" was natural. However, if need to be changed just tell me to change it.

Also, I have another question. The "Workers" npcs summons monsters when player has not the right transform. Almost all of them centered the area to make the summons at 8 cells around the npc coords, almost all of them except Worker#9 and Worker#10.

Those npc seems to be bug on Aegis and maybe those coords aren't correct. I leave a comment pointing those npcs on last pull request and I think it can be fixed, but I want to ask what can be done in this cases. Fixing those coords would allow usage of getmapxy command to simplify the gathering of coordinates.

@Emistry
Copy link
Member

Emistry commented Mar 6, 2017

the npc, just suggestion .. since its official npc name, then just ignore it then.

about the monster spawn location, I have no idea, could be a bug for aegis ...
if I recall correctly, we does encounter a similar monster spawn bug in nydhorg nest instance too.

maybe @HerculesWS/developers can help ....

@iRagno
Copy link
Contributor

iRagno commented Mar 7, 2017

After check it deeply I just saw those coordinates are intended for those specific npcs, so, didn't changed them.

Applied some cleaning and also introduced a function to allow server administrators to choose if enable re-entering to htf instance on same runing or deny re-entering instance (official and defaulted behaviour).

If that function isn't needed I can remove it, but it has been so requested in our server that decided to share with everyone.

@Ridley8819, @Asheraf @Jedzkie: Please tell me after review changes to squash commits.

@iRagno
Copy link
Contributor

iRagno commented Mar 9, 2017

Squashed commits and updated pull request with new template.

@iRagno
Copy link
Contributor

iRagno commented Mar 11, 2017

Just removed an extra usage of one parenthesis at line 922:

npctalk((strnpcinfo(NPC_NAME_HIDDEN) != "8" ? _("Worker: Officers! Where are the Officers!? There're humans here!") : _("Worker: Officers! Officers!!")));

changes to:

npctalk(strnpcinfo(NPC_NAME_HIDDEN) != "8" ? _("Worker: Officers! Where are the Officers!? There're humans here!") : _("Worker: Officers! Officers!!"));

@Asheraf: It's marking you are still requesting changes, I did those some time ago.

Weight: 10
Loc: 64
Script: <"
bonus2 bAddRace, RC_All, 1 +getrefine()/2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 + getrefine() / 2

Loc: 64
Script: <"
bonus2 bAddRace, RC_All, 1 +getrefine()/2;
bonus bMatkRate, 1 +getrefine()/2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 + getrefine() / 2

Script: <"
bonus2 bAddRace, RC_All, 1 +getrefine()/2;
bonus bMatkRate, 1 +getrefine()/2;
bonus bMaxHPrate, -2 -(getrefine()/2) *2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-2 - (getrefine() / 2) * 2

Loc: 2
Script: <"
bonus bMatkRate, 10;
bonus5 bAutoSpell, NPC_CRITICALWOUND, 3, 50 +5 *(getrefine()/3), BF_MAGIC, 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

50 + 5 * (getrefine() / 3)

Buy: 1440
Weight: 10
BuyingStore: true
Script: <" if (rand(1000) < 300) sc_start SC_CURSE, 30000, 0, 3000, SCFLAG_NONE; ">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in a new line

bonus4 bAutoSpell, WZ_FROSTNOVA, 10, 25, 0;
bonus4 bAutoSpell, SO_PSYCHIC_WAVE, 10, 15, 1;
bonus5 bAutoSpell, HW_MAGICPOWER, 1, 15, BF_MAGIC, 0;
bonus5 bAutoSpellWhenHit, DC_SCREAM, 1, 50, BF_WEAPON|BF_MAGIC, 0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces BF_WEAPON | BF_MAGIC

@iRagno
Copy link
Contributor

iRagno commented Mar 11, 2017

Aplied review. Thanks @Asheraf.

@FlippAcademy
Copy link
Contributor

This pull has conflicts @iRagno . I think once the fixes are made, could be merged, no? @Asheraf

@Asheraf
Copy link
Contributor

Asheraf commented Mar 29, 2017

@Mysteries I'd prefer waiting #1584 before merging this.
Edit: #1571 as well.

@iRagno
Copy link
Contributor

iRagno commented Mar 29, 2017

I have solved the conflicts. Conflict was originated on f75bfae, when was moved all mapflags for instances to zone db, making it easier to bring mapflags to new instances. As result, files changed was reduced from 17 to only 9.

About the merge, this instance is completely playable even without the unit controlling script commands in #1584, but this instance is easier without it. Same for #1571, this is playable, but #fac1bs npc will add npc name in npctalks, showing it ugly.

The script is prepared to use those pr, I'm with @Asheraf, it would be better to have those pr applied before merging this into master.

…fixup]

Signed-off-by: Ragno <ragno@atlantis-ro.net>
Copy link
Contributor

@Zarbony Zarbony left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PCBLOCK isnt usable now.
mob_skill_db need an Upgrade to the new shema.
All other things are just working, still need some updates.

Here are mine Sheme from the Mob Skill DB:

XM_TREE:{
AS_GRIMTOOTH: {
SkillState: "MSS_RUSH"
SkillLevel: 5
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_CURSEATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 1000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_UNDEADATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MG_THUNDERSTORM: {
SkillState: "MSS_BERSERK"
SkillLevel: 10
Rate: 2000
CastTime: 1000
Delay: 10000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
TF_SPRINKLESAND: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MG_LIGHTNINGBOLT: {
SkillState: "MSS_RUSH"
SkillLevel: 10
Rate: 2000
CastTime: 1000
Delay: 30000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_ANTONIO: {
AL_TELEPORT: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AL_TELEPORT: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MSS_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_RUN: {
SkillState: "MSS_BERSERk"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 0
Cancelable: false
SkillTarget: "MSS_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_RUN: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 0
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
SA_REVERSEORCISH: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
SA_REVERSEORCISH: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MG_SAFETYWALL: {
SkillState: "MSS_BERSERK"
SkillLevel: 10
Rate: 1000
CastTime: 1000
Delay: 10000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AL_INCAGI: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 700
Delay: 1000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
}
XM_COOKIE:{
MG_COLDBOLT: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 500
CastTime: 500
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MG_COLDBOLT: {
SkillState: "MSS_RUSH"
SkillLevel: 3
Rate: 500
CastTime: 500
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_ENERGYDRAIN: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_ENERGYDRAIN: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
PR_LEXAETERNA: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
PR_LEXAETERNA: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
SA_REVERSEORCISH: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 50
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
SA_REVERSEORCISH: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 50
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_CRUISER:{
NPC_COMBOATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 2
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
AC_CHARGEARROW: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
AC_CHARGEARROW: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 2000
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
AC_DOUBLE: {
SkillState: "MSS_BERSERK"
SkillLevel: 7
Rate: 2000
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_MYSTCASE:{
NPC_WIDESILENCE: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
BS_HAMMERFALL: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 500
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_CURSEATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 4
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_HALLUCINATION: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_HALLUCINATION: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_LUDE: {
AS_CLOAKING: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AS_CLOAKING: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AS_CLOAKING: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
MO_BODYRELOCATION: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MO_BODYRELOCATION: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_HYLOZOIST:{
NPC_SILENCEATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 4
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_HALLUCINATION: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_HALLUCINATION: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MO_BODYRELOCATION: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
AS_CLOAKING: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AS_CLOAKING: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_TELEKINESISATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 8
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_MARIONETTE:{
AS_CLOAKING: {
SkillState: "MSS_RUSH"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 10000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
AS_CLOAKING: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 2000
CastTime: 0
Delay: 10000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
MG_FIREBALL: {
SkillState: "MSS_BERSERK"
SkillLevel: 8
Rate: 2000
CastTime: 800
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
MG_FIREWALL: {
SkillState: "MSS_RUSH"
SkillLevel: 8
Rate: 500
CastTime: 500
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_TELEKINESISATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 8
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_TEDDY_BEAR:{
NPC_CURSEATTACK: {
SkillState: "MSS_BERSERK"
SkillLevel: 4
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_CURSEATTACK: {
SkillState: "MSS_RUSH"
SkillLevel: 4
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_CRITICALSLASH: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 500
CastTime: 0
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
SA_DISPELL: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 50
CastTime: 1000
Delay: 15000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
BS_HAMMERFALL: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 500
CastTime: 1000
Delay: 5000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
}
XM_CELINE_KIMI:{
AL_HEAL: {
SkillState: "MSS_IDLE"
SkillLevel: 10
Rate: 10000
CastTime: 500
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 90
}
NPC_CRITICALWOUND: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 1000
CastTime: 0
Delay: 10000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_PULSESTRIKE: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 10000
CastTime: 0
Delay: 20000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_DARKSTRIKE: {
SkillState: "MSS_BERSERK"
SkillLevel: 10
Rate: 500
CastTime: 0
Delay: 20000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_DARKTHUNDER: {
SkillState: "MSS_BERSERL"
SkillLevel: 9
Rate: 500
CastTime: 1000
Delay: 20000
Cancelable: true
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_WIDESTONE: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 1000
Delay: 30000
Cancelable: true
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_WIDESLEEP: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 1000
Delay: 30000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 20
}
NPC_WIDESOULDRAIN: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 5000
Delay: 50000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 10
}
NPC_POWERUP: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 10000
CastTime: 0
Delay: 50000
Cancelable: false
SkillTarget: "MST_"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 5
}
}
G_XM_CELINE_KIMI:{
AL_HEAL: {
SkillState: "MSS_IDLE"
SkillLevel: 10
Rate: 10000
CastTime: 500
Delay: 5000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 90
}
NPC_CRITICALWOUND: {
SkillState: "MSS_BERSERK"
SkillLevel: 2
Rate: 1000
CastTime: 0
Delay: 10000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_PULSESTRIKE: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 20000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_DARKSTRIKE: {
SkillState: "MSS_BERSERK"
SkillLevel: 5
Rate: 500
CastTime: 0
Delay: 20000
Cancelable: false
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_DARKTHUNDER: {
SkillState: "MSS_BERSERL"
SkillLevel: 4
Rate: 500
CastTime: 1000
Delay: 20000
Cancelable: true
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_WIDESTONE: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 30000
Cancelable: true
SkillTarget: "MST_TARGET"
CastCondition: "MSC_ALWAYS"
}
NPC_WIDESLEEP: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 1000
Delay: 30000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 20
}
NPC_WIDESOULDRAIN: {
SkillState: "MSS_BERSERK"
SkillLevel: 3
Rate: 10000
CastTime: 5000
Delay: 50000
Cancelable: true
SkillTarget: "MST_SELF"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 10
}
NPC_POWERUP: {
SkillState: "MSS_BERSERK"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 50000
Cancelable: false
SkillTarget: "MST_"
CastCondition: "MSC_MYHPLTMAXRATE"
val0: 5
}
}
HIDDEN_MOB7: {
NPC_INVISIBLE: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
NPC_INVISIBLE: {
SkillState: "MSS_IDLE"
SkillLevel: 1
Rate: 10000
CastTime: 0
Delay: 30000
Cancelable: false
SkillTarget: "MST_SELF"
CastCondition: "MSC_ALWAYS"
}
}

Zarbony added a commit to Zarbony/Hercules that referenced this pull request Mar 31, 2020
Just Use raw data from HerculesWS#1539 and updated setpcblock() script command with work from Kenpachi2k13 to use it now.

ToDO:
- Fix setunitdata() to work correctly
- Add Skill IDs 716 and 719
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:core:scriptengine Affecting the script engine or the script commands component:mechanics:skills Affecting the skills' game mechanics component:scripts Affecting the scripts and NPCs mode:renewal For strictly Renewal issues status:code-review Awaiting code review
Projects
None yet
Development

Successfully merging this pull request may close these issues.