Jump to content

Kreustoo

Members
  • Posts

    215
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Kreustoo

  1. Okay my bad, tested it with reloadnpc, @iraciz
     

    From d3f15f841b1a0f563925e8710c3b798360a5d8c7 Mon Sep 17 00:00:00 2001
    From: Kreustoo <kreustoo@gmail.com>
    Date: Sat, 29 Aug 2020 21:03:23 +0200
    Subject: [PATCH] ClickTheNinja, Fix the hideon hideoff
    
    ---
     scripts/Click The Ninja/ClickTheNinja.txt | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/scripts/Click The Ninja/ClickTheNinja.txt b/scripts/Click The Ninja/ClickTheNinja.txt
    index 04dc3f6..4a1c1bc 100644
    --- a/scripts/Click The Ninja/ClickTheNinja.txt	
    +++ b/scripts/Click The Ninja/ClickTheNinja.txt	
    @@ -61,7 +61,7 @@ prontera,149,150,4	script	Ninja Click	637,{ //!!Modify!! Position
     			for(.@i = 0;.@i < .NbNpcSession;.@i++){
     				.@npcName$ = "EvNinjaTrainDup"+.Current;
     				movenpc .@npcName$,rand(.XMin,.XMax),rand(.YMin,.YMax);
    -				enablenpc .@npcName$;
    +				hideoffnpc .@npcName$;
     				.Current++;
     				if(.Current > .MaxNpc)
     					.Current = 1;
    @@ -109,7 +109,7 @@ prontera,149,150,4	script	Ninja Click	637,{ //!!Modify!! Position
     		if(.NbNpcSession < 1)
     			.NbNpcSession = 1;
     		for(.@i = 1;.@i <= .MaxNpc;.@i++)
    -			disablenpc "EvNinjaTrainDup"+.@i;
    +			hideonnpc "EvNinjaTrainDup"+.@i;
     		mapannounce .@mapnameNPC$,"The event started, be the first to click on the npc!",bc_all;
     		initnpctimer;
     	end;

     

  2. @iraciz

    @@ -125,7 +126,7 @@ prontera,149,150,4	script	Ninja Click	637,{ //!!Modify!! Position
     		end;
     	}
     	npctalk "Training Ninja: Damn! "+strcharinfo(0)+" got me!";
    -	disablenpc strnpcinfo(3);
    +	hideonnpc strnpcinfo(3);
     	for(.@i = 0;.@i< getarraysize(.Rewards);.@i =.@i +2){
     		getitem .Rewards[.@i],.Rewards[.@i+1];
     	}

    I relaunched the game to test and this little fix should fix the crash, tell me if it does the job or not

  3. In my answer there's already the loop, you just had to copy/paste to replace, but whatever:

    function    script    CustomBox    {
    
            set .@Total,65;
            setarray .@P1[0],90,983,5; //Black Dyestuff
            setarray .@P2[0],91,981,5; //Violet Dyestuff
            setarray .@P3[0],93,13517,1; //YGGBOX
            setarray .@P4[0],94,12534,1; //YGGSEED
            setarray .@P5[0],80,3016,1; //HOKAGEHAT
            setarray .@P6[0],81,3696,1; //LUFFYHAT
            setarray .@P7[0],85,740,10; //PUPPET
            setarray .@P8[0],89,720,10; //AQUAMARINE
            setarray .@P9[0],87,14176,1; //ENRICHEDELU
            setarray .@P10[0],88,14177,1; //ENRICHEDORI
            setarray .@P11[0],60,50005,1; //PREMIUMCREDIT
            setarray .@P12[0],70,3676,1; //HOLLOWMASK
            setarray .@P13[0],75,3678,1; //ROBOEARS
            setarray .@P14[0],50,19130,1; //MAGICEYES
            setarray .@P15[0],51,5184,1; //CAPTAINSHAT
                setarray .@P16[0],52,8327,1; //EVOLVED POOPOO
            setarray .@P17[0],53,3782,1; //DARKLORDHELM
            setarray .@P18[0],54,18534,1; //FANCYPHANTOM
            setarray .@P19[0],55,5325,1; //ROBOEYE
            setarray .@P20[0],51,19176,1; //FALLENANGELBLESSING
            setarray .@P21[0],56,5517,1; //HAWKEYES
            setarray .@P22[0],57,3661,1; //DEVILING WINGS
            setarray .@P23[0],58,3000,1; //ANGELINGWINGS
            setarray .@P24[0],59,3001,1; //ARTICWINGS
            setarray .@P25[0],60,3003,1; //DEMONWINGS
            setarray .@P26[0],61,3005,1; //GARGOYLEWINGS
            setarray .@P27[0],62,3007,1; //PHOENIXWINGS
            setarray .@P28[0],63,3008,1; //TORNWINGS
            setarray .@P29[0],64,3002,1; //BLACKBUTTERFLYWING
            setarray .@P30[0],65,3009,1; //WHITEBUTTERFLYWING
            setarray .@P31[0],65,2726,1; //ICARUSWINGS
            setarray .@P32[0],40,7828,1; //BRAVERYBADGE
            setarray .@P33[0],41,45078,1; //NEKOHOOD
            setarray .@P34[0],42,20073,1; //MVPHAT
            setarray .@P35[0],43,rand(45066,45072),1; //BUNDANNA
            setarray .@P36[0],40,rand(45099,45101),1; //RUNES
            setarray .@P37[0],40,45084,1; //BLACKRUNES
            setarray .@P38[0],40,rand(45026,45028),1; //BLACKAURA-PINK
            setarray .@P39[0],40,rand(45062,45065),1; //BLACKAURA-WHITE
            setarray .@P40[0],20,rand(3515,3526),1; //DRAGONWEAPON
            setarray .@P41[0],20,28605,1; //DRAGONBOOK
            setarray .@P42[0],20,3536,1; //DRAGONSHURIKEN
            setarray .@P43[0],15,rand(45211,45214),1; //FUSHIONVALKYIRE
            setarray .@P44[0],10,rand(8032,8033),1; //DIABLOSPIRIT
            setarray .@P45[0],10,20727,1; //BRILLIANTGOLDEN
            setarray .@P46[0],9,82517,1; //INVOKERCAPE
            setarray .@P47[0],2,4549,1; //UPDMAYA
            setarray .@P48[0],3,4359,1; //SINXCARD
            setarray .@P49[0],3,4357,1; //LKCARD
            setarray .@P50[0],3,4361,1; //WSCARD
            setarray .@P51[0],3,4363,1; //HIGHPRIESTCARD
            setarray .@P52[0],3,4365,1; //HIGHWIZARDCARD
            setarray .@P53[0],5,4128,1; //GTB
            setarray .@P54[0],7,3742,1; //GOLDENSWORDAURA
            setarray .@P55[0],4,40016,1; //DRAGONRING
            setarray .@P56[0],5,rand(40006,40012),1; //DRAGONSET
            setarray .@P57[0],1,rand(4480,4504),1; //SEALED
            setarray .@P58[0],1,rand(4535,4544),1; //SEALED
                setarray .@P69[0],100,7227,rand(1,5); // TCG
            setarray .@P60[0],100,7227,rand(5,10); // TCG
            setarray .@P61[0],95,6767,rand(1,10); //MVPCOIN
            setarray .@P62[0],96,3100,rand(1,10); //CREDIT
            setarray .@P63[0],97,7608,rand(1,5); //LOTTITICKET
            setarray .@P64[0],96,6420,rand(1,10); //HOURLYCOIN
            setarray .@P65[0],2,rand(40033,40034),1; //VIPBOX
       for(.@count = 0;.@count < 10;.@count++){
        do{
            set .@i, rand(1,.@Total);
        }while( rand(1,100) > getd(".@P"+.@i+"[0]") );
        
        for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2)
        {
            getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]");
            if (!.@k[0])
            {
                set .@gz,.@i;
                setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]");
                break;
            }
        }
        if( .@gz && .@gz <= 10 ) // 10% equal or below will announce
        announce "Congratulations! "+strcharinfo(0)+" just received "+getitemname(.@k[0])+" x "+.@k[1]+" From Supply Box",0;
        specialeffect2 248;
     }
    end;
    }

     

  4. Hello,

    When opening your item, check your map error, it'll tell you if it can't find "CustomBox", if that's the case, you have an error when loading your function that you have to correct.

    If not, that's what Patskie said, you have a problem in your function directly that does not work as you think and you need to debug it.

  5. Hello,

    You can put a for around the logical that goes from 0 to 10

    for(.@count = 0;.@count < 10;.@count++){
        do{
            set .@i, rand(1,.@Total);
        }while( rand(1,100) > getd(".@P"+.@i+"[0]") );
        
        for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2)
        {
            getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]");
            if (!.@k[0])
            {
                set .@gz,.@i;
                setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]");
                break;
            }
        }
        if( .@gz && .@gz <= 10 ) // 10% equal or below will announce
        announce "Congratulations! "+strcharinfo(0)+" just received "+getitemname(.@k[0])+" x "+.@k[1]+" From Supply Box",0;
        specialeffect2 248;
     }

     

  6. Hello,

    Did you actuallty check the documentation?

    *getinventorylist {<char_id>};

    What you want to use I guess is:

    *countitem(<item id>{,<accountID>})
    *countitem("<item name>"{,<accountID>})
    
    This function will return the number of items for the specified item ID that the
    invoking character has in the inventory.
    
    	mes "[Item Checker]";
    	mes "Hmmm, it seems you have " + countitem(502) + " apples";
    	close;
    
    Like 'getitem', this function will also accept an 'english name' from the
    database as an argument.
    
    If you want to state the number at the end of a sentence, you can do it by
    adding up strings:
    
    	mes "[Item Checker]";
    	mes "Hmmm, the total number of apples you are holding is " + countitem("APPLE");
    	close;

     

    • Upvote 1
  7. Hello,

    rand(13517,12534,12103,6767,3100,7227,7608,6420,981,983)

    You need F_rand to do that (a script function). rand is just for maximum 2 numbers:

    *rand(<number>{,<number>});
    
    This function returns a number ...
    (if you specify one) ... randomly positioned between 0 and the number you specify -1.
    (if you specify two) ... randomly positioned between the two numbers you specify.
    
    rand(10)  would result in 0,1,2,3,4,5,6,7,8 or 9
    rand(0,9) would result in 0,1,2,3,4,5,6,7,8 or 9
    rand(2,5) would result in 2,3,4 or 5

    The rest seems good to me

  8. Hello,

    The npc says when the training is over (Line 69). You can change that to an announce if you want :).

    And for the gm, there's a .MinGMLevel value that you can edit to what you want, and yeah, there's no protection into breaking the npc launching it multiples time, but I don't put thoses kind of protection for the gm, I assume they know what they are doing.

  9. Hello,

    I think you can just modify in status.cpp:

    base_status->size = (sd->class_&JOBL_BABY || ((battle_config.summoner_trait&2) && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER)) ? SZ_SMALL : SZ_MEDIUM;
    
    to
    
    base_status->size = (((battle_config.summoner_trait&2) && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER)) ? SZ_SMALL : SZ_MEDIUM;

    Not tested at all.

  10. Hello,
    Maybe what you want is this?

    *changebase <job ID number>{,<account ID>};
    
    This command will change a character's appearance to that of the specified job
    class. Nothing but appearance will change.
    
    The command will run for the invoking character unless an account ID is given.
    
    	changebase Job_Novice; // Changes player to Novice sprite.
    	changebase Class; // Changes player back to default sprite.

     

×
×
  • Create New...