Jump to content
  • 0

Changebase: 3rd Job Rune Knight without Mount


Tanlor

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  50
  • Reputation:   14
  • Joined:  07/23/18
  • Last Seen:  


 

Hello guys! In my server I use the Dresser NPC (That changes a 2rd job sprite to a 3rd and jRO one) and got a problem: When i change my Lord sprite to Rune Knight, i can't mount on Dragon. I get the Mounted status working, but the sprite don't.

I was searching a fix to my problem, than, i found that topic on Herc forums:

http://herc.ws/board/topic/11171-3rd-job-suit-problem/

Where AnieRuru posts a resolution changing a lines on Script.c (now Script.cpp).

The patch is:

 src/map/script.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/src/map/script.c b/src/map/script.c
index 54d8d33..bac464c 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11238,6 +11238,9 @@ BUILDIN(changebase) {
 			return true;
 	}
+	if ( vclass == JOB_RUNE_KNIGHT &&  pc->readparam(sd,SP_CLASS) == JOB_KNIGHT && sd->sc.option & OPTION_RIDING )
+		sd->sc.option |= OPTION_DRAGON;
+
 	if(sd->disguise == -1 && vclass != sd->vd.class_)
 		pc->changelook(sd,LOOK_BASE,vclass); //Updated client view. Base, Weapon and Cloth Colors.

But when i apply that i get a bunch of errors, like "pc is not declared"

There's any way to convert that old (2015) patch to a actual patch? I need to fix it so much ?

Thank you guys!

Edited by Tanlor
  • Upvote 1
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  57
  • Reputation:   14
  • Joined:  09/01/18
  • Last Seen:  

Hi @Tanlor, this happens because rAthena don't have pc interface anymore.

Modify this:

if ( vclass == JOB_RUNE_KNIGHT &&  pc->readparam(sd,SP_CLASS) == JOB_KNIGHT && sd->sc.option & OPTION_RIDING )
	sd->sc.option |= OPTION_DRAGON;

To this:

if ( vclass == JOB_RUNE_KNIGHT &&  pc_readparam(sd,SP_CLASS) == JOB_KNIGHT && sd->sc.option & OPTION_RIDING )
	sd->sc.option |= OPTION_DRAGON;

 

Edited by MathReaper
  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  50
  • Reputation:   14
  • Joined:  07/23/18
  • Last Seen:  

It recompiles but don't solve the problem, but I found another way to fix it.

You can mount on Ferus with:

Quote

@option 0 0 524288

while "changebased" to RK Sprite, so the Way I fix it is to make the player atcommand the above command if it's a LK! when it clicks on the Tammer npc.

Tyvm ?

  • Upvote 1
  • MVP 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  03/04/20
  • Last Seen:  

hi @tanlor

can you show how you did you fix this? thank you!

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Reputation:   1
  • Joined:  09/10/19
  • Last Seen:  

@xFoo

put this in the npc and ready

atcommand "@option 0 0 524288";

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  32
  • Reputation:   29
  • Joined:  09/16/20
  • Last Seen:  

if ( vclass == JOB_RUNE_KNIGHT &&  pc_readparam(sd,SP_CLASS) == JOB_KNIGHT && sd->sc.option & OPTION_RIDING )
	sd->sc.option |= OPTION_DRAGON;

This works correctly.

But you need to choose a color OPTION_DRAGON1,OPTION_DRAGON2, ...

 * - 1 : Green Dragon
 * - 2 : Brown Dragon
 * - 3 : Gray Dragon
 * - 4 : Blue Dragon
 * - 5 : Red Dragon

 

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  07/10/14
  • Last Seen:  

byako,124,148,3    script    3rd Job Mount Rental NPC    10066,{
   cutin "sarah_hero3",2;
    mes "[ RO:^FF0000 WoozyRO ^000000]";
    mes "[ ^FF77003rd Job Mount Rental NPC^000000 ]";
    mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
    mes "Cart";
 mes "Falcon";
    mes "Dragon";
    mes "Gyrphon";
    mes "Mado";
 close2;
   cutin "",255;

if(getskilllv("NC_MADOLICENCE") > 0 || getskilllv("RK_DRAGONTRAINING") > 0){

if((Class == Job_Blacksmith || Class == Job_Whitesmith || Class == Job_Baby_Whitesmith) && checkcart() == 0 && getskilllv("NC_MADOLICENCE") > 0){
    setmadogear;
}else if(Class == Job_Lord_Knight || Class == Job_Baby_Knight && getskilllv("RK_DRAGONTRAINING") > 0){
    setoption Option_Dragon1;
    setriding;
}

}else{
if((Class == Job_Hunter || Class == Job_Sniper) && checkfalcon() == 0 && getskilllv("HT_FALCON") > 0){
    setfalcon;
}else if((Class == Job_Merchant || Class == Job_Blacksmith || Class == Job_Whitesmith || Class == Job_Baby_Whitesmith || Class == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART") > 0){
    setcart;
}else if(checkriding() || checkfalcon() == 1 || checkcart() == 1){
    npctalk "You already have a Cart / Falcon / Peco / Dragon.";
    end;
}else if(getskilllv("KN_RIDING") == 1){
    setriding;
}else{
    npctalk "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
 close2;
   cutin "",255;
    end;
}
}
OnInit:
    initnpctimer;
    end;

OnTimer1000:
    showscript("3rd Job Mount");
    setnpctimer 0;
    end;
}

 

 

Used this script and now it's working. dragon mount is now showing.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...