Jump to content

nixrlz

Members
  • Posts

    27
  • Joined

  • Last visited

Everything posted by nixrlz

  1. ooohh thanks! its solve my 1st problem !! now only thor patcher :DDDDD
  2. 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 . thats all. sorry for the long post .and sorry if i post it in the wrong section. thanks!
  3. 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 !!
  4. 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.
  5. euphy ,, when i use ur woe controller , the treasure chest didnt spawn.. mmm is there any modification i need to change after i implement ur woe controller?
  6. 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?
  7. 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.,,
  8. 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?
  9. 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
  10. emistry i use your script for stalker reproduce but the npc didnt cast anything on me.. ?? theres no error on Command prompt also.. weird
  11. how to make the event to be automated??
  12. emistry , what i only wants to have a Monster Invasion .. llike Poring only.. no MVP mobs.. and when the Porings all killed / when the times up . the event finished.. if the times up it will automaticly use @killmonster on the map , also @cleanmap on the map? how do i do it?
  13. 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
  14. so u mean if i update my client , i need to re edit my lua files .. to make my custom item works again?
  15. i want to ask.. since my seerver already running like 5 months.. if i change the Client.. would that wipe all the setting that i already done??
  16. 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?
  17. nixrlz

    DYNAMIC SHOP

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

    DYNAMIC SHOP

    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
  19. nixrlz

    DYNAMIC SHOP

    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!
  20. 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
  21. 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 dic_dun.txt dicastes.txt
×
×
  • Create New...