Jump to content
  • 0

Help with this script


Question

Posted (edited)

I have here a Job Sprite Changer Script made by or shall we say modified by AnnieRuRu

I hope Annie can read this

 

I want to add something like;

 

- They need to do a random MONSTER QUEST before they can change their job sprites.

- 3 Sets of MOBS

- 200 - 300 monster per set like for example (poring = 238 / fabre = 287 / lunatic = 292)

- If they want to return to original job sprite, they need to pay 1,000 item 9524         // 9524 <----- is the item ID

 

 

Hopefully pro scripters will help me with this :wub: :wub: :wub:

 

MERRY CHRISTMAS :meow: :meow: :meow:


bump


BUMP


BUMP

job_sprite.txt

Edited by Budots

1 answer to this question

Recommended Posts

Posted (edited)

depends on my mood /yawn

this is not event script ... this is a quest script, which I'm not very motivated...

that's why the other topics solved faster than this

prontera,150,180,4    script    asdfasdf    100,{
//    job_sprite_changer_q$ = "";
    if ( job_sprite_changer_d ) {
        mes "return to original disguise ?";
        if ( select ( "Yes", "No" ) == 2 ) close;
        else if ( countitem(9524) < 1000 ) {
            mes "you need 1000x "+ getitemname(9524);
            close;
        }
        mes "disguise reverted";
        changebase class;
        job_sprite_changer_d = 0;
        close;
    }
    if ( getstrlen( job_sprite_changer_q$ ) ) {
        mes job_sprite_changer_q$;
        for ( .@i = 0; .@i < 3; .@i++ )
            mes strmobinfo( 2, @job_sprite_changer_qm[.@i] ) +" : ["+ @job_sprite_changer_qa[.@i] +"/"+ @job_sprite_changer_qr[.@i] +"]";
        .@i = 0;
        while ( @job_sprite_changer_qa[.@i] >= @job_sprite_changer_qr[.@i] && .@i < 3 ) .@i++;
        if ( .@i < 3 ) close;
        next;
        mes "select which jobtype you would like to change into.";
        switch ( select ( "Normal Jobs", "Rebirth Jobs", "Baby Jobs", "Expanded Jobs" ) ) {
            case 1: .@job = callsub( L_eamenu, 0 ); break;
            case 2: .@job = callsub( L_eamenu, EAJL_UPPER ); break;
            case 3: .@job = callsub( L_eamenu, EAJL_BABY ); break;
            case 4: .@job = callsub( L_menu, 23,24,25, 4046,4047,4049 );
        }
        if ( !.@job ) {
            mes "sry you can't take novice"; // TO-DO
            close;
        }
        changebase .@job;
        mes "You now look like "+ jobname( .@job ) +"! Enjoy";
        job_sprite_changer_d = .@job;
        job_sprite_changer_q$ = "";
        close;
    }
    mes "want to take up monster quest ?";
    next;
    if ( select ( "Yes", "No" ) == 2 ) {
        mes "come back another time";
        close;
    }
    set .@Blacklist$,    // Blacklisted mob IDs.
    "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
    "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
    "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
    "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
    "1975,1976,1977,1978,1979";
    query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND ID not in ("+ .@Blacklist$ +") ORDER BY rand() LIMIT 3", @job_sprite_changer_qm);
    job_sprite_changer_q$ = "";
    for ( .@i = 0; .@i < 3; .@i++ ) {
        @job_sprite_changer_qr[.@i] = rand(200,300);
        job_sprite_changer_q$ = job_sprite_changer_q$ + @job_sprite_changer_qm[.@i] +"#"+  @job_sprite_changer_qr[.@i] +"#0#";
    }
    mes "the monster you need to hunt is";
    for ( .@i = 0; .@i < 3; .@i++ )
        mes strmobinfo( 2, @job_sprite_changer_qm[.@i] ) +" : [0/"+ @job_sprite_changer_qr[.@i] +"]";
    close;
L_menu:
    for ( set .@i, 0; getarg(.@i, -1) != -1; set .@i, .@i +1 )
        set .@menu$, .@menu$ + jobname( getarg(.@i) ) +":";
    set .@s, select(.@menu$) -1;
    return getarg(.@s);
L_eamenu:
    switch ( select ( "First Jobs", "2-1", "2-2", "3-1", "3-2" ) ) {
        case 1: set .@job, callsub( L_eajob, 0 | getarg(0) ); break;
        case 2: set .@job, callsub( L_eajob, EAJL_2_1 | getarg(0) ); break;
        case 3: set .@job, callsub( L_eajob, EAJL_2_2 | getarg(0) ); break;
        case 4: set .@job, callsub( L_eajob, EAJL_THIRD | EAJL_2_1 | getarg(0) ); break;
        case 5: set .@job, callsub( L_eajob, EAJL_THIRD | EAJL_2_2 | getarg(0) );
    }
    return .@job;
L_eajob:
    for ( set .@i, getarg(0); .@i < getarg(0) +7; set .@i, .@i +1 ) {
        set .@job[.@c], roclass( getarg(0) + .@c );
        set .@menu$, .@menu$ +( ( jobname( .@job[.@c] ) == "Unknown Job" )? "" : jobname( .@job[.@c] ) )+":";
        set .@c, .@c +1;
    }
    set .@s, select(.@menu$) -1;
    return .@job[.@s];
OnNPCKillEvent:
    if ( !getstrlen( job_sprite_changer_q$ ) ) end;
    while ( @job_sprite_changer_qm[.@i] != killedrid && .@i < 3 ) .@i++;
//    dispbottom @job_sprite_changer_qm[.@i] +" "+ killedrid +" "+ ( @job_sprite_changer_qm != killedrid )+" ";
    if ( .@i < 3 && @job_sprite_changer_qa[.@i] < @job_sprite_changer_qr[.@i] ) {
        @job_sprite_changer_qa[.@i]++;
        job_sprite_changer_q$ = "";
        for ( .@i = 0; .@i < 3; .@i++ )
            job_sprite_changer_q$ = job_sprite_changer_q$ + @job_sprite_changer_qm[.@i] +"#"+  @job_sprite_changer_qr[.@i] +"#"+ @job_sprite_changer_qa[.@i] +"#";
    }
    end;
OnPCLoginEvent:
    if ( job_sprite_changer_d )
        changebase job_sprite_changer_d;
    else if ( getstrlen( job_sprite_changer_q$ ) ) {
        explode .@var$, job_sprite_changer_q$, "#";
        for ( .@i = 0; .@i < 9; .@i++ ) {
            if ( .@i % 3 == 0 ) @job_sprite_changer_qm[.@i /3] = atoi( .@var$[.@i] );
            if ( .@i % 3 == 1 ) @job_sprite_changer_qr[.@i /3] = atoi( .@var$[.@i] );
            if ( .@i % 3 == 2 ) @job_sprite_changer_qa[.@i /3] = atoi( .@var$[.@i] );
        }
    }
    end;
}

got a feeling this script gonna bug ... since I did this half-heartedly

check out everything issit working or not before say thx

... the script looks unoptimized too

Edited by AnnieRuru
  • Upvote 1

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...