Jump to content
  • 0

Job Change Scroll for Novice Only


Question

Posted (edited)

Hi! So I'm using a Job Change scroll..

Here's the script I'm using..

function script F_ChooseJob {
SetArray(.@JobIDs[0], 4060, 4073, 4061, 4074, 4062, ((Sex) ? 4075 : 4076), 4063, 4077, 4064, 4078, 4065, 4079, 24, 25, 4046, 4047, 4049);
Set(.@n$, "[Job Master]");
While(1)
{
Mes(.@n$);
Mes("Please choose your desired job.");
For(Set(.@i, 0); .@i < GetArraySize(.@JobIDs); Set(.@i, .@i + 1))
Set(.@MenuString$, .@MenuString$ + ((.@i) ? ":" : "") + JobName(.@JobIDs[.@i]) + ((.@i == GetArraySize(.@JobIDs) - 1) ? ":Close" : ""));
Set(.@Menu ,Select(.@MenuString$) - 1);
If(.@Menu >= GetArraySize(.@JobIDs))
Close();
Else
{
Next();
Mes(.@n$);
Mes("Are you sure that you wish to become " + JobName(.@JobIDs[.@Menu]) + "?");
If(Select("Yes:No") == 2)
Next(); // back to job selection
Else
{
Next();
JobChange(Job_Novice_High, 1);
ResetLvl(1);
Set(JobLevel, 10);
Switch(.@Menu)
{
case 0:
 jobchange 4002;
 set JobLevel, 50;
 jobchange 4008;
 set JobLevel, 70;
 jobchange 4060;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 1:
 jobchange 4002;
 set JobLevel, 50;
 jobchange 4015;
 set JobLevel, 70;
 jobchange 4073;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 2:
 jobchange 4003;
 set JobLevel, 50;
 jobchange 4010;
 set JobLevel, 70;
 jobchange 4061;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 3:
 jobchange 4003;
 set JobLevel, 50;
 jobchange 4017;
 set JobLevel, 70;
 jobchange 4074;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 4:
 jobchange 4004;
 set JobLevel, 50;
 jobchange 4012;
 set JobLevel, 70;
 jobchange 4062;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 5:
 jobchange 4004;
 set JobLevel, 50;
 if(Sex == 0)
  jobchange 4021;
 else
  jobchange 4020;
 set JobLevel, 70;
 if(Sex == 0)
  jobchange 4076;
 else
  jobchange 4075;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 6:
 jobchange 4005;
 set JobLevel, 50;
 jobchange 4009;
 set JobLevel, 70;
 jobchange 4063;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 7:
 jobchange 4005;
 set JobLevel, 50;
 jobchange 4016;
 set JobLevel, 70;
 jobchange 4077;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 8:
 jobchange 4006;
 set JobLevel, 50;
 jobchange 4011;
 set JobLevel, 70;
 jobchange 4064;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 9:
 jobchange 4006;
 set JobLevel, 50;
 jobchange 4017;
 set JobLevel, 70;
 jobchange 4078;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 10:
 jobchange 4007;
 set JobLevel, 50;
 jobchange 4013;
 set JobLevel, 70;
 jobchange 4065;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 11:
 jobchange 4007;
 set JobLevel, 50;
 jobchange 4018;
 set JobLevel, 70;
 jobchange 4079;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 12:
 set StatusPoint,StatusPoint - 52;
 jobchange 24;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 13:
 set StatusPoint,StatusPoint - 52;
 jobchange 25;
 set BaseLevel, 150;
 set JobLevel, 70;
 PercentHeal(100, 100);
 close;
case 14:
 set StatusPoint,StatusPoint - 52;
 jobchange 4046;
 set BaseLevel, 150;
 set JobLevel, 50;
 PercentHeal(100, 100);
 close;
case 15:
 set StatusPoint,StatusPoint - 52;
 jobchange 4046;
 set JobLevel, 50;
 jobchange 4047;
 set BaseLevel, 150;
 set JobLevel, 50;
 PercentHeal(100, 100);
 close;
case 16:
 set StatusPoint,StatusPoint - 52;
 jobchange 4046;
 set JobLevel, 50;
 jobchange 4049;
 set BaseLevel, 150;
 set JobLevel, 50;
 PercentHeal(100, 100);
 close;
}
}
}
}
}

Item DB:

12626,Job_Change_Scroll,Job Change Scroll,2,,,10,,,, ,0xFFFFFFFF,7,2,,,,,,{ CallFunc("F_ChooseJob"); },{},{}

So this is functional,

If i add

If( Class != 0 ) end;

It's working for novice only, but i want to add a message that he/she can't use the scroll because he/she is not a novice... And the scroll will not be consumed...

Edited by wakoko321

10 answers to this question

Recommended Posts

Posted (edited)

Then you have to change it to :

if( Class == 0) end;

If you have

if( Class != 0) end;

it ends if the Class is higher than novice,like Thief or Swordsman or all the other classes.

So just change it to

if( Class == 0) end;

Edited by Rikimaru
Posted (edited)

Then you have to change it to :

if( Class == 0) end;

If you have

if( Class != 0) end;

it ends if the Class is higher than novice,like Thief or Swordsman or all the other classes.

So just change it to

if( Class == 0) end;

Completely wrong -.-,

Now every class EXCEPT novice can use the scroll.

The code wakoko321 used was correct already

Also something different was asked, learn to read more accurately :I.

@Topic:

I don't really know a good way except showing the message and give the item again like this

{ if(Class > 0) { dispbottom "This Scroll can only be used by an Novice."; getitem 12626,1; end; } else CallFunc("F_ChooseJob"); },{},{}

Well you also could do it via the Item Job Requirement field /no1:

Job Change Scroll,2,,,10,,,, ,0xFFFFFFFF,7,2,,,

Into 0x00000001 for Novice & S.Novice only ^^

Dunno what message will be printed then, maybe something like "This item can't be used" or like that.

Regards,

Chris

Edited by llchrisll
Posted

Thank you for your answers.. /no1

I tried both of your suggestions Chris...

{ if(Class > 0) { dispbottom "This Scroll can only be used by an Novice."; getitem 12626,1; end; } else CallFunc("F_ChooseJob"); },{},{}

This is working fine although the unconsumable part is not what I want to happen.. :D Guess it can't be helped to add that...

with regards to....

Into 0x00000001 for Novice & S.Novice only ^^

It does not show any message at all, you will not just able to use it.. /ok

Anyways, thanks.. :)

Posted

Well you also could try Item Type 11:

Type:

0 Healing item.

2 Usable item.

3 Etc item

4 Weapon

5 Armor/Garment/Boots/Headgear

6 Card

7 Pet egg

8 Pet equipment

10 Ammo (Arrows/Bullets/etc)

11 Usable with delayed consumption (item is lost from inventory

after selecting a target, for use with skills and pet lures)

18 Another delayed consume that requires user confirmation before

using item.

Posted

Actually what i tried is Item Type 18, the one with the warning message with opening or not..

I''m finding a way if there's a way to edit that message or make another item type which shows the message i want...

Posted

Actually what i tried is Item Type 18, the one with the warning message with opening or not..

I''m finding a way if there's a way to edit that message or make another item type which shows the message i want...

for a New item Type an src edit would be required as far as I know
Posted

Actually what i tried is Item Type 18, the one with the warning message with opening or not..

I''m finding a way if there's a way to edit that message or make another item type which shows the message i want...

for a New item Type an src edit would be required as far as I know

yeah already knew that..

And I also noticed that the message is from msgstringtable.txt

Still looking on how to it.. :) anyway, thanks to your help.. :(

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...