Jump to content

Nerfwood

Members
  • Posts

    104
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Nerfwood

  1. Main problem starts at line 37. The script uses the "getarg" command but it is not a function. Try changing the NPC Great Balthazar (Line 37) into a function, and put it at the topmost portion of the file, e.g.:

    function	script	highrefinemain	{
    	mes "[" + getarg(0) + "]";
    	mes "Looking for"...
    etc, etc..
    }
    
    prt_in,59,55,3 script Great Balthazar 99,{
        callfunc "highrefinemain","Balthazar";
        end;
    }
    
  2. File Name: Unofficial Fallen Angel Wing (FAW) Enchantment

    File Submitter: Nerfwood

    File Submitted: 03 Dec 2014

    File Category: Utilities

    Content Author: Nerfwood


    Unofficial Fallen Angel Wing (FAW) Enchants


    This script should do exactly what is written on iRO wiki's FAW Enchants page, but you can easily change some settings as specified below.
    Also, kindly press that rep_up.png reputation button if you find this helpful. This is my first script release, so why not encourage me to release more by pressing that button? ;)


    Custom Settings:

    .chancetype
    If set to 1, lower-level enchants are more likely to be enchanted. If set to 0, all levels have an equal chance to be enchanted (true random).

    // 1 = 60% low, 30% mid, 10% high for 1st & 2nd enchant slot && 40% low, 30% mid, 20% high, 10% special for 3rd enchant slot// 0 = Equal Chance.chancetype = 1;


    .cost
    Cost for enchanting.

        //Cost for Enchanting. It's free in iRO    //.cost=0;


    .cost2
    Cost for resetting enchants.

        //Cost to reset | Costs 1Mz in iRO    .cost2 = 1000000;


    .autoequip
    If set to 1, it lets the player to equip the garment while the script is running. Set to 0 to disable.

        //Turn on Equip Selection if garment is unequipped? 1 = Yes    .autoequip =1;


    Additional Notes:

    You may want to change the effects of the Fatal Enchants as rAthena's effects are different from iRO's.

    //iRO Fatal effect4863,Fatal1Lv,Fatal1Lv,6,10,,,,,,,,,,,,,,,{ bonus bCritAtkRate,4; bonus bCritical,1; },{},{}4864,Fatal2Lv,Fatal2Lv,6,10,,,,,,,,,,,,,,,{ bonus bCritAtkRate,6; bonus bCritical,2; },{},{}4865,Fatal3Lv,Fatal3Lv,6,10,,,,,,,,,,,,,,,{ bonus bCritAtkRate,8; bonus bCritical,3; },{},{}4866,Fatal4Lv,Fatal4Lv,6,10,,,,,,,,,,,,,,,{ bonus bCritAtkRate,10; bonus bCritical,4; },{},{}



    Click here to download this file

    • Upvote 2
  3. data\sprite\Àΰ£Á·\¸öÅë\¿© refers to the name of the folder, so....

     

    In your ragnarok directory, create a folder named "data"if there isn't already. Then, inside the data folder, create a folder named "sprite." Inside the sprite, create a folder named Àΰ£Á·. And inside that, ¸öÅë, and inside that, ¿©.

     

    For more information, review this page:

    http://rathena.org/wiki/Data_Folder_Structure

     

    Just read the wiki's contents, and it will provide you valuable information in running a server.

  4. You must specify which MVP cards aren't working, and where/when did your players use it.

    Anyway, if it's working for you, chances are it's also working for them, but they just aren't aware of it (e.g., they thought of the wrong effect)... unless you have implemented some restrictions, but it doesn't seem that you did. lol

  5. Thanks a lot bro....by the way...how do i add others buff such as linker and etc...i've tried add in based on special effect list but when buffing, i got stone curse..

    and 1 more things, can it being click on my current npc heal??..i meant the script only allowed the buff to player by that npc only..i plan to make the npc as place for guildmaster paying only..to get buff still clicking my current healer npc...sorry for my bad english...and thanks in advanced... /no1  /no1  /no1  /no1

     

    Booo!! You didn't press the rep_up.png button (yes, it's a big deal).

     

    Anyway, the specialeffect2 command only displays the effect/visuals and doesn't do anything at all (aside from that). What you want is to use the sc_start, which is actually the command that buffs (or debuffs) players. Click the links and you'll see the explanation for each. If you want, you can also use npcskill command, which is easier than the sc_start command.

     

    Here's a revamped version of the file from above:

    Paste: 1b9xqn2i457du

     

     

    Remember that rep_up.png button. ;)

    Oh wait? You want me to separate the Payment and the Buffer? Then you need to provide your NPC healer script.

  6. *getequipid(<equipment slot>)

    This function returns the item ID of the item equipped in the equipment slot

    specified on the invoking character. If nothing is equipped there, it returns -1.

    Valid equipment slots are:

    ..... etc

     

    You can try using the getequipid() command like this:

    1519,Chain,Chain,4,23000,,800,84,,1,2,0x0004C5B2,7,2,2,2,14,1,8,{   if(getuipid(EQI_HAND_L)!=1520 || getuipid(EQI_HAND_L)!=1521 || getuipid(EQI_HAND_L)!=1522 ) { bonus bStr,10; bonus bVit,10; }  },{},{}
    

    This is untested. ;)

  7. Here is the script. It's a basic NPC. I want to show the Quest Icon without talking to the NPC.

     

    So you want the NPC to use showevent when there are nearby players? Then use the OnTouch label, and add <x> and <y> trigger area to the NPC header (the 55,5,5 part). The code below makes the NPC display the showevent icon when a player enters its 5x5 area.

    new_1-1,62,107,4	script	Test	55,5,5,{
    
    
    
    mes "[Test]";
        mes "Hello World.";
        close;
    
    OnTouch:
       showevent 1,1;	
     end;
    }
  8. It won't work because you placed the mes command under the OnInit label. OnInit triggers everytime the server is (re)loaded (in which no player is attached to the script), while mes needs an attached player to function, so that's probably why it isn't working. The mes command contradicts the OnInit label.

     

    .xxx is a variable, but it is not declared, which is why I used while(!.xxx). !.xxx means that .xxx has no value. While is a looping function, so as long as !.xxx is true (or .xxx is not declared), it will do the script in it over and over again.

     

    So, the correct script would be:

    prontera,102,102,3 script SpecialEffect 66,{
    
      mes "Done";
      close;
    
    OnInit:
    	freeloop(1);
    	while(!.xxx) {
    	specialeffect 70;
    	sleep 500;
    	}
    
    }
    

    On a side note, Skorm's method is much easier to do.

  9. Try this one.

    prontera,68,63,3    script    IP freebies    60,{
    
        .@IP_table$ = getcharip();
        mes "[Freebies]";
        if(compare($IP_table$,.@IP_table$)) {
            mes "You have already received your freebies.";
            close;
        
        }
        set $IP_table$, $IP_table$+","+.@IP_table$;
        mes "Here are your freebies.";
        getitem 909,1;
        close;
    
    }

    Don't forget the rep_up.png button. I'm building up my rep lol.

    • Upvote 2
  10. pvp noparty is disabled and what I found out is that map is no under gvg_castle mapflag.. Is that the problem?

     

    No. What gvg_castle does is that it enables GvG  every time agitstart is called (aka enable WoE), just like how castles function.

    If gvg_noparty has already been disabled, then you should check the following:

    Are the players in a party? Are their levels within the allowed devo level gap?

    If they are in a party and their levels are within the allowed gap, then you may have failed to disable pvp/gvg_noparty. Double check your script, and make sure that the lines are deleted or commented out. You may want to post your script here as well.

     

    Edit: Did you disable Devo in GvG? Better check your skill_nocast_db.txt.

  11. I have actually misunderstood/misread the code/explanation in the source code. Shame, shame... So sc/tick_def is %-based, while sc/tick_def2 is fixed.

     

     

        /// Resistance rate: 10000 = 100%
        /// Example:    50% (5000) -> sc_def = 5000 -> 25%;
        ///                5000ms -> tick_def = 5000 -> 2500ms
        int sc_def = 0, tick_def = -1; // -1 = use sc_def
        /// Fixed resistance value (after rate calculation)
        /// Example:    25% (2500) -> sc_def2 = 2000 -> 5%;
        ///                2500ms -> tick_def2=2000 -> 500ms
        int sc_def2 = 0, tick_def2 = 0;

     

     

     

    yes i did the problem even i got 90 mdef frost status last 10 sec i think

    can you change to 255 luk only?

     

    255 luk = 100% immunity?

    case SC_FREEZE:
    sc_def = status->mdef*100 + status->luk*10000/255;
    tick_def = status->mdef*100 + status->luk*2; 
    sc_def2 = status_get_lv(bl)*10 - status_get_lv(src)*10;
    tick_def2 = status->luk*10 + status_src->luk*-10; // Caster can increase final duration with luk
    break;
    

    The above code should now make each point in Equip MDef reduce frozen status duration by 1% and each luk by 0.2% . 255 luk should also give 100% immunity (disregarding the source/enemy's parameters), as well does 100 Equip Mdef. Additionally, each 100 point in luk should reduce the duration at a fixed 1 sec.

     

    Btw, what skills are you using to test the frozen duration? Skills inflict frozen status at varying durations, so you have to change the value of each skill if you want to define an absolute duration of frozen status. Storm Gust, for example, can freeze an enemy for up to 12 seconds, while a level 5 Jack Frost can freeze enemies up to 30 seconds. (This is for renewal)

     

    Edit:

    If you want to edit the frozen status duration of each skill, check skill.c and look for:

    sc_start(src,bl,SC_FREEZE,etc....

    In the same line of code, you will notice something like this:

    skill_get_time2(skill_id,skill_lv)
    

    If it's skill_get_time2, then edit the Duration2 of the skill in skill_cast_db.txt. If it says skill_get_time only, then edit the Duration1. I'm not 100% sure about this, but it's worth a try. As for frozen status caused by cards/items, I don't know lol. Try searching script.c.

×
×
  • Create New...