Jump to content

1steric

Members
  • Content Count

    5
  • Joined

  • Last visited

Posts posted by 1steric


  1. hello

     

    I am currently writing this script.

     

    This is a system that allows you to add desired options to 5 slots of all items.

     

    but i have this script I would like to modify it so that only the weapon can be given the desired option with one slot.

     

    Advice from seniors please. thank you

     

     

     

     

     

     

     

    trin_in,30,164,4    script    잠재력 개방    4_DOG01,{ 
        callsub(StartTalking);
        end;
        
    OnInit:
        /**
         * General Configuration
         */
        /* 강화 실패 확률 (0 - 99 in percent) */
        .chance_of_failure = 0;
        /* 실패 시 아이템 삭제여부 (true/false) */
        .delete_on_failure = false;
        /* 강화 필요 제니 */
        .zeny_requirement = 100000;
        /* Minimum amount of the bonus value. 
         * For negative effects or certain bonuses that require negative values
         * Maximum possible value is -INT16_MAX)
         */
        .minimum_bonus_amount = -100; // usually used with delay bonus options, although not provided in the script.
        /* Maximum amount of the bonus value. 
         * Maximum possible value is INT16_MAX */
        .maximum_bonus_amount = 10;
        /* Disable selection of bonus value (true/false) */
        .enable_random_bonus = true;
        
        /* Item Option Descriptions */
        setarray(.options$[0], "공격력", "마법 공격력", "공격속도", "시전속도", "크리티컬 데미지");
        /* Item Option Constants */
        setarray(.option_constants[0], VAR_ATKPERCENT, VAR_MAGICATKPERCENT, VAR_PLUSASPDPERCENT, DEC_SPELL_CAST_TIME, DAMAGE_CRI_TARGET);
        end;
        
    StartTalking:
        .@name$ = _("[ ^990099잠재력 개방^000000 ]");
        disable_items();
        mes(.@name$);
        mesf("안녕하세요 %s", strcharinfo(PC_NAME));
        mes("착용하고 계신 무기에 잠재력을 개방시킬 수 있어요.");
        mes("잠재력을 개방시키면 새로운 추가옵션을 얻을 수 있습니다.");
        next();
        mes(.@name$);
        mes("무기 잠재력 개방을 하시겠습니까?");
        next();
        if (select("할게요!", "아뇨 다음에요..") == 2) {
            mes(.@name$);
            mes("그래요 다음에 뵈요.");
            close();
        }
        // Build the Menu.
        setarray(.@position$[1], "상단", "갑옷", "왼손", "오른손", "걸칠것", "신발");
        .@menu$ = "";
        for (.@i = 1; .@i <= 6; ++.@i)
            .@menu$ += ((getequipisequiped(.@i)) ? getequipname(.@i) : .@position$[.@i] + "-[착용하지 않음]") + ":";
        // Select the part.
        .@equip_index = select(.@menu$);
        
        
        // Present a list of currently infused options.
        do {
            .@menu$ = "";
            .@used = false;
            // Build the menu of current options.
            for (.@i = 1; .@i <= MAX_ITEM_OPTIONS; ++.@i) {
                // call getequipoption(<equip_index>, <type>, <slot>);
                // if the return is <0, it's a script error.
                // if the return is 0, the slot is empty.
                // if the return is >0, the slot is unavailable.
                .@opt = getequipoption(.@equip_index, .@i, IT_OPT_INDEX);
                if (.@opt > 0)
                    .@menu$ += (.@i) + ") " + .options$[.@opt - 1] + ":";
                else
                    .@menu$ += (.@i) + ") ^999999Empty^000000" + ":";
            }
            // Option Slot is the actual option slot 0-MAX_ITEM_OPTIONS (@see mmo.h)
            .@option_slot = select(.@menu$);
            
            // Check for used slot and request user action if found.
            if (getequipoption(.@equip_index, .@option_slot, IT_OPT_INDEX) > 0) {
                mes(.@name$);
                mes("This slot is already used up!");
                if (select("^990000Override the slot.^000000", "Choose again.") == 2)
                    .@used = true;
                next();
            }
        } while (.@used); // loop if the slot is not to be overridden
        
        // Present a list of available bonuses.
        mes(.@name$);
        mes("Which of the following item bonuses would you like to add to this item?");
        next();
        // Build the Options!
        .@menu$ = "";
        for (.@i = 0; .@i < getarraysize(.options$); ++.@i)
            .@menu$ += (.@i + 1) + ") " + .options$[.@i] + ":";
            
        do {
            // Select the options!
            .@option_variable = select(.@menu$);
            next();
            mes(.@name$);
            mesf("You chose ^009900%s^000000!", .options$[.@option_variable - 1]);
            mes("Are you sure?");
            next();
        } while (select("Fo Shizzle.", "I'ma re-evaluate, brah.") == 2);
        
        // Select a bonus or randomise.
        if (.enable_random_bonus) {
            .@value = rand(.maximum_bonus_amount);
        } else {
            do {
                mes(.@name$);
                mesf("Please input the bonus amount of ^009900%s^000000 you want to add!", .options$[.@option_variable - 1]);
                mesf("(Min: %d, Max: %d)", .minimum_bonus_amount, .maximum_bonus_amount);
                .@ok = input(.@value, .minimum_bonus_amount, .maximum_bonus_amount);
                next();
            } while (.@ok);
        }
        
        // If there's a chance of failure, inform the user.
        if (.chance_of_failure) {
            mes(.@name$);
            mes("Alright so,");
            mes("I'll have you know...");
            mesf("There's a ^990000%d%% chance of failure^000000.", .chance_of_failure);
            mes("Because, well... I didn't go to school.");
            next();
            mes(.@name$);
            if (.delete_on_failure) {
                mes("If I fail, your item will break and it ^990000will be destroyed^000000!");
            }
            mes("Are you still ready to go forward with this?");
            next();
            if (select("Fo shizzle.", "Hells naw, go back to school.") == 2) {
                mes(.@name$);
                mes("Geez, you don't have to be so harsh about it.");
                close();
            }
            next();
        }
        
        // If there's a Zeny Requirement, perform the usual.
        if (.zeny_requirement > 0) {
            mes(.@name$);
            mesf("You also have to pay %dZ.", .zeny_requirement);
            next();
            if (select("Of course!", "No way!") == 2) {
                mes(.@name$);
                mes("Well, see you around then...");
                close();
            }
            if (Zeny < .zeny_requirement) {
                mes(.@name$);
                mes("You don't have enough Zeny!");
                close();
            }
            Zeny -= .zeny_requirement;
        }
        
        // Check if there's a chance of failure, set and roll the dice.
        if (.chance_of_failure && rand(100) <= .chance_of_failure) {
            mes(.@name$);
            mes("^990000I failed!^000000");
            mes("Guess I should go back to school.");
            // Delete the item if flagged.
            if (.delete_on_failure)
                failedrefitem(.@equip_index); // Simulate failed refinement of the item and delete.
        } else {
            // Set the Item Option bonuses in the slot see db/item_options.conf for more info.
            setequipoption(.@equip_index, .@option_slot, .option_constants[.@option_variable - 1], .@value);
            mes(.@name$);
            mes("^009900Praise Jesus^000000");
            mes("I have added an option to your item.");
            mes("My skills are flawless!");
        }
        next();
        mes(.@name$);
        mes("See you around!");
        close();
    }
     


  2. hello,

     

    this is rathena script

     

     

     

    -    script    cash    -1,{
        end;

    OnNPCKillEvent:
        if(getcharid(1))
        {
          addrid(2,0,getcharid(1));
        }
    if(getmonsterinfo(killedrid,MOB_LV) >= 1) 
    {
        if (rand(10000) <= 100) getitem 6623,1; // 100% 확률 하급마력석
        if (rand(10000) <= 300) getitem 673,1; // 3% 확률로 동화 1개 획득 
    }
        if(getmonsterinfo(killedrid,MOB_LV) >= 200)
        {
        if (rand(10000) <= 100) getitem 6624,1; //중급마력석
        if (rand(10000) <= 500) getitem 984,1; //오리데오콘
        if (rand(10000) <= 500) getitem 985,1; //에르늄
        if (rand(10000) <= 200) getitem 675,1; // 2% 확률로 은화 1개 획득 
    end;
        }
        else if(getmonsterinfo(killedrid,MOB_LV) > 250)
        {
        if (rand(10000) <= 100) getitem 6625,1; //상급마력석
        if (rand(10000) <= 300) getitem 7619,1; //농축에르늄
        if (rand(10000) <= 300) getitem 7620,1; //농축오리데오콘
        if (rand(10000) <= 100) getitem 671,1; // 1% 확률로 금화 1개 획득 
            end;
        }
        end;
    }
     

     

    world drop cash system,

    party share drop

     

      addrid(2,0,getcharid(1));      <<-- this line error    addrid

     

    Which syntax should be applied to the Hercules version to apply well?

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.