GM.PiXeL
-
Content Count
56 -
Joined
-
Last visited
Posts posted by GM.PiXeL
-
-
Hi Hercules,
I'm currently installing MySQL Server on my computer.
I forgot on what will I choose among the "Config Type"
Here are the choices:
Kindly help me on what to choose or what's the best.
Thanks in advance.
-
-- AGRF Patch Updater Configure use this choose dll mode make a cps.dll.
Then copy this cps.dll to your clients folder.
What? Please make a noob-friendly guide.
CPS DLL then what?
-
Question:
So, I encrypt the grf with the security mode.
Now, how to make my client read/decrpyt that grf?
-
Thanks sir mhalicot. ^^
-
-
change
iStatus->get_sc(src)
to
status->get_sc(src)
It lessens the error but still got this:
1>..srcmapskill.c(6453): error C2065: 'i' : undeclared identifier1>..srcmapskill.c(6459): error C2065: 'i' : undeclared identifier1>..srcmapskill.c(6485): error C2065: 'i' : undeclared identifier1>..srcmapskill.c(6486): error C2065: 'i' : undeclared identifier@ Line 6452 : ii = i;@ Line 6459 : if( !i && ( skill_id == RG_STRIPWEAPON || skill_id == RG_STRIPSHIELD || skill_id == RG_STRIPARMOR || skill_id == RG_STRIPHELM ) )@ Line 6485 : clif->skill_nodamage(src,bl,skill_id,skill_lv,i);@ Line 6486 : i = 1; -
Bump, anyone?
-
Hi Hercules,
I wanted to add this patch on my server.
I tried it doing manually.
http://herc.ws/board/files/file/27-forcibly-strip/
Index: map/skill.c===================================================================--- map/skill.c (revision 12238)+++ map/skill.c (working copy)@@ -6397,6 +6397,7 @@ case SC_STRIPACCESSARY: { unsigned short location = 0; int d = 0;+ unsigned char ii = 0; //Rate in percent if ( skill_id == ST_FULLSTRIP ) {@@ -6450,10 +6451,48 @@ break; } + ii = i;+ //Attempts to strip at rate i and duration d if( (i = skill->strip_equip(bl, location, i, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH ) ) clif->skill_nodamage(src,bl,skill_id,skill_lv,i); + if( !i && ( skill_id == RG_STRIPWEAPON || skill_id == RG_STRIPSHIELD || skill_id == RG_STRIPARMOR || skill_id == RG_STRIPHELM ) )+ {+ int idx = sd?pc->search_inventory (sd, 7321):-1;+ if( idx >= 0 )+ {+ struct status_change *sc = iStatus->get_sc(src);+ if( sc->data[SC_SOULLINK] )+ {+ if( sc->data[SC_SOULLINK]->val2 == SL_ROGUE )+ {+ if (rnd()0 >= ii)+ {+ enum sc_type sc_atk;+ if( skill_id == RG_STRIPWEAPON )+ sc_atk = SC_NOEQUIPWEAPON;+ else if( skill_id == RG_STRIPSHIELD )+ sc_atk = SC_NOEQUIPSHIELD;+ else if( skill_id == RG_STRIPARMOR )+ sc_atk = SC_NOEQUIPARMOR;+ else if( skill_id == RG_STRIPHELM )+ sc_atk = SC_NOEQUIPHELM;+ else+ sc_atk = SC_NONE;+ if( sc_atk != SC_NONE )+ {+ sc_start(bl, sc_atk, 100, skill_lv, d);+ clif->skill_nodamage(src,bl,skill_id,skill_lv,i);+ i = 1;+ }+ }+ pc->delitem(sd, idx, 1, 0, 1, LOG_TYPE_NONE);+ }+ }+ }+ }+ //Nothing stripped. if( sd && !i ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
But this are the errors:
1>..srcmapskill.c(6453): error C2065: 'i' : undeclared identifier
1>..srcmapskill.c(6459): error C2065: 'i' : undeclared identifier
1>..srcmapskill.c(6464): error C2065: 'iStatus' : undeclared identifier
1>..srcmapskill.c(6464): error C2223: left of '->get_sc' must point to struct/union
1>..srcmapskill.c(6485): error C2065: 'i' : undeclared identifier
1>..srcmapskill.c(6486): error C2065: 'i' : undeclared identifier -
Search sometimes http://herc.ws/board/topic/3665-hwsage-soul-link-modification/#entry24613. Regarding the LOV for SG. Someone release it. Have a look instead of waiting for an answer.
Thanks for this.
I already have the LOV for SG just forgot to update.
Status:
Sage/Wiz = Done.
Sg = Done.
Rouge = Not Done
-
-
-
-
-
HI Hercules,
This is my second/last topic on SL Modification.
I want to add an extra effect on Soul Link skill.
This is the effects i want to add:
• Sage
- The Sage's HP will also increase by BaseLvl*200 HP and his/her Vit will increase by Int/5 (For example, 255 Int will give you an additional bonus of 255/5 = 51 Vit.
• Wizard
- The Wizard's HP will also Increase by BaseLvl*200 HP and his/her Vit will increase by Int/5(For example, 255 Int will give you an additional bonus of 255/5 = 51 Vit.
• Star Gladiator
- Enable to use Lvl 10 Parrying. Increase damage on Boss monster and Holy monster by 70%.
• Rouge
- You can use Single Strip through Full Chemical Protection by consuming Glistening Coat(Working only when the target has FCP or Full Chemical Protection)
Oh, I found a src code on Sage/Wizard and Star Gladiator on this topic:
But the problem is, I do not know where to add those.
http://herc.ws/board/topic/2232-soul-link-modif-request/?p=14962
I also found the one for Rouge, but there is a problem after compiling.
http://herc.ws/board/files/download/27-forcibly-strip/
48 Errors and 2 Warnings.
Thanks In Advance.
(PS: You can post the src mod one by one.)
Status:
Wizard - Done.
Sage - Done.
Star Gladiator - Done.
Rouge - Not yet Done.
-
Thank you very much sir pan.
You've helped me already with my 2 topics on SOURCE. (Luk Freeze; and this)
Thanks again.
-
Haven't tested those mods, but they built without any errors.
Regarding adding one soul skill to blacksmiths you can only mod your databases and it should work, but of course KN_CHARGEATK will stop being a quest skill and'll only work when a character is linked even when he is a knight... I've tried making some changes in the source-code to bypass this issue, but it seems that if the skill is not sent to the client with 0x8 as info it won't be activated when someone is linked. So I bypassed using a quite "unorthodox" way, it's not neat code as I don't like to force the client to do anything, but it works. I think the other modifications worked as they are fairly simple to make, so I haven't tested them in-game just the one that's complex.
Open src/map/status.c and find:
case SC_RAISINGDRAGON: sce->val2 = st->max_hp / 100;// Officially tested its 1%hp drain. [Jobbie] break;
Add below:case SC_SOULLINK: // This is _not_ the best way to do that ): if( (sd->class_&MAPID_UPPERMASK) == MAPID_BLACKSMITH ) pc->skill(sd, KN_CHARGEATK, 1, 0); break;
Find:case ITEMID_ORC_LOAD_CARD: clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_MVPCARD_ORCLORD); break; } } break;
Add below:case SC_SOULLINK: // This is _not_ the best way to do that ): if(/* pc->checkskill(sd, KN_CHARGEATK) && */(sd->class_&MAPID_UPPERMASK) == MAPID_BLACKSMITH) pc->skill(sd, KN_CHARGEATK, 0, 0); break;
Search for:if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; }
Replace it with:if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { // If linked, knights are able to use parrying with one handed swords (type 2) if( !pc_check_weapontype(sd, 2) && !sd->sc.data[SC_SOULLINK] && !sd->sc.data[SC_SOULLINK]->val2 == SL_KNIGHT ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } }
Open src/map/battle.c and search for:case SM_BASH: case MS_BASH: skillratio += 30 * skill_lv;
Add below:// If linked, super novices will have SM_BASH's ratio increased by 50% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_SUPERNOVICE ) skillratio += 50;
Search for:case MO_FINGEROFFENSIVE: skillratio+= 50 * skill_lv;
Add below:// If linked, monks will have MO_FINGEROFFENSIVE's ratio increased by 15% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_MONK ) skillratio += 15;
Search for:case CG_ARROWVULCAN: skillratio += 100 + 100 * skill_lv;
Add below:// If linked, bards/dancers will have CG_ARROWVULCAN's damage increased by 15% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER ) skillratio += 15;
Finally find:if (md.damage < 0 || md.damage > INT_MAX>>1) //Overflow prevention, will anyone whine if I cap it to a few billion? //Not capped to INT_MAX to give some room for further damage increase.
Add above:// If linked, alchemists will have 15% increase in CR_ACIDDEMONSTRATION's damage if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ALCHEMIST ) md.damage += md.damage*15/100;
Open src/map/pc.c and search for:for (i = 0; i < ARRAYLENGTH(scw_list); i++) { // Skills requiring specific weapon types if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix ) continue;
Add below:// If linked, knights are able to use parrying with one handed swords (type 2) if( scw_list[i] == SC_PARRYING && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_KNIGHT && (!pc_check_weapontype(sd,skill->get_weapontype(status->sc2skill(scw_list[i]))) && !pc_check_weapontype(sd,2) ) ) { status_change_end(&sd->bl, scw_list[i], INVALID_TIMER); continue; // We don't want to fall under the next check }
Save all files and build your map-server, test in-game and if you're having any trouble just post and I'll try to answer as quickly as possible c:Regards.
Correction:
if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
return 0;
}
This is in src/map/skill.c
Errors: All works fine except for the Knight/LK parrying skill using one hand sword.
I still can't use parrying with one hand sword.
• Alchemist - Done
• Super Novice - Done
• Blacksmith - Done
• Bard / Dancer - Done
• Monk - Done
• Knight - Not Yet Done.
-
-
HI Hercules,
I want to add an extra effect on Soul Link skill.
This is the effects i want to add:
• Alchemist
- Increase Acid Demonstration Skill by 15%.
• Knight
- Enable to use Parrying with one hand sword.
• Super Novice
- Boosts Bash by 50%.
• Blacksmith
- Enable to use LVL 1 Charge Attack.
• Bard / Dancer
- Increase arrow vulcan skill by 15%.
• Monk
- Increase Finger Offensive skill by 15%.
Thanks In Advance.
(PS: You can post the src mod one by one.)
Status:
• Alchemist - Done
• Super Novice - Done
• Blacksmith - Done
• Bard / Dancer - Done
• Monk - Done
• Knight - Done
-
please follow Hercules Forum Rules
[*]Posts in the support sections may be bumped with more information no less than 24 hours after the last post; if you have new information within less than 24h, edit your previous post.
Sorry. I'll never do it again. thanks also for the link of forum rules.
No it's not correct, it should be something like:
What if I want to add : 220 Luk = 3secs Freeze. it will be :No you don't, if you add that SC_FREEZE will not be started in players that have luk >= 240
// Players that have luk above or equal 260 are immune to Freeze
if( type == SC_FREEZE && sd->battle_status.luk >= 260 )
return 0;
// Players that have luk above or equal 240 have freeze timer reduced to 2s
if( type == SC_FREEZE && sd->battle_status.luk >= 240 && tick > 2000 )
tick = 2000; // is in ms
return 0;
// Players that have luk above or equal 220 have freeze timer reduced to 3s
if( type == SC_FREEZE && sd->battle_status.luk >= 220 && tick > 3000 )
tick = 3000; // is in ms
Is this correct? only the last one will not have return 0;
// Players that have luk above or equal 260 are immune to Freeze if( type == SC_FREEZE && sd->battle_status.luk >= 260 ) return 0; // Players that have luk above or equal 240 have freeze timer reduced to 2s if( type == SC_FREEZE && sd->battle_status.luk >= 240 && tick > 2000 ) tick = 2000; // is in ms if( type == SC_FREEZE && sd->battle_status.luk >= 220 && sd->battle_status.luk < 240 && tick > 3000 ) tick = 3000;
If you return, the rest of this function won't be read, then it won't activate SC_FREEZE. Note that there are two different checks regarding luk in the third conditionThanks mate. /no1
-
No you don't, if you add that SC_FREEZE will not be started in players that have luk >= 240
What if I want to add : 220 Luk = 3secs Freeze. it will be :
// Players that have luk above or equal 260 are immune to Freeze
if( type == SC_FREEZE && sd->battle_status.luk >= 260 )
return 0;
// Players that have luk above or equal 240 have freeze timer reduced to 2s
if( type == SC_FREEZE && sd->battle_status.luk >= 240 && tick > 2000 )
tick = 2000; // is in ms
return 0;
// Players that have luk above or equal 220 have freeze timer reduced to 3s
if( type == SC_FREEZE && sd->battle_status.luk >= 220 && tick > 3000 )
tick = 3000; // is in ms
Is this correct? only the last one will not have return 0;
-
I haven't tested those changes in-game, but they should work fine c: otherwise just post and I'll correct any mistakes, ok?
Open src/map/status.c and search for:
case SC_FREEZE: //Undead are immune to Freeze/Stone if (undead_flag && !(flag&1)) return 0;
Add below:// Players that have luk above or equal 260 are immune to Freeze if( type == SC_FREEZE && sd->battle_status.luk >= 260 ) return 0; // Players that have luk above or equal 240 have freeze timer reduced to 2s if( type == SC_FREEZE && sd->battle_status.luk >= 240 && tick > 2000 ) tick = 2000; // is in ms
Save and rebuild.Happy new year
do i have to add return 0; after tick = 2000; // is in ms?
-
Bump~
-
Bump, Urgent. =((
-
Hi Hercules,
How to make if a player has 240 LUK freeze status will only be 2seconds.
But if 260 LUK he will never be freeze.
Example:
High Wizard casts storm gust to 240 LUK player, then after 2 seconds, the freeze will removed.
Another Example:
High Wizard casts storm gust to 260 LUK player but did not freeze.
Thanks in advanced.
Different Soul Link [ Modification ]
in Source Requests
Posted
You can find those source mods in the Source Request and Source Support sections.