Jump to content

joyy95

Members
  • Posts

    51
  • Joined

  • Last visited

Posts posted by joyy95

  1. image.png.c744242e78a45e729c80814635538742.png


    My problem is when i wear after unequipped still on the suit... cant changeback ~

      - Id: 12260
        AegisName: Summer
        Name: Summer
        Type: Armor
        Locations:
          Armor: true
        EquipScript: |
          changebase 27;
        UnEquipScript: |
          changebase Class;

  2. where to edit this annoucement? for example i want edit the annoucement only ~ 

    • example edit>>>>>>>>>>> ** Player1 just get MVP card Kiel Card (chance 0.05%) ***
    
    This i already enable
    
    • // Make broadcast ** Player1 won Pupa's Pupa Card (chance 0.01%) ***
    • // This can be set to any value between 0~10000.
    • // Note: It also announces STEAL skill usage with rare items
    • // 0 = don't show announces at all
    • // 1 = show announces for 0.01% drop chance items
    • // 333 = show announces for 3.33% or lower drop chance items
    • // 10000 = show announces for all items rare_drop_announce: 5
  3. 4 hours ago, EIysium said:

    You can increase in conf/battle/client.conf

    max_body_style: 1 <<< switch to 2

    If you want to use third job sprites on second job class you need rename third job sprite file like you have a Royal Guard sprite in that folder °¡µå_³²_2 you need rename to Æȶóµò_³²

    erm i want 2nd job use JRO 3rd job sprite, now no problem with 3rd job to JRO 3rd sprite but just when 2nd job use JRO 3rd sprite will error.

  4. On 9/23/2023 at 5:08 AM, EIysium said:

    You want use 3rd job japanese sprites on second trans job?

    First you need put these sprites in sprite/Àΰ£Á·/¸öÅë/³²/costume_2  don't put directly these sprites you need rename it before.

    For example you need rename MECHANIC_SPRITE_³² to È­ÀÌÆ®½º¹Ì½º_³²_2 so your Whitesmith will able to use that sprite.

    And in your item script put this:
     

        EquipScript: |
          setlook LOOK_BODY2,2;
        UnEquipScript: |
          setlook LOOK_BODY2,0;

     

    Seems like create clone use for max body 2 right? Thanks!!!

     

    On 9/23/2023 at 5:08 AM, EIysium said:

    You want use 3rd job japanese sprites on second trans job?

    First you need put these sprites in sprite/Àΰ£Á·/¸öÅë/³²/costume_2  don't put directly these sprites you need rename it before.

    For example you need rename MECHANIC_SPRITE_³² to È­ÀÌÆ®½º¹Ì½º_³²_2 so your Whitesmith will able to use that sprite.

    And in your item script put this:
     

        EquipScript: |
          setlook LOOK_BODY2,2;
        UnEquipScript: |
          setlook LOOK_BODY2,0;

     

    still same

    image.png.12a20f72a105c7f4f6c93ff36426eab9.png

     

    image.thumb.png.fdf152214018f1d4c99d8836d2c20cf4.png

  5. pre-renewal trans job server, how can i transform the suit to JRO suit? I just try ~ it only working when my job is 3rd job and from trans wear it not working to transform JRO  only 3rd job
    but when

    - Id: 44999
        AegisName: jro
        Name: jro
        Type: Armor
        Locations:
          Costume_Garment: true
        ArmorLevel: 1
        EquipScript: |
          setlook LOOK_BODY2,1;
        UnEquipScript: |
          changebase Class;

  6. 7 minutes ago, hendra814 said:

    alredy check the script, the first and second event must be start by GM  ID

    first event must start by GM above level 90

    if    (getgmlevel() > 90)    {
    
    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave:Start Event:Enter Price"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;
    
        case 2:
        mes .name$;
        mes "The Price is:";
        mes "^ff0000"+$prize_amount+" "+getitemname($prize_id)+"^000000";
        close;
    
        case 3:
        close;
    
        case 4:
        sleep2 100;
        close2;
        goto l_start;
        end;
    
        case 5:
        mes .name$;
        mes "Enter the item id of the prize:";
        input $prize_id;
        next;
        mes .name$;
        mes "Enter the amount if items the winner will recieve:";
        input $prize_amount;
        next;
        mes .name$;
        mes "The price id is: ^ff0000"+$prize_id+"^000000";
        mes "^008000("+getitemname($prize_id)+")^000000.";
        mes "The amount is: ^ff0000"+$prize_amount+"^000000.";
        close;
        }
    }

    second event must start by GM above or equal level 1
     

    if    (getgmlevel() >= 1)    { 
    
    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave:Start Event"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;
    
        case 2:
        mes .name$;
        mes "The Default Price is:";
        mes "^ff0000 5 Bloody Branch ^000000";
        close;
    
        case 3:
        close;
    
        case 4:
        sleep2 100;
        close2;
        goto l_start2;
        end;
    }
        }

    normal player only can get event information, show detail price, or leave

    if    (getgmlevel() == 0)    { 
    
    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;
    
        case 2:
        mes .name$;
        mes "The Default Price is:";
        mes "^ff0000 5 Bloody Branch ^000000";
        close;
    
        case 3:
        close;
    
    }
        }

     

    Not the problem, that is myself edit for easy for me setting.. but right now even the game finish 1 round it never continue for second round game... 

  7. This script by original PoringKing ,  it never auto go for next round or even i press the NPC also nothing... Just like 1 game only and need to keep press start again from 2minutes

     

    Quote

    //================================================Name======================================================
                                        // Stop the clock (Official Release Name)
    //===============================================Version====================================================
    //                                                  1.1 
    //===============================================Author=====================================================
    //                     ____ _____  ______  __ __   __  _______    __   _____ __   __  _______
    //                    |  __ \ _  \|  __  \|  |  \ |  |/  ___  \  |  | /  /  |  \ |  |/  ___  \
    //                    | |__| | \  \ |__|  |  |   \|  |  |  _\_/  |  |/  /|  |   \|  |  |  _\_/
    //                    |   __/   | |      /|  |       |  | |_  \  |     | |  |    |  |  | |_  \
    //                    |  |\  \_/  /  |\  \|  |  |\   |   \_/  |  |  |\  \|  |  |\   |   \_/  |
    //                    |__| \_____/|__| \__\__|__| \__|\______/   |__| \__\__|__| \__|\______/
    //----------------------------------------Script Last Update 2020-------------------------------------------
    //==============================================Changelog===================================================
                                        // 1.0 *
                                        //        - Initial Release
                                        // 1.1
                                        //        - Maximize script
                                        //        - Fix some dialog of NPC
                                        //        - Remove timer that cause error
                                        //        - Remove all error from Latest rAthena

    //==========================================================================================================
    payon,157,235,4    script    Stop the Clock    925,{


    if(.game == 1 && stopped != 1)    {
        set stopped, 1;
        set @stopped, .i;
        message strcharinfo(0), "You stopped the clock at "+@stopped+".";
        if(.lowest > @stopped)    {
            set .lowest, @stopped;
            set .winner$, strcharinfo(0);
            }
        end;
    }
    else if(.game == 1)    {
        message strcharinfo(0), "You already stopped the clock.";
        end;
        }


    if(.game2 == 1 && stopped2 != 1)    {
        set stopped2, 1;
        set @stopped2, .i;
        message strcharinfo(0), "You stopped the clock at "+@stopped2+".";
        if(.lowest2 > @stopped2)    {
            set .lowest2, @stopped2;
            set .winner2$, strcharinfo(0);
            }
        end;
    }
    else if(.game2 == 1)    {
        message strcharinfo(0), "You already stopped the clock.";
        end;
        }


    set .name$, "[Event Manager]";
    set .menu$, "Information:Price:Leave";


    if(strcharinfo(0) == .winner$)    {
        set stopped, 0;
        mes .name$;
        mes "Here you get your price.";
        mes "Your Price is:";
        mes "^ff0000"+$prize_amount+" "+getitemname($prize_id)+"^000000";
        getitem $prize_id, $prize_amount;
        set .winner$, "";
        close;
        }

    if(strcharinfo(0) == .winner2$)    {
        set stopped, 0;
        mes .name$;
        mes "Here you get your price.";
        mes "Your Price is:";
        mes "^ff00005 Bloody Branch^000000";
        getitem 12103,5;
        set .winner2$, "";
        close;
        }

    if(stopped == 1)    {
        set stopped, 0;
        mes .name$;
        mes "You activated your char for the next round.";
        close;
        }

    if(stopped2 == 1)    {
        set stopped2, 0;
        mes .name$;
        mes "You activated your char for the next round.";
        close;
        }

    if    (getgmlevel() > 90)    {

    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave:Start Event:Enter Price"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;

        case 2:
        mes .name$;
        mes "The Price is:";
        mes "^ff0000"+$prize_amount+" "+getitemname($prize_id)+"^000000";
        close;

        case 3:
        close;

        case 4:
        sleep2 100;
        close2;
        goto l_start;
        end;

        case 5:
        mes .name$;
        mes "Enter the item id of the prize:";
        input $prize_id;
        next;
        mes .name$;
        mes "Enter the amount if items the winner will recieve:";
        input $prize_amount;
        next;
        mes .name$;
        mes "The price id is: ^ff0000"+$prize_id+"^000000";
        mes "^008000("+getitemname($prize_id)+")^000000.";
        mes "The amount is: ^ff0000"+$prize_amount+"^000000.";
        close;
        }
    }

    if    (getgmlevel() >= 1)    { 

    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave:Start Event"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;

        case 2:
        mes .name$;
        mes "The Default Price is:";
        mes "^ff0000 5 Bloody Branch ^000000";
        close;

        case 3:
        close;

        case 4:
        sleep2 100;
        close2;
        goto l_start2;
        end;
    }
        }

    if    (getgmlevel() == 0)    { 

    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select("Information:Price:Leave"))    {
        
        case 1:
        mes .name$;
        mes "^ff0000Stop the Clock^000000";
        mes "is a game where you need to";
        mes "click on me exactly when the counter reached 0.";
        next;
        mes .name$;
        mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
        next;
        mes .name$;
        mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
        next;
        mes .name$;
        mes "The winner will recieve a prize.";
        mes "^ff0000Don't forget to talk to me after the Event is over,";
        mes "to reset your counter to take part on the next event.^000000";
        close;

        case 2:
        mes .name$;
        mes "The Default Price is:";
        mes "^ff0000 5 Bloody Branch ^000000";
        close;

        case 3:
        close;

    }
        }

    l_start2:

    announce "[Stop the clock Manager]: We are going to start an Stop the Clock Event in 2 Minutes at Payon!",bc_all;
    sleep2 5000;
    announce "To win, you need to have click the closest value to 0, but at least below 50.",bc_all;
    sleep2 55000;
    announce "[Stop the clock Manager]: We are going to start in 1 Minute!",bc_all;
    sleep2 30000;
    announce "[Stop the clock Manager]: We are going to start in 30 Seconds!",bc_all;
    sleep2 20000;
    announce "[Stop the clock Manager]: Hurry up! Event starts in 10 Seconds!",bc_all;
    sleep2 5000;
    announce "[Stop the clock Manager]: Get Ready only 5 seconds left!",bc_all;
    sleep2 5000;
    announce "To win, you need to have click the closest value to 0, but at least below 50.",bc_all;
    sleep2 5000;
    announce "[Stop the clock Manager]: START!!!",bc_all;
    sleep2 5000;


    set .winner2$, "";
    set .game2, 1;
    set .lowest2, 1000;

    for(set .i, 1000; .i > 300;set .i, .i - 100)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 1000;
            }

    for(set .i, 300; .i > 50;set .i, .i - 10)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 100;
            }

    for(set .i, 50; .i > 0;set .i, .i - 1)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 10;
            }

    set .game2, 0;

    if(.winner2$ == "")    {
        announce "Nobody hit the clock at the right moment. There is no winner.",bc_blue;
        end;
        }
    announce .winner2$+" won Stop the Clock. He stopped it at "+.lowest2+".",bc_blue;
    sleep2 5000;
    announce .winner2$+"Please talk to me to get your price.",bc_blue;
    sleep2 5000;
    announce "To activate your char for the next round, please talk to me, too.",bc_all;
    end;


    l_start:

    announce "[Stop the clock Manager]: We are going to start an Stop the Clock Event in 2 Minutes at Payon!",bc_all;
    sleep2 5000;
    announce "To win, you need to have click the closest value to 0, but at least below 50.",bc_all;
    sleep2 55000;
    announce "[Stop the clock Manager]: We are going to start in 1 Minute!",bc_all;
    sleep2 30000;
    announce "[Stop the clock Manager]: We are going to start in 30 Seconds!",bc_all;
    sleep2 20000;
    announce "[Stop the clock Manager]: Hurry up! Event starts in 10 Seconds!",bc_all;
    sleep2 5000;
    announce "[Stop the clock Manager]: Get Ready only 5 seconds left!",bc_all;
    sleep2 5000;
    announce "To win, you need to have click the closest value to 0, but at least below 50.",bc_all;
    sleep2 5000;
    announce "[Stop the clock Manager]: START!!!",bc_all;
    sleep2 5000;

    set .winner$, "";
    set .game, 1;
    set .lowest, 1000;

    for(set .i, 1000; .i > 300;set .i, .i - 100)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 1000;
            }

    for(set .i, 300; .i > 50;set .i, .i - 10)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 100;
            }

    for(set .i, 50; .i > 0;set .i, .i - 1)    {
            announce ":: "+.i+" ::",bc_blue|bc_npc;
            misceffect 377;
            sleep2 10;
            }

    set .game, 0;

    if(.winner$ == "")    {
        announce "Nobody hit the clock at the right moment. There is no winner.",bc_blue;
        end;
        }
    announce .winner$+" won Stop the Clock. He stopped it at "+.lowest+".",bc_blue;
    sleep2 5000;
    announce .winner$+"Please talk to me to get your price.",bc_blue;
    sleep2 5000;
    announce "To activate your char for the next round, please talk to me, too.",bc_all;

    end;


    }

     

  8. Quote
    -    shop    dynamicshop    -1,501:22
    prontera,150,150,0    script    Dynamic Shop    100,{
        callshop "dynamicshop",1;
        npcshopattach "dynamicshop";
        end;
        
        OnBuyItem:
            for ( set .@j, 0; .@j < getarraysize(.items); set .@j, .@j + 2 ) {
                for ( set .@k, 0; .@k < getarraysize(@bought_nameid); set .@k, .@k + 1 ) {
                    if ( @bought_nameid[.@k] == .items[.@j] ) {
                        if ( checkweight( @bought_nameid[.@k], @bought_quantity[.@k] ) ) {
                            if ( countitem(.currency) < .items[.@j+1] || countitem(.currency) < ( .items[.@j+1] * @bought_quantity[.@k] ) )
                                dispbottom "You don't have enough " +getitemname(.currency)+ " to purchase this item.";
                            else {
                                delitem .currency, .items[.@j+1] * @bought_quantity[.@k];
                                getitem @bought_nameid[.@k], @bought_quantity[.@k];
                            }
                        } else dispbottom "You cannot carry out more items with you";
                    }
                }
            }
            deletearray @bought_quantity, getarraysize(@bought_quantity);
            deletearray @bought_nameid, getarraysize(@bought_nameid);
            end;
    
        OnInit:
            set .currency, 7227; // TCG is used to buy items
            setarray .items, 4001,5,4002,5,4003,5,4004,5,4005,5; // Usage : <item id>,<price>
            npcshopitem "dynamicshop",0,0;
            for ( set .@i, 0; .@i < getarraysize(.items); set .@i, .@i + 2 )
                npcshopadditem "dynamicshop",.items[.@i],.items[.@i+1];
            end;
    }

    How to solve this showing  [Error]: builtin_npcshopitem: Item ID 0 does not exist.
     

  9. Quote

    payon,210,168,5    script    Pietri#LMPQ_Register    4_M_PIERROT,{
        OnTalk:
            doevent "lmpq_main::OnRegister";
        end;
        OnInit:
            while (true) { // this loop will run forever
                delwaitingroom;
                waitingroom "Party Quest: "+getmapusers("new_zone04")+" Players",0; //
                sleep 1000; // sleep for 1 second (1000 ms)
            }
        end;

    }

    new_zone04,100,29,4    script    Pietri#LMPQ    4_M_PIERROT,{
        // changecamera(424, 42, -31);
        if (strnpcinfo(2) == "LMPQ") {
            doevent "lmpq_main::OnTalk";
        }
        else {
            sscanf(strnpcinfo(2), "%d-%d", .@room, .@portal);
            mes "^0055FF[ "+strnpcinfo(1)+" ]^000000";
            mes "You're currently at Room #"+.@room;
            mes " ";
            mes " ";
            mes "^777777Now you have to decide. Which portals will lead you to Room 16?^000000";
            close;
        }
        end;
        
        OnTouch:
            sscanf(strnpcinfo(2), "%d-%d", .@room, .@portal);
            if (.@portal == 1) {
                .@room = (.@room + 4) % 16;
            }
            else if (.@portal == 2) {
                .@room = (.@room + 7) % 16;
            }
            else if (.@portal == 3) {
                .@room = (.@room - 3) % 16;
                if (.@room < 0) 
                    .@room = 16 + .@room;
            }
            else {
                showscript "Invalid Portal#"+strnpcinfo(2);
                end;
            }
            .@room = (.@room % 16);
            if (.@room == 0) {
                if (!getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC, "Pietri#LMPQ")) {
                    warp .@map$, .@x, .@y - rand(5, 10);
                }
            }
            else if (!getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC, "Pietri#"+.@room+"-2")) {
                warp .@map$, .@x, .@y + rand(5, 15);
                showscript "<LMPQ> You entered Room #"+.@room;
            }
            else {
                showscript "Invalid Portal#"+strnpcinfo(2);
            }
            end;
            
        OnLMPQEnable:
            sscanf(strnpcinfo(2), "%d-%d", .@room, .@portal);
            if (.@room > 0 && .@portal == 0) {
                delwaitingroom;
                waitingroom "LMPQ Room # "+.@room, 0;
            }
            end;
            
        OnLMPQDisable:
            delwaitingroom;
            end;
    }

    -    script    Pietri::lmpq_main    -1,{
        
        OnInit:
            // ticket ItemID + amount
            .nameid = 45350;
            .amount = 100;
            // bonus EXP given for each tickets
            .exp_per_item = 1;
            // Quest duration (minute)
            .duration = 15;
            // Required party member
            .min_pt_member = 2;
            
            // Announcements within the map.
            setarray .announce$,
                "This party quest is to collect at least "+.amount+"x "+getitemname(.nameid)+" by killing monsters.",
                "You only have 10 minutes to finish this quest. Or you will be warped back to town.",
                "Bring the items to [Pietri] who will be waiting for you all at the last room (Room 16).",
                "Each room of the maze consists of 3 portals (with the exception of Room 16).",
                "Its absolutely vital for party members to follow the party leaders instructions so that all of you will not be lost.",
                "Once you reach Room 16 with the tickets, talk to the NPC [Pietri] ",
                "Treasure box it will spawn the mobs. After killing them...",
                "You'll have more chance to get more Proof Of Donation",
                "Completed the quest, you will receive 300 Proof Of Donation and 500 Skulls.",
                "That's all information for you all. Get ready, Party quest be starting now...";
            .announce_size = getarraysize(.announce$);
            
            getmapxy(.map$, .@x, .@y, UNITTYPE_NPC, "Pietri#LMPQ");
            setmapflag .map$, mf_noteleport;
            setmapflag .map$, mf_nowarp;
            setmapflag .map$, mf_nowarpto;
            setmapflag .map$, mf_nobranch;
            setmapflag .map$, mf_nosave;
            setmapflag .map$, mf_nomemo;
            setmapflag .map$, mf_noskill;
            setmapflag .map$, mf_nomobloot;
            
            getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC, "Pietri#LMPQ_Register");
            mapwarp .map$, .@map$, .@x, .@y;

            // bindatcmd("lmpq", strnpcinfo(3)+"::OnRoomWarp"); // quick access for each room.
            end;

            
        OnRoomWarp:
            if (getgmlevel() >= 99){
                .@room = atoi(.@atcmd_parameters$[0]);
                callsub(L_Warp, .@room);
            }
            end;
        
        L_Warp:
            .@room = getarg(0, 0);
            if (!getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC, "Pietri#"+.@room+"-2")) {
                warp .@map$, .@x, .@y + 15;
            }
            else {
                showscript "Invalid Portal#"+.@room;
            }
            return;
            
    OnRegister:
        .@party_id = getcharid(1);
        .@is_leader = (getcharid(0) == getpartyleader(.@party_id, 2));

        mes "^0055FF[ "+strnpcinfo(1)+" ]^000000";
        if (.status || getmapusers(.map$) > 0) {
            mes "Sorry, Currently another party are currently challenging the party quest now.";
            mes "Try again later...";
            close;
        }

        if (.party_id > 0) {
            mes "Sorry, another party has already registered.";
            close;
        }

        if (!.@is_leader) {
            mes "You're not party leader.";
            close;
        }

        if (.min_pt_member > 0 && !instance_check_party(.@party_id, .min_pt_member)) {
            mes "Sorry, we required at least "+.min_pt_member+" online party members to participate this party quest.";
            mes "Try again later.";
            close;
        }

        mes "Are you sure you want to register for the Party Quest?";
        mes "- NO SKILL MAP";
        mes "- NO DUAL CLIENT";
        switch (select("Yes:No")) {
            case 1: // Yes
                // Check if the current date is the same as the one stored for the player
                if (#PARTY_QUEST_DATE == gettime(DT_DAYOFYEAR)) {
                    // If the current date is the same, check if the player has done the quest five times already
                    if (#PARTY_QUEST_COUNT >= 10) {
                        mes "You have already participated in the party quest 5 times today.";
                        mes "Please come back tomorrow.";
                        close;
                    } else {
                        // If the player has done the quest less than 5 times, increment the counter
                        #PARTY_QUEST_COUNT++;
                    }
                } else {
                    // If the current date is not the same as the one stored for the player
                    // (i.e., the player is attempting the quest on a new day), reset the counter and store the current date
                    #PARTY_QUEST_DATE = gettime(DT_DAYOFYEAR);
                    #PARTY_QUEST_COUNT = 1;
                }

                .party_id = .@party_id;
                .status = 1;
                mes "Your party has successfully registered for the Party Quest.";
                close2;
                donpcevent strnpcinfo(3)+"::OnStart";
                end;
            case 2: // No
                mes "Alright, let me know if you change your mind.";
                close;
        }
        close;

    Rest of code.........

     

    Hello this is my script... A party leader can register this quest ... if party leader reach 5 times a day.. Cant register....

    But this script when the party leader leave his party and join another party leader who not yet reach the register reach 5 times... it will follow too...

     Iwant prevent the registration of the party if any member has already participated 5 times in the same day.
    Party leader register need check all member if one of the member has reach the limit.. cant register

     

  10. [Error]: builtin_npcshopitem: Item ID 0 does not exist.
    This error keep appear at my putty... only i solved the script it will sell the orange potion at my shop too.



    -    shop    dynamicshop    -1,502:-1
    lasa_fild01,197,211,4    script    Usable Shop    10057,{

        callshop "dynamicshop",1;
        npcshopattach "dynamicshop";
        end;
        
        OnBuyItem:
            for ( set .@j, 0; .@j < getarraysize(.items); set .@j, .@j + 2 ) {
                for ( set .@k, 0; .@k < getarraysize(@bought_nameid); set .@k, .@k + 1 ) {
                    if ( @bought_nameid[.@k] == .items[.@j] ) {
                        if ( checkweight( @bought_nameid[.@k], @bought_quantity[.@k] ) ) {
                            if ( countitem(.currency) < .items[.@j+1] || countitem(.currency) < ( .items[.@j+1] * @bought_quantity[.@k] ) )
                                dispbottom "You don't have enough " +getitemname(.currency)+ " to purchase this item.";
                            else {
                                delitem .currency, .items[.@j+1] * @bought_quantity[.@k];
                                getitem @bought_nameid[.@k], @bought_quantity[.@k];
                            }
                        } else dispbottom "You cannot carry out more items with you";
                    }
                }
            }
            deletearray @bought_quantity, getarraysize(@bought_quantity);
            deletearray @bought_nameid, getarraysize(@bought_nameid);
            end;

        OnInit:
            set .currency, 7420; // Skull is used to buy items
            setarray .items, 13550,10,7776,50,12020,5,12118,5,12119,5,12120,5,12121,5,13891,20,13892,20,13893,20,13894,20,12114,3,12115,3,12116,3,12117,3,12210,50,13604,150,13592,150,13578,150,13596,150,13572,150,13574,150,12214,10,12031,5,12029,5,12030,5,12033,5,12028,5; // Usage : <item id>,<price>
           npcshopitem "dynamicshop",0,0;
            for ( set .@i, 0; .@i < getarraysize(.items); set .@i, .@i + 2 ) {
                if (.items[.@i] != 0) { // Check if item ID is not 0
                    npcshopadditem "dynamicshop",.items[.@i],.items[.@i+1];
                }
            }
            end;
    }

×
×
  • Create New...