Jump to content

nixrlz

Members
  • Posts

    27
  • Joined

  • Last visited

Posts posted by nixrlz

  1. currently im using Neoncube patcher and gryfff to added some custom item like wings , etc ,etc.

    the problem is i need to add iteminfo.lub into my ragnarok folder. system/iteminfo.lub. well for me i can just paste it and it works fine. but i want to make it into a patch so that everyone beside me can only run the patcher , and then patch the iteminfo.lub by itself. but i dont know how to do it using neoncube or gryff to make the patch.

     

    and is it possible to change my old patcher (which is a neon cube patcher) into thor patcher. since im more familiar with it.

    and what do i need to do to change it?? 

     

    this are the setting for thor patcher , there is some part that i didnt know . 

    //Thor Patcher remote config file

    [Main]
    //Allow patching or not?
    allow=true
     
    //Should patcher ignore everything else and finish patch immediately?
    Force_Start=false
     
    //if not, what message should appear?
    policy_msg=Server is taking a nap.
     
    //file_url - patch files should ALL put here.
    // This config entry will override the one in embed config.
    // o HTTP:
    //         http://domain.com/dir/
    // o FTP:
    //         ftp://domain.com/dir/
    //     o With <Username> [Password] [Port]
    //     o Note: username is required if want put password, otherwise everything is optional.
    can someone give me an example on this one. i still kinda vague.
     
     
    [Patch]
    //use CheckSum tool, hash for client & patcher
    // used to make sure exe is up to date
    //  (leave empty to disable this feature)
    ClientSum=
    PatcherSum=PASTE THE CODE HERE
    i dont know what to do in these part.. im kinda new. can someone point me what to do in these part??
     
     
    //This is compressed file for patcher & client update
    // To make these work, ClientSum and/or PatcherSum can't be empty
    // Note: these files should put same place as patch file (file_url in internal config)
    //Relative address, not FULL URL!
    ClientPath=
    PatcherPath=newskin.thor
    also this part, didnt know..
    // Patch list file
    PatchList=plist.txt
     
    [stars]
    // Shining o.O (Anyways, its for start button clones)
    // Since orignal client has check sum.. why not for clones? XD
     
     
    //How many? (it should same as amount of start button clone, but of course it's your choice)
    clients=0
     
    // _sum - checksum, use CheckSum tool.
    //client1_sum=
    // _Name - Filename of exe
    //client1_Name=
    // _Path - Path for file [Compressed]
    //client1_Path=
     
    [Misc]
    //Set a limit for fragment, when reach this limit, patcher will ask user to defrag
    FragmentLimit=50

     

    thats all. sorry for the long post .and sorry if i post it in the wrong section. thanks!

  2. Skill_castnodex_db all skills must have a 7,7  example

     

    2259,7,7 //NC_FLARE

    i did that , and then the asura cast wayyyyy to long . it takes like 10s. even though i change it to only 1000ms . hmm what should i change again?

     

    nvm : thanks for the advice, it works, earlier it didnt work because i forgot that i put delay on the import folder, instead reading the one i make in pre-re folder , it read in the import, anyway thanks !!

  3. hello, 

    like the title said.

    im using renewal client , and i did define 

    RENEWAL into //Renewal in renewal.h so basicly i want to use Pre-re calculation. 

     

    and

     

    i want to add some fixed cast time to certain skill , like asura strike, dragon breath , etc ,etc

     

    the problem is. everytime i change the skill_cast_db , and skill_castnodex_db , it didnt give asura strike / dragon breath a fixed cast time . it keep Insta cast no matter what i change. 

     

    hmm how should i change it? thanks

    sorry if i post it in the wrong section.

     

  4. For flying side I don't know

    For other skills

    The player must be

    within the default skill range or the command will fail silently.

    no , even if they were within range , the skill would be miss, because the npc dosent have status.. hmm can we put status on the npc?

  5. @retroflav: That can't be done with an external controller. Edit the guild files directly.

     euphy , i want to ask , can u add TIMER above the NPC of woe controller? and also how to remove the effect ? cuz when woe start it keep giving some Casting effect which is noisy.,, 

  6. where do i find this npcskill?? i dont have those on my trunk...

     

    EDIT: the npc manage to use magic on me.. but whenever he use Melle skill , like bowling bash , flying side kick,, it will shows up Miss.. how can we add the npc status so they wont miss?

  7. this is the script 

    i already put an attacment below.. 

    im using rAthena

    im using SVN 17101 

    And client date 2010 .. 

     

    i tried all skill that u put inside like cold bolt and etc.. but the npc didnt cast anything to me,..

    StalkerNpc.txt

  8. Hello .. hi again , i want to ask.. i have this Script about headgear disguiser . .

    it works perfectly .. but theres a problem with it..

    everytime i tried to disguise my headgear .. yes it works.. it change the looks.. but the problem is .. if i change to another headgear .. and put the headgear that i already disguise .. the headgear change to normal state/first state .. it didnt stay on the headgear that i disguise..

    or anyway heres the script

    [size=4]brasilis,192,173,5[/size][size=4] [/size][size=4]script[/size][size=4] [/size][size=4]Headgear Disguiser#Iris[/size][size=4] [/size][size=4]763,{[/size]
    
    //Cancels Overplace Unused Variables
    if (lock_headgear > 0) {
    if (lock_headgear & 1) {
    if ( (getiteminfo(getequipid(1),5) != getlook(4)) || (getequipisequiped(1) == 0) ) {
    set lock_headgear, lock_headgear - 1;
    
    }
    }
    if (lock_headgear & 2) {
    if ( (getiteminfo(getequipid(9),5) != getlook(5)) || (getequipisequiped(9) == 0) ) {
    set lock_headgear, lock_headgear - 2;
    setlook 5, getiteminfo(getequipid(9),11);
    }
    }
    if (lock_headgear & 4) {
    if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
    set lock_headgear, lock_headgear - 4;
    setlook 3, getiteminfo(getequipid(10),11);
    }
    }
    if (lock_headgear & 8) {
    if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
    set lock_headgear, lock_headgear - 8;
    setlook 3, getiteminfo(getequipid(1),11);
    }
    }
    if (lock_headgear & 16) {
    if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
    set lock_headgear, lock_headgear - 16;
    setlook 3, getiteminfo(getequipid(1),11);
    }
    }
    if (lock_headgear & 32) {
    if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
    set lock_headgear, lock_headgear - 32;
    setlook 3, getiteminfo(getequipid(9),11);
    }
    }
    mes "["+strnpcinfo(1)+"]";
    mes "Would you like to undisguise back?";
    menu "Yes please.",-,"No, maybe next time.",maybe;
    next;
    mes "["+strnpcinfo(1)+"]";
    mes "I have successfully ^FF0000undisguised^000000 the current disguised headgears.";
    setlook 4, getiteminfo(getequipid(1),11);
    close;
    }
    
    //Introduction
    mes "["+strnpcinfo(1)+"]";
    mes "Hi there ^0000FF"+strcharinfo(0)+"^000000! I can make any of your headgears";
    mes "to look like a different one";
    mes "while you keep the same effect.";
    mes "for ^FF00005 Vote Points each headgear.^000000";
    next;
    mes "["+strnpcinfo(1)+"]";
    mes "Would you like to try?";
    next;
    
    while (1) {
    
    //No Headgear
    if ( (getequipisequiped(1) == 0) && (getequipisequiped(9) == 0) && (getequipisequiped(10) == 0) ) {
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry but I don't seem to find any headgear on your equipment.";
    close;
    }
    
    //Sets temp values to empty headgears (for comparison)
    set .@top, 0;
    set .@mid, 0;
    set .@bot, 0;
    if (getequipisequiped(1) == 0)
    set .@top, 1;
    else
    set .@top, getequipid(1);
    if (getequipisequiped(9) == 0)
    set .@mid, 2;
    else
    set .@mid, getequipid(9);
    if (getequipisequiped(10) == 0)
    set .@bot, 3;
    else
    set .@bot, getequipid(10);
    
    
    //Checks for only one headgear location.
    set .@position, 0;
    if ( (.@top != .@mid) && (.@top != .@bot) && (.@mid != .@bot) ) {
    if (getequipisequiped(1) != 0)
    if (!(lock_headgear & 1))
    set .@position, .@position | 1;
    if (getequipisequiped(9) != 0)
    if (!(lock_headgear & 2))
    set .@position, .@position | 2;
    if (getequipisequiped(10) != 0)
    if (!(lock_headgear & 4))
    set .@position, .@position | 4;
    }
    
    //Top-Mid-Lower Headgear
    else if ( (.@top == .@mid) && (.@top == .@bot) )
    set .@position, 8;
    
    //Top-Mid Headgear
    else if  (.@top ==  .@mid)
    set .@position, 16;
    
    //Mid-Lower Headgear
    else if (.@mid == .@bot)
    set .@position, 32;
    
    else {
    mes "["+ strnpcinfo(1) +"]";
    mes "Sorry but I cannot work on this headgear!";
    close;
    }
    
    set .@menu$, "";
    set .@menu, 0;
    set .@calib, 0;
    
    //Single Headgears
    if (.@position & 1) {
    set .@menu$, .@menu$ + "Upper Headgear" + ":";
    set .@menucal[.@calib], 1;
    set .@calib, .@calib + 1;
    }
    if (.@position & 2) {
    set .@menu$, .@menu$ + "Middle Headgear" + ":";
    set .@menucal[.@calib], 2;
    set .@calib, .@calib + 1;
    }
    if (.@position & 4) {
    set .@menu$, .@menu$ + "Lower Headgear" + ":";
    set .@menucal[.@calib], 3;
    set .@calib, .@calib + 1;
    }
    
    //Multiple Headgears
    if (.@position & 8)
    set .@menu$, .@menu$ + "Full Headgear" + ":";
    else if (.@position & 16)
    set .@menu$, .@menu$ + "Top-Mid Headgear" + ":";
    else if (.@position & 32)
    set .@menu$, .@menu$ + "Bottom-Mid Headgear" + ":";
    
    if (.@menu$ == "") {
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry I cannot disguise multiple-location headgears at the same time.";
    close;
    }
    
    //Generates menu
    set .@menu, select(.@menu$) - 1;
    
    set .@position, 0;
    set .@multiple, 0;
    
    //Single
    if (getarraysize(.@menucal) != 0) {
    
    if ( (.@menucal[.@menu] == 1) && (!(lock_headgear & 1) ) )
    set .@position, 1;
    else if ( (.@menucal[.@menu] == 2) && (!(lock_headgear & 2) ) )
    set .@position, 9;
    else if ( (.@menucal[.@menu] == 3) && (!(lock_headgear & 4) ) )
    set .@position, 10;
    
    set .@break, 1;
    deletearray .@menucal;
    }
    
    //Multiple
    else {
    
    //Disabled Multiple Headgear Function
    //Because It wasn't working properly.
    //Will work on it later - Kenedos.
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry but I cannot work on multiple-location headgears!";
    close;
    
    if ( (.@position & 8) && ( (!(lock_headgear & 1)) && (!(lock_headgear & 2))  && (!(lock_headgear & 4)) ) ) {
    set .@position, 1;
    set .@multiple, 8;
    }
    else if ( (.@position & 16) && ( (!(lock_headgear & 1)) && (!(lock_headgear & 2)) ) ) {
    set .@position, 1;
    set .@multiple, 16;
    }
    else if ( (.@position & 32) && ( (!(lock_headgear & 2)) && (!(lock_headgear & 4)) ) ) {
    set .@position, 9;
    set .@multiple, 32;
    }
    
    set .@break, 1;
    }
    
    //Checks for already disguised headgear
    if (!.@break) {
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry but you already have this location of headgear disguised.";
    close;
    }
    set .@break, 0;
    
    
    //Asks for the headgear to be replaced
    mes "["+strnpcinfo(1)+"]";
    mes "You are currently wearing a ^FF0000"+ getitemname(getequipid(.@position)) +"^000000,";
    mes "Kindly select from the list from your inventory the headgear you'd like to copy:";
    next;
    
    //Gets inventory headgear listing
    getinventorylist;
    set .@loc, getiteminfo(getequipid(.@position),5);
    set .@menu$, "";
    set .@select, 0;
    set .@j, 0;
    for (set .@i, 0; .@i < @inventorylist_count; set .@i, .@i + 1) {
    if ( (getiteminfo(@inventorylist_id[.@i],5) == .@loc) && (@inventorylist_id[.@i] != getequipid(.@position) ) ) {
    set .@inventoryid[.@j], @inventorylist_id[.@i];
    set .@menu$, .@menu$ + getitemname(.@inventoryid[.@j]) + ":";
    set .@j, .@j + 1;
    }
    }
    
    //Generates the menu
    if (.@menu$ == "") {
    mes "["+strnpcinfo(1)+"]";
    mes "Huh? You must have headgears of the same headgear equip location in your inventory to switch appearances!";
    close;
    }
    set .@select, select(.@menu$) - 1;
    
    //Checks for broken inventory equip
    if (getbrokenid(.@inventoryid[.@select]) > 0) {
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry but it seems that the item you have selected is broken, either that or you have other items of the same ID broken in your inventory. Please come back when you have repaired your headgear.";
    close;
    }
    
    //Asks for confirmation
    mes "["+strnpcinfo(1)+"]";
    mes "You will disguise a ^FF0000" +getequipname(.@position)+ "^000000 into a ^0000FF"+ getitemname(.@inventoryid[.@select]) +"^000000, Are you sure you want to proceed?";
    next;
    if (select ("Yes:No") == 2) close;
    
    //Sets anti-overplace variables
    if (.@multiple == 0) {
    if (.@position == 1) {
    set .@look, 4;
    set lock_headgear, lock_headgear + 1;
    }
    else if (.@position == 9) {
    set .@look, 5;
    set lock_headgear, lock_headgear + 2;
    }
    else if (.@position == 10) {
    set .@look, 3;
    set lock_headgear, lock_headgear + 4;
    }
    }
    else {
    if (.@multiple == 32)
    set .@look, 5;
    else
    set .@look, 4;
    
    set lock_headgear, lock_headgear + .@multiple;
    }
    if(#CASHPOINTS < 5) goto L_notcash;
    setlook .@look, getiteminfo(.@inventoryid[.@select], 11);
    set #CASHPOINTS,#CASHPOINTS-5;
    dispbottom "Remaining Vote Points: "+#CASHPOINTS+"";
    mes "["+strnpcinfo(1)+"]";
    mes "All done! Would you like to disguise another?";
    next;
    if (select ("Yes:No") == 2) close;
    deletearray .@inventoryid;
    
    }
    
    L_notcash:
    mes "["+strnpcinfo(1)+"]";
    mes "Sorry but you don't have enough voting points.";
    next;
    mes "["+strnpcinfo(1)+"]";
    mes "Please kill more People ^^ ^FF0000 remember 1 person 1 points! No abuse or banned  ^000000";
    mes "Come back later^^ . ";
    close;
    
    maybe:
    close;
    
    [size=4]}[/size]

    btw this is @kenedos Script.. can anyone help me?

    bump anyone?

    fakeheadgears.txt

  9. nope.... even though you change client you'll be able to use your default data, script and etc..... however, you'll have to change your lua according the client youre going to use..... because 2012 uses luafiles514...........

    so u mean if i update my client , i need to re edit my lua files .. to make my custom item works again?

  10. I have the same problem and I am currently using 2010 client. I figured it might be because the client should be 2012. If it's because of that, is there anywhere I can download a 2012 client?

    yeah i did figure that out too.. but when i was in this server playing , they have the mount system... even thought they used the same client and SVN as me

    bump .. anyone?

  11. // Shop NPCs -- supplying no argument displays entire menu.
    //	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    prontera,164,203,6	script	Quest Shop#1	998,{ callfunc "qshop",1; }
    prontera,150,150,1	script	Quest Shop#2	100,{ callfunc "qshop",2; }
    

    WOW THANKS EURPHY! GREAT HELP! hahahhaa now i understand what u said by wouldnt have to duplicate whole script.. thanks !!!

  12. I wrote version 1.5 of the script specifically so that you wouldn't have to duplicate the entire script.

    Steps to create multiple shops:

    1. Write the different shop names in the .Shops$ array.
    2. Add() items to the different shops by the ID specified in the array above.
    3. Create a new shop NPC to call your desired shop ID (using the supplied function).

    yes i know the multiple shop , but i want to make it duplicate .. so there will be two npc of dynamic shop from ur script in my custome town.. i want to make it one is non Donate shop . and the other is donatiion shop. like that.. but diffrent npc.. not 1 npc hahaha thats why i want to know how to duplicate them

  13. rename all the

    qshop

    in your other duplicated script....

    oh you right.. i manage to make two of them but now the problem is.. the item didnt change??

    or did i just do something wrong??

    hmm please check this script

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6
    //===== Compatible With: =====================================
    //= rAthena SVN r16862+
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    // callfunc "donshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    brasilis,261,51,0 script Quest Shop#1 998,{ callfunc "donshop"; }
    
    
    // Script Core
    //============================================================
    - script quest_shop -1,{ 
    function Add; function Chk; function Slot; function A_An;
    OnInit:
    freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    set .Announce,1; // Announce quest completion? (1: yes / 0: no)
    set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    set .ShowID,0;   // Show item IDs? (1: yes / 0: no)
    set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)
    set .MaxStack,100; // Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    // setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    setarray .Shops$[1],"Headgears";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    // Add(<shop ID>,<reward ID>,<reward amount>,
    //     <Zeny cost>,<point cost>,
    //     <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    Add(1,25001,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    Add(1,25002,1,0,0,1059,250,2221,1,2227,1,7063,600);
    Add(1,25003,1,0,0,2252,1,1036,400,7001,50,4052,1);
    Add(1,25004,1,0,0,2252,1,1054,450,943,1200);
    
    
    // -----------------------------------------------------------
    
    freeloop(0);
    set .menu$,"";
    for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    set .menu$, .menu$+.Shops$[.@i]+":";
    npcshopdelitem "donshop"+.@i,909;
    }
    end;
    
    OnMenu:
    set .@size, getarraysize(@i);
    if (!.@size) set .@i, select(.menu$);
    else if (.@size == 1) set .@i, @i[0];
    else {
    for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    set .@i, @i[select(.@menu$)-1];
    }
    deletearray @i[0],getarraysize(@i);
    if (.Shops$[.@i] == "") {
    message strcharinfo(0),"An error has occurred.";
    end;
    }
    dispbottom "Select one item at a time.";
    callshop "donshop"+.@i,1;
    npcshopattach "donshop"+.@i;
    end;
    
    OnBuyItem:
    // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
    set .@q[2],.@q[1]*.@q[3];
    if (!.@q[2] || .@q[2] > 30000) {
    message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    end;
    }
    mes "[Quest Shop2]";
    mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    mes "Requirements:";
    if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    next;
    setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0)
    set .@preview,1;
    addtimer 1000, strnpcinfo(0)+"::OnEnd";
    while(1) {
    switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    case 1:
    if (@qe[0]) { 
    mes "[Quest Shop2]";
    mes "You're missing one or more quest requirements.";
    close;
    }
    if (!checkweight(.@q[0],.@q[2])) {
    mes "[Quest Shop2]";
    mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    close;
    }
    if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    getitem .@q[0],.@q[2];
    if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;
    specialeffect2 699;
    close;
    case 2:
    setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1;
    if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2];
    if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2];
    if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2];
    break;
    case 3:
    close;
    }
    }
    
    OnEnd:
    if (@qe[6]) {
    changelook LOOK_HEAD_BOTTOM, @qe[3];
    changelook LOOK_HEAD_TOP, @qe[4];
    changelook LOOK_HEAD_MID, @qe[5];
    }
    deletearray @qe[0],7;
    end;
    
    function Add {
    if (getitemname(getarg(1)) == "null") {
    debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    return;
    }
    setarray .@j[0],getarg(2),getarg(3),getarg(4);
    for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    if (getitemname(getarg(.@i)) == "null") {
    debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    return;
    } else
    setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    }
    copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    npcshopadditem "donshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    return;
    }
    
    function Chk {
    if (getarg(0) < getarg(1)) {
    set @qe[0],1;
    return "^FF0000";
    } else
    return "^00FF00";
    }
    
    function Slot {
    set .@s$,getitemname(getarg(0));
    switch(.ShowSlot) {
    case 1: if (!getitemslots(getarg(0))) return .@s$;
    case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    default: return .@s$;
    }
    }
    
    function A_An {
    setarray .@A$[0],"a","e","i","o","u";
    set .@B$, "_"+getarg(0);
    for(set .@i,0; .@i<5; set .@i,.@i+1)
    if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
    return "a "+getarg(0);
    }
    }
    
    function script donshop {
    deletearray @i[0],getarraysize(@i);
    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    set @i[.@i],getarg(.@i);
    doevent "quest_shop::OnMenu";
    end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    - shop donshop1 -1,909:-1
    - shop donshop2 -1,909:-1
    - shop donshop3 -1,909:-1
    - shop donshop4 -1,909:-1
    - shop donshop5 -1,909:-1

    even thought i already change the id item into 25001 - 25004 and remove the setarray .Shops$[1],"Headgears"; they still shows the weapons and others O.O!

  14. i want to make a dynamicShop for my quest item. . but the problem is i need it 5 npc..

    i use eurphy Dynamic shop.. but i cant manage to make it works together...

    the npc did shows up 2 npc ,but when i tried to buy the item.. it has the item from the npc 1.. lol .. i already change the item on the dynamic shop 2 but they didnt change .~.~ ... and sometimes theres an error that if i just use @reloadscript. i can immidietly buy the item without have to do the quest =.= .. can anyone help me??

    THE DYNAMIC SHOP 1

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6
    //===== Compatible With: =====================================
    //= rAthena SVN r16862+
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    brasilis,265,51,0 script Quest Shop#1 998,{ callfunc "qshop"; }
    
    
    // Script Core
    //============================================================
    - script quest_shop -1,{
    function Add; function Chk; function Slot; function A_An;
    OnInit:
    freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    set .Announce,1; // Announce quest completion? (1: yes / 0: no)
    set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    set .ShowID,0;   // Show item IDs? (1: yes / 0: no)
    set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)
    set .MaxStack,100; // Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    // setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    setarray .Shops$[1],"Headgears","Weapons","Other";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    // Add(<shop ID>,<reward ID>,<reward amount>,
    //	 <Zeny cost>,<point cost>,
    //	 <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
    Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
    Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
    
    Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
    Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
    
    Add(3,531,1,3,0,512,1,713,1);
    Add(3,532,1,3,0,513,1,713,1);
    Add(3,533,1,3,0,514,1,713,1);
    Add(3,534,1,3,0,515,1,713,1);
    
    // -----------------------------------------------------------
    
    freeloop(0);
    set .menu$,"";
    for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    set .menu$, .menu$+.Shops$[.@i]+":";
    npcshopdelitem "qshop"+.@i,909;
    }
    end;
    
    OnMenu:
    set .@size, getarraysize(@i);
    if (!.@size) set .@i, select(.menu$);
    else if (.@size == 1) set .@i, @i[0];
    else {
    for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    set .@i, @i[select(.@menu$)-1];
    }
    deletearray @i[0],getarraysize(@i);
    if (.Shops$[.@i] == "") {
    message strcharinfo(0),"An error has occurred.";
    end;
    }
    dispbottom "Select one item at a time.";
    callshop "qshop"+.@i,1;
    npcshopattach "qshop"+.@i;
    end;
    
    OnBuyItem:
    // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
    set .@q[2],.@q[1]*.@q[3];
    if (!.@q[2] || .@q[2] > 30000) {
    message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    end;
    }
    mes "[Quest Shop]";
    mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    mes "Requirements:";
    if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    next;
    setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0)
    set .@preview,1;
    addtimer 1000, strnpcinfo(0)+"::OnEnd";
    while(1) {
    switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    case 1:
    if (@qe[0]) {
    mes "[Quest Shop]";
    mes "You're missing one or more quest requirements.";
    close;
    }
    if (!checkweight(.@q[0],.@q[2])) {
    mes "[Quest Shop]";
    mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    close;
    }
    if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    getitem .@q[0],.@q[2];
    if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;
    specialeffect2 699;
    close;
    case 2:
    setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1;
    if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2];
    if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2];
    if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2];
    break;
    case 3:
    close;
    }
    }
    
    OnEnd:
    if (@qe[6]) {
    changelook LOOK_HEAD_BOTTOM, @qe[3];
    changelook LOOK_HEAD_TOP, @qe[4];
    changelook LOOK_HEAD_MID, @qe[5];
    }
    deletearray @qe[0],7;
    end;
    
    function Add {
    if (getitemname(getarg(1)) == "null") {
    debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    return;
    }
    setarray .@j[0],getarg(2),getarg(3),getarg(4);
    for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    if (getitemname(getarg(.@i)) == "null") {
    debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    return;
    } else
    setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    }
    copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    return;
    }
    
    function Chk {
    if (getarg(0) < getarg(1)) {
    set @qe[0],1;
    return "^FF0000";
    } else
    return "^00FF00";
    }
    
    function Slot {
    set .@s$,getitemname(getarg(0));
    switch(.ShowSlot) {
    case 1: if (!getitemslots(getarg(0))) return .@s$;
    case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    default: return .@s$;
    }
    }
    
    function A_An {
    setarray .@A$[0],"a","e","i","o","u";
    set .@B$, "_"+getarg(0);
    for(set .@i,0; .@i<5; set .@i,.@i+1)
    if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
    return "a "+getarg(0);
    }
    }
    
    function script qshop {
    deletearray @i[0],getarraysize(@i);
    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    set @i[.@i],getarg(.@i);
    doevent "quest_shop::OnMenu";
    end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    - shop qshop1 -1,909:-1
    - shop qshop2 -1,909:-1
    - shop qshop3 -1,909:-1
    - shop qshop4 -1,909:-1
    - shop qshop5 -1,909:-1

    THE DYNAMIC SHOP 2

     //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6
    //===== Compatible With: =====================================
    //= rAthena SVN r16862+
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    brasilis,261,51,0 script Quest Shop#2 998,{ callfunc "qshop2",2; }
    
    
    // Script Core
    //============================================================
    - script quest_shop2 -1,{
    function Add; function Chk; function Slot; function A_An;
    OnInit:
    freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    set .Announce,1; // Announce quest completion? (1: yes / 0: no)
    set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    set .ShowID,0;   // Show item IDs? (1: yes / 0: no)
    set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)
    set .MaxStack,100; // Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    // setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    setarray .Shops$[1],"Headgears";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    // Add(<shop ID>,<reward ID>,<reward amount>,
    //	 <Zeny cost>,<point cost>,
    //	 <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    Add(1,25001,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    Add(1,25002,1,0,0,1059,250,2221,1,2227,1,7063,600);
    Add(1,25003,1,0,0,2252,1,1036,400,7001,50,4052,1);
    Add(1,25004,1,0,0,2252,1,1054,450,943,1200);
    
    
    // -----------------------------------------------------------
    
    freeloop(0);
    set .menu$,"";
    for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    set .menu$, .menu$+.Shops$[.@i]+":";
    npcshopdelitem "qshop2"+.@i,909;
    }
    end;
    
    OnMenu:
    set .@size, getarraysize(@i);
    if (!.@size) set .@i, select(.menu$);
    else if (.@size == 1) set .@i, @i[0];
    else {
    for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    set .@i, @i[select(.@menu$)-1];
    }
    deletearray @i[0],getarraysize(@i);
    if (.Shops$[.@i] == "") {
    message strcharinfo(0),"An error has occurred.";
    end;
    }
    dispbottom "Select one item at a time.";
    callshop "qshop"+.@i,1;
    npcshopattach "qshop2"+.@i;
    end;
    
    OnBuyItem:
    // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
    set .@q[2],.@q[1]*.@q[3];
    if (!.@q[2] || .@q[2] > 30000) {
    message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    end;
    }
    mes "[Quest Shop2]";
    mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    mes "Requirements:";
    if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    next;
    setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0)
    set .@preview,1;
    addtimer 1000, strnpcinfo(0)+"::OnEnd";
    while(1) {
    switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    case 1:
    if (@qe[0]) {
    mes "[Quest Shop2]";
    mes "You're missing one or more quest requirements.";
    close;
    }
    if (!checkweight(.@q[0],.@q[2])) {
    mes "[Quest Shop2]";
    mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    close;
    }
    if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    getitem .@q[0],.@q[2];
    if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;
    specialeffect2 699;
    close;
    case 2:
    setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1;
    if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2];
    if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2];
    if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2];
    break;
    case 3:
    close;
    }
    }
    
    OnEnd:
    if (@qe[6]) {
    changelook LOOK_HEAD_BOTTOM, @qe[3];
    changelook LOOK_HEAD_TOP, @qe[4];
    changelook LOOK_HEAD_MID, @qe[5];
    }
    deletearray @qe[0],7;
    end;
    
    function Add {
    if (getitemname(getarg(1)) == "null") {
    debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    return;
    }
    setarray .@j[0],getarg(2),getarg(3),getarg(4);
    for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    if (getitemname(getarg(.@i)) == "null") {
    debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    return;
    } else
    setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    }
    copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    npcshopadditem "qshop2"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    return;
    }
    
    function Chk {
    if (getarg(0) < getarg(1)) {
    set @qe[0],1;
    return "^FF0000";
    } else
    return "^00FF00";
    }
    
    function Slot {
    set .@s$,getitemname(getarg(0));
    switch(.ShowSlot) {
    case 1: if (!getitemslots(getarg(0))) return .@s$;
    case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    default: return .@s$;
    }
    }
    
    function A_An {
    setarray .@A$[0],"a","e","i","o","u";
    set .@B$, "_"+getarg(0);
    for(set .@i,0; .@i<5; set .@i,.@i+1)
    if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
    return "a "+getarg(0);
    }
    }
    
    function script qshop2 {
    deletearray @i[0],getarraysize(@i);
    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    set @i[.@i],getarg(.@i);
    doevent "quest_shop2::OnMenu";
    end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    - shop qshop1 -1,909:-1
    - shop qshop2 -1,909:-1
    - shop qshop3 -1,909:-1
    - shop qshop4 -1,909:-1
    - shop qshop5 -1,909:-1

    DynamicShop2.txt

    DynamicShop3.txt

  15. i have some problem on my mob, i put an original mob from renewal to my server m but they didnt comes out.. i wonder what's wrong??

    can anyone help me? the link is there..

    //= 1.0
    //===== Compatible With: =====================================
    //= Any Athena Version
    //===== Description: =========================================
    //= Official monster spawn in El Dicastes Field.
    //===== Additional Comments: =================================
    //= 1.0 First Release
    //============================================================
    
    //==================================================
    // dic_fild01 - El Dicastes Field
    //==================================================
    dic_fild01,0,0,0,0 monster Centipede 1987,55,0,0,0
    dic_fild01,0,0,0,0 monster Centipede Larva 1999,55,0,0,0
    dic_fild01,0,0,0,0 monster Tatacho 1986,35,0,0,0
    dic_fild01,0,0,0,0 monster Dolomedes 2092,35,0,0,0
    
    //==================================================
    // dic_fild02 - El Dicastes Field
    //==================================================
    dic_fild02,0,0,0,0 monster Centipede 1987,35,0,0,0
    dic_fild02,0,0,0,0 monster Centipede Larva 1999,35,0,0,0
    dic_fild02,0,0,0,0 monster Tatacho 1986,35,0,0,0
    dic_fild02,0,0,0,0 monster Dolomedes 2092,85,0,0,0
    dic_fild02,0,0,0,0 monster Bradium Golem 2024,10,0,0,0
    
    // Mapflags
    dic_fild01 mapflag nomemo
    dic_fild02 mapflag nomemo
    dicastes01 mapflag nomemo
    dicastes02 mapflag nomemo
    dic_in01 mapflag nomemo
    
    

    //= Any Athena Version
    //===== Description: =========================================
    //= Official kRO monster spawns
    //===== Additional Comments: =================================
    //= 1.0 First Release
    //============================================================
    
    //==================================================
    // dic_dun01 - El Dicastes Dungeon
    //==================================================
    dic_dun01,0,0,0,0 monster One-Horn Scaraba 2083,55,0,0,0
    dic_dun01,0,0,0,0 monster Two-Horn Scaraba 2084,55,0,0,0
    dic_dun01,0,0,0,0 monster One-Horn Scaraba Egg 2088,20,0,0,0
    dic_dun01,0,0,0,0 monster Two-Horn Scaraba Egg 2089,20,0,0,0
    
    //==================================================
    // dic_dun02 - Scaraba Hole
    //==================================================
    dic_dun02,0,0,0,0 monster Antler Scaraba 2085,55,0,0,0
    dic_dun02,0,0,0,0 monster Rake Scaraba 2086,75,0,0,0
    dic_dun02,0,0,0,0 monster Antler Scaraba Egg 2090,20,0,0,0
    dic_dun02,0,0,0,0 monster Rake Scaraba Egg 2091,20,0,0,0
    dic_dun02,0,0,0,0 boss_monster Queen Scaraba 2087,1,7200000,600000,1
    
    // Mapflags
    dic_dun01 mapflag nomemo
    dic_dun02 mapflag nomemo
    
    

    bump

    bumpp

    nmv i fixed it.. i forgot to put the the text on script_monster :D

    dic_dun.txt

    dicastes.txt

×
×
  • Create New...